文章目录
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