Exemple #1
0
    public async Task <Image_RecoModelOutput> EvaluateAsync(Image_RecoModelInput input)
    {
        var d = input.data.Direct3DSurface.Description;

        binding.Bind("data", input.data);
        LearningModelEvaluationResultPreview evalResult = await learningModel.EvaluateAsync(binding, string.Empty);

        return(output);
    }
Exemple #2
0
    private void StartPullFrames(MediaFrameReader sender)
    {
        Task.Run(async() =>
        {
            for (;;)
            {
                var frameReference = sender.TryAcquireLatestFrame();
                var videoFrame     = frameReference?.VideoMediaFrame?.GetVideoFrame();
                if (videoFrame == null)
                {
                    continue; //ignoring frame
                }
                var input = new Image_RecoModelInput();

                input.data = videoFrame;
                if (videoFrame.Direct3DSurface == null)
                {
                    continue; //ignoring frame
                }

                try
                {
                    Image_RecoModelOutput prediction = await imageRecoModel.EvaluateAsync(input).ConfigureAwait(false);
                    var classWithHighestProb         = prediction.classLabel[0];
                    if (prediction.loss[classWithHighestProb] > 0.5)
                    {
                        DisplayText("I see a " + classWithHighestProb);
                    }
                    else
                    {
                        DisplayText("I see nothing");
                    }
                }
                catch
                {
                    //Log errors
                }

                await Task.Delay(predictEvery);
            }
        });
    }