文章目录
- Android自带的人脸识别API
- 第三方提供
- 大牛们的封装
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 {@Overrideprotected 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