public PoseLandmarkDetect(string modelPath) : base(modelPath, true)
        {
            result = new Result()
            {
                score  = 0,
                joints = new Vector3[JOINT_COUNT],
            };

            // Init filters
            filter = new RelativeVelocityFilter3D[JOINT_COUNT];
            const int   windowSize    = 5;
            const float velocityScale = 10;
            const RelativeVelocityFilter.DistanceEstimationMode mode = RelativeVelocityFilter.DistanceEstimationMode.LegacyTransition;

            for (int i = 0; i < JOINT_COUNT; i++)
            {
                filter[i] = new RelativeVelocityFilter3D(windowSize, velocityScale, mode);
            }
            stopwatch = Stopwatch.StartNew();
        }
Exemple #2
0
        public PoseLandmarkDetect(string modelPath, Options options) : base(modelPath, true)
        {
            result = new Result()
            {
                score             = 0,
                viewportLandmarks = new Vector4[LandmarkCount],
                worldLandmarks    = new Vector4[LandmarkCount],
            };

            this.options = options ?? new Options();

            // Init filters
            filters = new RelativeVelocityFilter3D[LandmarkCount];
            const int   windowSize    = 5;
            const float velocityScale = 10;
            const RelativeVelocityFilter.DistanceEstimationMode mode = RelativeVelocityFilter.DistanceEstimationMode.LegacyTransition;

            for (int i = 0; i < LandmarkCount; i++)
            {
                filters[i] = new RelativeVelocityFilter3D(windowSize, velocityScale, mode);
            }
            UpdateFilterScale(options.filterVelocityScale);
            stopwatch = Stopwatch.StartNew();
        }