【发布时间】:2016-03-10 21:00:51
【问题描述】:
我在我的应用中使用上述谷歌服务进行人脸检测。我确保我的手机具有最低的 google play 服务版本,在我的手机上是 8.3,但我仍然无法让面部检测工作!我通过在我的 Eclipse 项目中导入 google play 库来导入该库。代码如下:
@Override
protected void onPreExecute()
{
detector = new FaceDetector.Builder(MainContext)
.setTrackingEnabled(false)
//.setProminentFaceOnly(true)
.setLandmarkType(FaceDetector.ALL_LANDMARKS) //required
.build();
}
private void detectTheFace(Bitmap converted)
{
Frame frame = new Frame.Builder().setBitmap(converted).build();
faces = detector.detect(frame);
}
我不知道是否有必要将用于检测人脸的位图转换为 RGB_565 配置,但我还是这样做了。我尝试了更改和不更改 RGB 配置,它产生了相同的结果。基本上,面部稀疏数组的大小为 0,这意味着它不会检测到面部……永远。顺便说一句,只是为了提供上述代码的一些上下文,我正在异步任务中执行人脸检测,因为我想在后台运行它。
【问题讨论】:
-
我建议检查检测器依赖项是否已准备好以及存储空间不足的情况。在此处查看示例代码中的检查:github.com/googlesamples/android-vision/blob/master/…
-
不,这不是问题,但感谢您的建议。我检查了它并下载了本机库,它仍然显示检测到零个面孔
-
日志中是否有任何错误?您可以在这里查看速度与准确性的讨论:stackoverflow.com/questions/34132444/…
-
完全没有错误。我想也许它用来检测的位图不正确,但我也没有检查过。所以我正在对相机预览进行快照,并认为它可能完全是黑色的,但事实并非如此......当我打开图像时我看到了我的脸
-
尝试在您的显示器上显示图像并使用手机上的演示面部跟踪器应用程序 (github.com/googlesamples/android-vision/tree/master/…) 来查看它是否可以检测到显示的面部。如果可以,则可能是您的应用使用的图像格式、旋转或设置有问题。
标签: android face-detection vision