【问题标题】:face detection not detecting faces, Android人脸检测未检测到人脸,Android
【发布时间】:2013-09-24 02:42:56
【问题描述】:

我正在为我的应用程序使用 Android 原生人脸检测,其中位图作为输入,并且应该检测到人脸。它适用于具有大面的位图。但不适用于小脸的位图。

我尝试了包含 10 个面孔的图片位图,但仅检测到 3 个。

detectedFaces=new FaceDetector.Face[NUMBER_OF_FACES];
    faceDetector=new FaceDetector(resultBmp.getWidth(),resultBmp.getHeight(),NUMBER_OF_FACES);
    NUMBER_OF_FACE_DETECTED=faceDetector.findFaces(resultBmp, detectedFaces);

for(int count=0;count<NUMBER_OF_FACE_DETECTED;count++)
    {

if(count==0){

 face1=detectedFaces[count];
            midPoint1=new PointF();
            face1.getMidPoint(midPoint1);

            eyeDistance=face1.eyesDistance();

        left1 = midPoint1.x - (float)(1.8 * eyeDistance);
        right1 = midPoint1.x + (float)(1.4 * eyeDistance);
          top1 = midPoint1.y - (float)(1.4 * eyeDistance);
           bottom1 = midPoint1.y + (float)(1.8 * eyeDistance);

Bitmap bmface = Bitmap.createBitmap(resultBmp, (int) left1+5, (int) top1+5, (int) (2.8 * eyeDistance)+5, (int) (3.6 * eyeDistance)+5);

}
if(count==1)
{
----
}
-------------and so-on till count==10---------

  }

现在请给我一些建议。人脸检测也应该适用于小脸。我用的图片是

提前致谢

【问题讨论】:

标签: android bitmap android-canvas crop face-detection


【解决方案1】:

我想通了。对于那些有这个问题的人。人脸检测仅在位图上起作用 使用此转换为 RGB_565

BitmapFactory.Options bitmapFatoryOptions=new BitmapFactory.Options();
    bitmapFatoryOptions.inPreferredConfig=Bitmap.Config.RGB_565;
 mybitmapss=BitmapFactory.decodeResource(getResources(), R.drawable.familyportrait2,bitmapFatoryOptions);

【讨论】:

  • 谢谢!我看过 findFaces 的文档提到需要 565 格式,但我忽略了它,因为它没有出错。