我正在使用一个面部检测器,它在检测到的面部移动时跟踪它们,使用相机预览回调,并在预览显示的顶部绘制覆盖视图(它在面部周围绘制圆圈)。
它都可以工作,但是当视图改变时,它会延迟2到3秒,绘制的圆圈显示得太晚了。我在onPreviewFrame方法中的覆盖视图上调用invalidate。
你知道出什么问题了吗?android FaceDetector的findFaces方法真的很慢吗?当我检查系统时间时,它似乎最多需要~ .5秒,这比3秒要少得多。
任何帮助都将不胜感激。谢谢!
发布于 2011-04-04 13:42:02
0.5 -1秒是FaceDetector.findFaces方法检测到人脸的时间。
发布于 2013-04-22 10:27:26
FaceDetector是用来检测任意位图中的人脸的。由于您希望在活动的相机预览中检测人脸,因此您可以尝试使用人脸检测的Camera.FaceDetectionListener实现,如下所述:
http://developer.android.com/guide/topics/media/camera.html#face-detection
这种检测面部的方法很可能被优化为与活动的相机预览帧协同工作。
此外,试着在你的设备上打开现有的Android相机应用程序,观看它检测人脸的过程。它检测它们的速度和你应用程序中的人脸检测速度一样吗?如果它更快,那么你可能可以做一些事情来让你的应用程序更快。如果没有,那么你的应用程序可能已经和它在该设备上的运行速度一样快了。
作为参考,我的Nexus4上的股票应用程序的人脸检测平均约为0.2s (每秒5个),而我的Nexus 10上的人脸检测速度稍慢,可能在0.33s (每秒3个)。
https://stackoverflow.com/questions/5534886
复制相似问题