所以我知道android Ice Cream Sandwich 支持人脸检测。因此,我最近将我的华硕变压器升级为平板电脑,启用了面部检测解锁功能,并且效果很好。现在,当我使用人脸检测编写程序时,当我尝试找到支持的最大人脸数量时,我总是得到 0,并且当我尝试开始跟踪人脸时,我的应用程序总是崩溃。如果我的平板电脑明确支持人脸检测,为什么会出现这种情况?难道我做错了什么?我用来检查是否支持面部检测的代码发布如下:
Camera.Parameters params = mCamera.getParameters();
System.out.println("Max num faces is!!!! :" + params.getMaxNumDetectedFaces());
我正在使用的完整代码可以在这里找到: https://docs.google.com/file/d/0B2Nu5U2Cz81qZExGQ25sWVdRd21IOExUUTZsZzFoZw/edit
最佳答案
人脸检测不是人脸识别。人脸检测是通过 Haar 级联之类的方法完成的,并确定图片中是否存在人脸。此功能可以包含在 Android 相机应用程序中,但不能包含 - API 存在,但它说它支持最多 0 个面孔(意味着什么都没有,走开,我们只是满足界面)
面部解锁的工作方式有所不同 - 它不需要定位面部,因此可以使用一些模式匹配技术来识别它。
这是用于面部检测的读取指针:
http://www.richardnichols.net/2011/01/java-facial-recognition-haar-cascade-with-jjil-guide/
即使您的相机软件不支持此功能,您也可以通过相机预览功能自行实现
关于Android 人脸检测支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9617331/