簡體   English   中英

Android中的人臉檢測?

[英]Face Detection in Android?

我目前正在開發實驗相機應用。 我目前正在考慮實施人臉檢測,目前正在權衡我的選擇。

我考慮過可用於Android的OpenCV端口,並使用其面部檢測功能,但是從我以前的實現示例中看到,相機似乎滯后了很多。

考慮到HTC Desire上的相機支持人臉檢測,我知道必須至少可以安裝一個半體面的人臉檢測系統。 我只是想知道是否有人對如何獲得最佳結果有意見...使用可用的庫? 我自己實現特定算法?

  1. 嘗試在Android SDK中使用FaceDetector 它返回BMP中的臉部位置和角度。 但這不是很快。

    這是使用FaceDetector和OpenGL(繪制矩形)的實時人臉檢測示例,該示例可在Android 2.2中使用。

  2. Android中的OpenCV

    您最好在Linux上嘗試一下(我在Windows上嘗試過,但是失敗了)。

  3. JavaCV (強烈推薦)

    有使用相機進行實時人臉檢測的示例代碼。 請參閱下載頁面上的“ javacv-src-*。zip”。

Android SDK附帶FaceDetector ,可用於在給定的位圖中查找面孔

我還沒有親自使用它,但是面部畸變應用程序的開發人員表示,與OpenCV相比,它不是很准確。 盡管它可能滿足您的需求,但這可能是HTC Desire的相機應用程序使用的。

這是使用FaceDetector類的基本示例

public myView(Context context) {
        super(context);
        BitmapFactory.Options BitmapFactoryOptionsbfo = new BitmapFactory.Options();
        BitmapFactoryOptionsbfo.inPreferredConfig = Bitmap.Config.RGB_565;
        myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.threepoint_shooters_1990, BitmapFactoryOptionsbfo);
        imageWidth = myBitmap.getWidth();
        imageHeight = myBitmap.getHeight();
        myFace = new FaceDetector.Face[numberOfFace];
        myFaceDetect = new FaceDetector(imageWidth, imageHeight, numberOfFace);
        numberOfFaceDetected = myFaceDetect.findFaces(myBitmap, myFace);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawBitmap(myBitmap, 0, 0, null);
        Paint myPaint = new Paint();
        myPaint.setColor(Color.GREEN);
        myPaint.setStyle(Paint.Style.STROKE);
        myPaint.setStrokeWidth(3);
        for (int i = 0; i < numberOfFaceDetected; i++) {
            Face face = myFace[i];
            PointF myMidPoint = new PointF();
            face.getMidPoint(myMidPoint);
            myEyesDistance = face.eyesDistance();
            canvas.drawRect((int) (myMidPoint.x - myEyesDistance * 2),
                    (int) (myMidPoint.y - myEyesDistance * 2),
                    (int) (myMidPoint.x + myEyesDistance * 2),
                    (int) (myMidPoint.y + myEyesDistance * 2), myPaint);
        }
    }

在此處輸入圖片說明

在此處下載完整的源代碼: https : //github.com/Jorgesys/Android_Face_Detection

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM