public async Task <GoogLeNetPlacesModelModelOutput> EvaluateAsync(GoogLeNetPlacesModelModelInput input) { GoogLeNetPlacesModelModelOutput output = new GoogLeNetPlacesModelModelOutput(); LearningModelBindingPreview binding = new LearningModelBindingPreview(learningModel); binding.Bind("sceneImage", input.sceneImage); binding.Bind("sceneLabel", output.sceneLabel); binding.Bind("sceneLabelProbs", output.sceneLabelProbs); LearningModelEvaluationResultPreview evalResult = await learningModel.EvaluateAsync(binding, string.Empty); return(output); }
private async Task EvaluteImageAsync(VideoFrame videoFrame) { var startTime = DateTime.Now; if (model == null) { var modelFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Model/GoogLeNetPlaces.onnx")); if (modelFile != null) { model = new GoogLeNetPlacesModelModel(); await MLHelper.CreateModelAsync(modelFile, model); } } var input = new GoogLeNetPlacesModelModelInput() { sceneImage = videoFrame }; try { var res = await model.EvaluateAsync(input) as GoogLeNetPlacesModelModelOutput; if (res != null) { var results = new List <LabelResult>(); foreach (var kv in res.sceneLabelProbs) { results.Add(new LabelResult { Label = kv.Key, Result = (float)Math.Round(kv.Value * 100, 2) }); } results.Sort((p1, p2) => { return(p2.Result.CompareTo(p1.Result)); }); await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.High, () => { outputText.Text = res.sceneLabel.FirstOrDefault(); resultList.ItemsSource = results; previewControl.EvalutionTime = (DateTime.Now - startTime).TotalSeconds.ToString(); }); } } catch (Exception ex) { await AlertHelper.ShowMessageAsync(ex.ToString()); } }