Android FaceDetector.Face欧拉角始终为0

发布于 2024-11-06 05:18:46 字数 259 浏览 0 评论 0原文

我正在尝试获取由 FaceDetector 检测到的面部的欧拉角。

以下是我用来输出到 Logcat 的内容:

Log.v("debug", " X: " + face.pose(Face.EULER_X) + " Y: " + face.pose(Face.EULER_Y) + " Z: " + face.pose(Face.EULER_Z) );

但无论面部处于什么角度,这三个参数始终返回 0.0。有什么想法吗?

I'm trying to get a the Euler angle of a Face that is detected by FaceDetector.

Here is what I use to output to Logcat:

Log.v("debug", " X: " + face.pose(Face.EULER_X) + " Y: " + face.pose(Face.EULER_Y) + " Z: " + face.pose(Face.EULER_Z) );

But it always returns 0.0 for all three, no matter what angle the face is at. Any ideas why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

伪装你 2024-11-13 05:18:46

是的,API 1 中的 FaceDetector 永远不会返回姿势角度。您可以查看源代码进行验证。

API 14 中较新的 FaceDetectionListener 将返回姿势角度,但是目前仅在有限数量的设备上可用。甚至并非所有运行 API 14 的设备都可以使用它。您必须调用 getMaxNumDetectedFaces()查看您的设备是否支持该 API。

您也可以尝试使用 OpenCV。几个选项是 http://code.opencv.org/projects/opencv/wiki /OpenCV4Androidhttp://code.google.com/p/javacv/。根据我的经验,除非你真的非常需要姿势角度,否则它们不值得麻烦。

Yeah the FaceDetector from API 1 never returns a pose angle. You can look at the source code to verify.

The newer FaceDetectionListener from API 14 will return a pose angle, but it's only available on a limited number of devices right now. Not even all devices running API 14 can use it. You have to call getMaxNumDetectedFaces() to see if your device supports that API.

You can alternately try using OpenCV. A couple options for that are http://code.opencv.org/projects/opencv/wiki/OpenCV4Android and http://code.google.com/p/javacv/. In my experience they aren't worth the hassle unless you really, really need the pose angle.

窗影残 2024-11-13 05:18:46

这里有几个类似的问题。查看此链接中的第一个答案:

Android FaceDetector 姿势值始终为 0

请参阅下面有人说他们解决了问题:

Android 人脸检测

There are a few similar questions here. Check out the first answer from this link:

Android Facedetector pose values are always 0

And see below for someone that says they solved the problem:

Android Face Detection

掩耳倾听 2024-11-13 05:18:46

将检测器 setMode 设置为 ACCURATE_MODE

下面是一个在 Kotlin 中对我有用的示例:

val detector = FaceDetector.Builder(context)
            .setClassificationType(FaceDetector.ACCURATE_MODE)
            .setMode(FaceDetector.ACCURATE_MODE)
            .setTrackingEnabled(true)
            .build()

Set the detector setMode to ACCURATE_MODE

Here is an example that worked for me in Kotlin:

val detector = FaceDetector.Builder(context)
            .setClassificationType(FaceDetector.ACCURATE_MODE)
            .setMode(FaceDetector.ACCURATE_MODE)
            .setTrackingEnabled(true)
            .build()
以酷 2024-11-13 05:18:46

在最新版本上,开发人员需要将性能模式设置为 PERFORMANCE_MODE_ACCURATE 而不是 PERFORMANCE_MODE_FAST

setPerformanceMode(FaceDetectorOptions.PERFORMANCE_MODE_ACCURATE)

On the latest version developers needs to set the perfomance mode to PERFORMANCE_MODE_ACCURATE not PERFORMANCE_MODE_FAST

setPerformanceMode(FaceDetectorOptions.PERFORMANCE_MODE_ACCURATE)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文