示例#1
0
        public static Tuple <float, float> RunPredictionOnImage(
            string imagePath)
        {
            Array2D <RgbPixel> rgb_array2d_img = LoadArray2DfromFile(imagePath);

            Array2D <RgbPixel> face_array2d_image      = null;
            Array2D <RgbPixel> left_eye_array2d_image  = null;
            Array2D <RgbPixel> right_eye_array2d_image = null;

            float[] face_grid = null;

            var isValid = ITrackerFaceExtracter.ExtractFaceDataFromImage(rgb_array2d_img, ref face_array2d_image, ref left_eye_array2d_image, ref right_eye_array2d_image, ref face_grid);

            var face_bitmap_array      = Array2DtoByteArray(face_array2d_image);
            var left_eye_bitmap_array  = Array2DtoByteArray(face_array2d_image);
            var right_eye_bitmap_array = Array2DtoByteArray(face_array2d_image);

            if (isValid)
            {
                var prediction = ITrackerPredictionEngine.RunPredictionOnImage(face_bitmap_array, left_eye_bitmap_array, right_eye_bitmap_array, face_grid);

                return(prediction);
            }

            return(null);
        }
示例#2
0
        private void ButtonToClick_Click(object sender, RoutedEventArgs e)
        {
            FileInfo model       = new FileInfo("Assets\\Model\\itracker.onnx");
            FileInfo inputFrame  = new FileInfo("Assets\\Frames\\00000.jpg");
            FileInfo datasetPath = null;

            ITrackerPredictionEngine.InitializePredictionEngine(model?.FullName);

            if (!string.IsNullOrEmpty(inputFrame?.FullName))
            {
                var prediction = RunPredictionOnImage(inputFrame?.FullName);
                Console.WriteLine($"{inputFrame?.FullName} ({prediction.Item1}, {prediction.Item2})");
            }
            else
            {
                var dataset_base_path = datasetPath?.FullName;

                var recording_sessions = Directory.GetDirectories(dataset_base_path);

                foreach (var session in recording_sessions)
                {
                    var session_path        = Path.Combine(dataset_base_path, session);
                    var session_frames_path = Path.Combine(session_path, "frames");

                    var frames = Directory.GetFiles(session_frames_path, "*.jpg");

                    foreach (var frame in frames)
                    {
                        var frame_path = Path.Combine(session_path, frame);

                        var prediction = RunPredictionOnImage(frame_path);
                        Console.WriteLine($"{frame} ({prediction.Item1}, {prediction.Item2})");
                    }
                }
            }
        }
示例#3
0
        static void Main(
            FileInfo inputFrame,
            FileInfo model,
            FileInfo datasetPath)
        {
            ITrackerPredictionEngine.InitializePredictionEngine(model?.FullName);

            if (!string.IsNullOrEmpty(inputFrame?.FullName))
            {
                var prediction = RunPredictionOnImage(inputFrame?.FullName);

                Console.WriteLine($"{inputFrame?.FullName} ({prediction.Item1}, {prediction.Item2})");
            }
            else
            {
                var dataset_base_path = datasetPath?.FullName;

                var recording_sessions = Directory.GetDirectories(dataset_base_path);

                foreach (var session in recording_sessions)
                {
                    var session_path        = Path.Combine(dataset_base_path, session);
                    var session_frames_path = Path.Combine(session_path, "frames");

                    var frames = Directory.GetFiles(session_frames_path, "*.jpg");

                    foreach (var frame in frames)
                    {
                        var frame_path = Path.Combine(session_path, frame);

                        var prediction = RunPredictionOnImage(frame_path);
                        Console.WriteLine($"{frame} ({prediction.Item1}, {prediction.Item2})");
                    }
                }
            }
        }