Android Facedetector姿势值始终为0

所以我使用 facedector中构建的机器人来检测和确定位图中面部的位置.现在它起作用并告诉我:信心,眼睛距离和中点,但每当我试图获得姿势时,无论我尝试使用什么图像,它总是返回0.

这是我用来获取姿势的代码

poseString = "Pose: (" + getFace.pose(FaceDetector.Face.EULER_X) + ","
                        + getFace.pose(FaceDetector.Face.EULER_Y) + ","
                        + getFace.pose(FaceDetector.Face.EULER_Z) + ")";

这是我使用的代码

arrayFaces = new FaceDetector(picWidth,picHeight,NUM_FACES);
        arrayFaces.findFaces(sourceImage,getAllFaces);

        for (int i = 0; i < getAllFaces.length; i++) {
            getFace = getAllFaces[i];
            try {
                PointF eyesMP = new PointF();
                getFace.getMidPoint(eyesMP);
                poseString = "Pose: ("+ getFace.pose(FaceDetector.Face.EULER_X) + ","
                        + getFace.pose(FaceDetector.Face.EULER_Z) + ")";
                EULER_X = getFace.EULER_X;
                EULER_Y = getFace.EULER_Y;
                EULER_Z = getFace.EULER_Z;      

                eyesdistance[i] = getFace.eyesdistance();
                eyesMidPts[i] = eyesMP;

                if (DEBUG) {
                    currentx = eyesMidPts[i].x;
                    currenty = eyesMidPts[i].y;
                    betweeneyes = getFace.eyesdistance();

                    Log.d("currentx",currentx + "");
                    Log.d("currenty",currenty + "");
                    Log.d("betweeneyes",betweeneyes + "");
                    Log.d("EULER","EULER_X: " + EULER_X + "EULER_Y: " + EULER_Y + "EULER_Z: " + EULER_Z);

                    Log.i("Face",i + " " + getFace.confidence() + " "
                            + getFace.eyesdistance() + " " + "Pose: ("
                            + getFace.pose(FaceDetector.Face.EULER_X) + ","
                            + getFace.pose(FaceDetector.Face.EULER_Y) + ","
                            + getFace.pose(FaceDetector.Face.EULER_Z) + ")"
                            + "Eyes Midpoint: (" + eyesMidPts[i].x + ","
                            + eyesMidPts[i].y + ")");
                }
            } catch (Exception e) {
                if (DEBUG)
                    Log.e("Face",i + " is null");
            }




        }

解决方法

一个粗略的谷歌搜索显示大约10个不同的帖子 – 有些甚至 on StackOverflow – 有相同问题的人.你找到了吗?看起来它可能是一个bug.我建议你把它报告给 android bug tracker.

编辑:你一定要提交一个bug.看看人脸检测源代码this source file显示Android永远不会将这些设置为0以外的任何内容.

在此更改之前,Android还有其他CV选项.查看OpenCV for Android,该团队现已正式支持.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...