转自:http://blog.csdn.net/BonderWu/article/details/5865205
Android自带的人脸识别技术只能识别出人脸在画面中的位置,中心点,眼间距,角度等基本特性,提供给上层应用使用。实际上,咱们也可以port OpenCV等库到Android中,来完成相关功能(仅仅只是猜测而已,自己并没有真正动手实践过)。
1. 相关背景
Google 于2006年8月收购Neven Vision 公司(该公司拥有 10 多项应用于移动设备领域的图像识别的专利),以此获得了图像识别的技术,并很快应用到免费的 Picasa 相册管理程序中,提供基于人脸识别的相片管理功能,另外还推出了一个新项目叫Goggle,能从照片中识别世界各地的地标建筑,同样Google 也把人脸识别功能添加到了Android 中。不过由于个人隐私等相关因素,Google Goggles好像暂时屏蔽了人脸识别功能。
2. Android 中的人脸识别技术
底层库:android/external/neven/
framework层:frameworks/base/media/java/android/media/FaceDetector.java
Java 层接口的限制:
3. 人脸识别技术的应用
A. 为 Camera 添加人脸识别的功能:使得 Camera 的取景器上能标识出人脸范围;如果硬件支持,可以对人脸进行对焦。
B. 为相册程序添加按人脸索引相册的功能:按人脸索引相册,按人脸分组,搜索相册。
4.Neven库给上层提供的主要方法:
Since: API Level 1
Creates a FaceDetector, configured with the size of the images to be analysed and the maximum number of faces that can be detected. These parameters cannot be changed once the object is constructed.
width
the width of the image
height
the height of the image
maxFaces
the maximum number of faces to identify
Since: API Level 1
Finds all the faces found in a given Bitmap
. The supplied array is populated with FaceDetector.Face
s for each face found. The bitmap must be in 565 format (for now).
bitmap
the Bitmap
graphic to be analyzed
faces
an array in which to place all found FaceDetector.Face
s. The array must be sized equal to the maxFaces value set at initialization
the number of faces found
IllegalArgumentException
if the Bitmap dimensions don't match the dimensions defined at initialization or the given array is not sized equal to the maxFaces value defined at initialization