我在 Android 设备上使用了本地 Android 人脸检测,但它似乎很慢,而且我不太确定可靠性。我也使用过 OpenCV 的面部检测,但仅限于 PC,而不是 Android 设备。对于 Android,我猜我必须使用 JavaCV(或 OpenCV4Android?)。
你知道Android API的人脸检测和OpenCV的人脸检测在速度上有什么区别吗?我确信 OpenCV/JavaCV 更高效/更快且更准确,但无法确认。
谢谢!
最佳答案
建议:如果您正在寻找人脸检测,我建议您使用特定于平台的 APIs像 FaceDetector
而不是 OpenCV Java 包装器。这是因为这些 API 将是硬件加速 (GPU),而 OpenCV 人脸检测在 3.0 版之前仅依赖 CPU。
您感知到的桌面设备和移动设备之间的速度差异应该是设备硬件(如 CPU)的差异,而不是因为不同的库包装器(如 JavaCV/OpenCV4Android)。 OpenCV 是用 C/C++ 编写的。所有处理密集型代码仍在 C/C++ 中,而 Java 库只是 JNI 的包装器。
- OpenCV4Android - OpenCV.org 维护了 Android Java 包装器。推荐。
- OpenCV Java - OpenCV.org 维护了自动生成的桌面 Java 包装器。
- JavaCV - 由独立开发人员维护的流行 Java 包装器。不是安卓特有的。此库可能与 OpenCV 较新版本不同步。
关于Android API 人脸检测 vs. OpenCV/JavaCV 人脸检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27683958/