private async void UpdateModel() { Status = new AppStatusInfo { Status = Enums.Status.Working, StringStatus = "Working | updating model..." }; if (_model == null) { _model = AvaloniaLocator.Current.GetService <INeuroModel>(); } await _model.UpdateModel(); Status = new AppStatusInfo { Status = Enums.Status.Ready }; }
private async void PredictAll() { if (Frames == null || Frames.Count < 1) { return; } Status = new AppStatusInfo { Status = Enums.Status.Working, StringStatus = "Working | loading model..." }; if (_model == null) { _model = AvaloniaLocator.Current.GetService <INeuroModel>(); } if (!await _model.Run()) { Status = new AppStatusInfo { Status = Enums.Status.Error, StringStatus = "Error: unable to load model" }; _model.Dispose(); _model = null; return; } var index = 0; Status = new AppStatusInfo { Status = Enums.Status.Working, StringStatus = $"Working | processing images: {index} / {Frames.Count}" }; foreach (var frame in Frames) { index++; frame.Rectangles = await _model.Predict(frame.Path); if (index < Frames.Count) { Status = new AppStatusInfo { Status = Enums.Status.Working, StringStatus = $"Working | processing images: {index} / {Frames.Count}" } } ; if (frame.Rectangles.Any()) { frame.IsVisible = true; } } _frames = new List <Frame>(Frames); await _model.Stop(); SelectedIndex = 0; //Fix bug when application stopped if index > 0 UpdateUi(); Status = new AppStatusInfo { Status = Enums.Status.Ready }; }