人脸检测是人脸识别系统中的一个重要环节,也可以独立应用于视频监控。在数字媒体日益普及的今天,利用人脸检测技术还可以帮助我们从海量图片数据中快速筛 选出包含人脸的图片。 在目前的数码相机中,人脸检测可以用来完成自动对焦,即“脸部对焦”。“脸部对焦”是在自动曝光和自动对焦发明后,二十年来重要的一次摄影技术革新。家 用数码相机,占绝大多数的照片是以人为拍摄主体的,这就要求相机的自动曝光和对焦以人物为基准。
Android对人脸检测的能力并不强大,目前Android仅支持格式为RGB565的图像进行人脸检测。在实际的检测过程中,Android是通过人眼(必须双眼可见,眼镜有影响)的检测来实现对人脸的定位的。上层的代码主要包括android.media.FaceDetector和android.media.FaceDetector.Face两个类。
人脸检测的框架层代码位于external/neven中。
FaceDetector的常用方法包括:
findFaces() //找到图像中的人脸
FaceDetector.Face的常用方法包括:
eyesDistance() //人眼间的距离
getMidPoint() //人眼间的中间点的坐标
下面是人脸检测的一般过程:
BitmapFactory.Options BitmapFactoryOptionsbfo = new BitmapFactory.Options();
BitmapFactoryOptionsbfo.inPreferredConfig = Bitmap.Config.RGB_565;
Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.face, BitmapFactoryOptionsbfo);
FaceDetector.Face[] myFace = new FaceDetector.Face[numberOfFace];
FaceDetector myFaceDetect = new FaceDetector(myBitmap.getWidth(), myBitmap.getHeight(), numberOfFace);
numberOfFaceDetected = myFaceDetect.findFaces(myBitmap, myFace); //检测到人脸的个数