人臉檢測是人臉識別系統(tǒng)中的一個重要環(huán)節(jié),也可以獨立應(yīng)用于視頻監(jiān)控。在數(shù)字媒體日益普及的今天,利用人臉檢測技術(shù)還可以幫助我們從海量圖片數(shù)據(jù)中快速篩 選出包含人臉的圖片。 在目前的數(shù)碼相機中,人臉檢測可以用來完成自動對焦,即“臉部對焦”。“臉部對焦”是在自動曝光和自動對焦發(fā)明后,二十年來重要的一次攝影技術(shù)革新。家 用數(shù)碼相機,占絕大多數(shù)的照片是以人為拍攝主體的,這就要求相機的自動曝光和對焦以人物為基準(zhǔn)。
Android對人臉檢測的能力并不強大,目前Android僅支持格式為RGB565的圖像進(jìn)行人臉檢測。在實際的檢測過程中,Android是通過人眼(必須雙眼可見,眼鏡有影響)的檢測來實現(xiàn)對人臉的定位的。上層的代碼主要包括android.media.FaceDetector和android.media.FaceDetector.Face兩個類。
人臉檢測的框架層代碼位于external/neven中。
FaceDetector的常用方法包括:
findFaces() //找到圖像中的人臉
FaceDetector.Face的常用方法包括:
eyesDistance() //人眼間的距離
getMidPoint() //人眼間的中間點的坐標(biāo)
下面是人臉檢測的一般過程:
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); //檢測到人臉的個數(shù)