2011-04-04 59 views
2

我使用的面部检测器跟随他们移动时检测到的面部,使用相机预览回调并在预览显示顶部绘制覆盖视图(在其中绘制围绕面)。安卓相机预览回调正在绘制覆盖视图非常缓慢

这一切都有效,但在视图更改时滞后2或3秒,绘制的圆圈显示为时间太晚。我在onPreviewFrame方法中的覆盖视图上调用invalidate。

任何想法是什么错? android FaceDetector的findFaces方法真的很慢吗?当我检查系统时间时,似乎最多需要大约0.5秒,这大大小于3秒。

任何帮助,将不胜感激。谢谢!

回答

0

0.5 - 1秒是FaceDetector.findFaces方法检测到人脸的时间。

+1

对 - 我认为2秒的延迟与相机预览框架的工作方式有关 - 我想知道是否有人有任何提示加快速度的提示! – user647311 2011-04-04 06:24:41

0

FaceDetector用于检测任意位图中的人脸。既然你是想检测的活动摄像头预览的面孔也许这里描述你可以尝试使用人脸检测的Camera.FaceDetectionListener执行:

http://developer.android.com/guide/topics/media/camera.html#face-detection

很可能是人脸检测的这种方法优化与活动相机预览框架协同工作。

同样,尝试在设备上打开股票Android相机应用程序,并观察它检测到的面部。它是否以与您的应用中的人脸检测相同的速度检测到它们?如果速度更快,那么您可以采取一些措施来加快应用的速度。如果没有,那么你的应用程序可能已经达到了该设备上的速度。

作为参考,人脸检测中的股票应用在我的Nexus 4平均值大概0.2秒(每秒5)和我的Nexus 10是有点慢,可能在约0.33s(3每秒。)