Android API 人脸检测 vs. OpenCV/JavaCV 人脸检测

标签 android opencv face-detection

我在 Android 设备上使用了本地 Android 人脸检测,但它似乎很慢,而且我不太确定可靠性。我也使用过 OpenCV 的面部检测,但仅限于 PC,而不是 Android 设备。对于 Android,我猜我必须使用 JavaCV(或 OpenCV4Android?)。

你知道Android API的人脸检测和OpenCV的人脸检测在速度上有什么区别吗?我确信 OpenCV/JavaCV 更高效/更快且更准确,但无法确认。

谢谢!

最佳答案

建议:如果您正在寻找人脸检测,我建议您使用特定于平台的 APIsFaceDetector 而不是 OpenCV Java 包装器。这是因为这些 API 将是硬件加速 (GPU),而 OpenCV 人脸检测在 3.0 版之前仅依赖 CPU。

您感知到的桌面设备和移动设备之间的速度差异应该是设备硬件(如 CPU)的差异,而不是因为不同的库包装器(如 JavaCV/OpenCV4Android)。 OpenCV 是用 C/C++ 编写的。所有处理密集型代码仍在 C/C++ 中,而 Java 库只是 JNI 的包装器。

  1. OpenCV4Android - OpenCV.org 维护了 Android Java 包装器。推荐。
  2. OpenCV Java - OpenCV.org 维护了自动生成的桌面 Java 包装器。
  3. JavaCV - 由独立开发人员维护的流行 Java 包装器。不是安卓特有的。此库可能与 OpenCV 较新版本不同步。

关于Android API 人脸检测 vs. OpenCV/JavaCV 人脸检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27683958/

相关文章:

android - 在android NDK中包含本地头文件时 undefined reference

android - 如何正确跟踪播放位置? [Android 媒体广播通知 Spotify API]

java - Android 下载文件任务概念

python - 如何通过OpenCV和python打开IP Camera Url?

matlab - 从图像中裁剪椭圆

java - 在 java 中创建样式 xml 以供查看(按钮)

c++ - 在 openCV 中加入足够接近的轮廓

opencv - SIFT特征检测器产生未处理的异常

opencv - 无法为脸部的 Nose ,耳朵和分类器找到 “haar classifiers”

python - 使用opencv从一张图片中裁剪多张人脸并将它们存储在一个文件夹中