Android人脸识别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010356768/article/details/81975387

Android自带的人脸识别API

Android实现人脸识别可以通过google原生自带API实现,只能识别静态图片,缺点是精度不高,识别信息很少,只有眼睛的识别

栗子

在页面上放一个按钮,点击按钮识别drawable下的image1~4里人脸数量
这里写图片描述

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.FaceDetector;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    int imgs[] = {R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4};

    public void onClickButtonOne(View v) {
        for (int i : imgs) {
            BitmapFactory.Options mOption = new BitmapFactory.Options();
            mOption.inPreferredConfig = Bitmap.Config.RGB_565;
            Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), i, mOption);
            int maxFaces = 20;
            FaceDetector mFaceDetector = new FaceDetector(mBitmap.getWidth(), mBitmap.getHeight(), maxFaces);
            FaceDetector.Face[] mFace = new FaceDetector.Face[maxFaces];
            maxFaces = mFaceDetector.findFaces(mBitmap, mFace);
            Log.v("FaceDetector", "No." + i + "face:" + "face number:" + maxFaces + " width:" + mBitmap.getWidth() + "height:" + mBitmap.getWidth());
        }
    }
}

运行程序,查看日志

face number:1 width:2688height:2688
face number:0 width:2751height:2751
face number:2 width:804height:804
face number:15 width:1920height:1920

还是不太准的。SNH48的某位小姐姐并没有被识别出来……

第三方提供

googel自带的只能识别静态图片,第三方提供的功能比较强大,阿里的人脸识别,Face++都可以

大牛们的封装

效果如上图,扫描到人脸后,可以获取到人脸的bitmap,显示在右上角

当然功能不止如此,项目Github地址
https://github.com/betri28/FaceDetectCamera

猜你喜欢

转载自blog.csdn.net/u010356768/article/details/81975387