Example #1
0
        public void Invoke(Texture inputTex, int[] indxs, FaceDetect.Result face, FaceMesh.Result meshResult, int side)
        {
            CalcEyeRoi(face, meshResult, indxs[0], indxs[1]);

            var options = (inputTex is WebCamTexture)
                ? resizeOptions.GetModifedForWebcam((WebCamTexture)inputTex)
                : resizeOptions;

            cropMatrix = RectTransformationCalculator.CalcMatrix(new RectTransformationCalculator.Options()
            {
                rect                 = face.rectEye,
                rotationDegree       = CalcFaceRotation(ref face) * Mathf.Rad2Deg,
                shift                = FaceShift,
                scale                = FaceScale,
                cameraRotationDegree = -options.rotationDegree,
                mirrorHorizontal     = options.mirrorHorizontal,
                mirrorVertiacal      = options.mirrorVertical,
            });

            RenderTexture rt = resizer.Resize(
                inputTex, options.width, options.height, true,
                cropMatrix,
                TextureResizer.GetTextureST(inputTex, options));

            ToTensor(rt, input0, false);

            interpreter.SetInputTensorData(0, input0);
            interpreter.Invoke();
            interpreter.GetOutputTensorData(0, output0);
            interpreter.GetOutputTensorData(1, output1);
        }
        public void Invoke(Texture inputTex, PoseDetect.Result pose)
        {
            var options = (inputTex is WebCamTexture)
                ? resizeOptions.GetModifedForWebcam((WebCamTexture)inputTex)
                : resizeOptions;

            // float rotation = CalcRotationDegree(ref pose);
            var rect = AlignmentPointsRect(ref pose);

            cropMatrix = RectTransformationCalculator.CalcMatrix(new RectTransformationCalculator.Options()
            {
                rect                 = rect,
                rotationDegree       = 180,
                shift                = PoseShift,
                scale                = PoseScale,
                cameraRotationDegree = -options.rotationDegree,
                mirrorHorizontal     = options.mirrorHorizontal,
                mirrorVertiacal      = options.mirrorVertical,
            });

            RenderTexture rt = resizer.Resize(
                inputTex, options.width, options.height, true,
                cropMatrix,
                TextureResizer.GetTextureST(inputTex, options));

            ToTensor(rt, input0, false);

            interpreter.SetInputTensorData(0, input0);
            interpreter.Invoke();
            interpreter.GetOutputTensorData(0, output0);
            interpreter.GetOutputTensorData(1, output1);

            // interpreter.GetOutputTensorData(2, output2);// not in use
        }
Example #3
0
        public async UniTask <Result> InvokeAsync(Texture inputTex, PalmDetect.Result palm, CancellationToken cancellationToken)
        {
            cropMatrix = RectTransformationCalculator.CalcMatrix(new RectTransformationCalculator.Options()
            {
                rect                 = palm.rect,
                rotationDegree       = CalcHandRotation(ref palm) * Mathf.Rad2Deg,
                shift                = PalmShift,
                scale                = PalmScale,
                cameraRotationDegree = -resizeOptions.rotationDegree,
                mirrorHorizontal     = resizeOptions.mirrorHorizontal,
                mirrorVertiacal      = resizeOptions.mirrorVertical,
            });

            RenderTexture rt = resizer.Resize(
                inputTex, resizeOptions.width, resizeOptions.height, true,
                cropMatrix,
                TextureResizer.GetTextureST(inputTex, resizeOptions));

            await ToTensorAsync(rt, input0, false, cancellationToken);

            await UniTask.SwitchToThreadPool();

            interpreter.SetInputTensorData(0, input0);
            interpreter.Invoke();
            interpreter.GetOutputTensorData(0, output0);
            interpreter.GetOutputTensorData(1, output1);

            var result = GetResult();
            await UniTask.SwitchToMainThread(cancellationToken);

            return(result);
        }
Example #4
0
        public void Invoke(Texture inputTex, PalmDetect.Result palm)
        {
            var options = (inputTex is WebCamTexture)
                ? resizeOptions.GetModifedForWebcam((WebCamTexture)inputTex)
                : resizeOptions;

            cropMatrix = RectTransformationCalculator.CalcMatrix(new RectTransformationCalculator.Options()
            {
                rect                 = palm.rect,
                rotationDegree       = CalcHandRotation(ref palm) * Mathf.Rad2Deg,
                shift                = PalmShift,
                scale                = PalmScale,
                cameraRotationDegree = -options.rotationDegree,
                mirrorHorizontal     = options.mirrorHorizontal,
                mirrorVertiacal      = options.mirrorVertical,
            });

            RenderTexture rt = resizer.Resize(
                inputTex, options.width, options.height, true,
                cropMatrix,
                TextureResizer.GetTextureST(inputTex, options));

            ToTensor(rt, input0, false);

            //
            interpreter.SetInputTensorData(0, input0);
            interpreter.Invoke();
            interpreter.GetOutputTensorData(0, output0);
            interpreter.GetOutputTensorData(1, output1);
        }
Example #5
0
        public void Invoke(Texture inputTex, FaceDetect.Result face)
        {
            cropMatrix = RectTransformationCalculator.CalcMatrix(new RectTransformationCalculator.Options()
            {
                rect                 = face.rect,
                rotationDegree       = CalcFaceRotation(ref face) * Mathf.Rad2Deg,
                shift                = FaceShift,
                scale                = FaceScale,
                cameraRotationDegree = -resizeOptions.rotationDegree,
                mirrorHorizontal     = resizeOptions.mirrorHorizontal,
                mirrorVertiacal      = resizeOptions.mirrorVertical,
            });

            RenderTexture rt = resizer.Resize(
                inputTex, resizeOptions.width, resizeOptions.height, true,
                cropMatrix,
                TextureResizer.GetTextureST(inputTex, resizeOptions));

            ToTensor(rt, input0, false);

            //
            interpreter.SetInputTensorData(0, input0);
            interpreter.Invoke();
            interpreter.GetOutputTensorData(0, output0);
            interpreter.GetOutputTensorData(1, output1);
        }