本文主要是介绍玩玩人脸识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
人脸识别
Android自带的API:FaceDetector
Step 1: 读取bitmap图片(API 只接受Bitmap)
(拍照或者从相册中也可以)Bitmap sampleBmp=BitmapFactory.decodeResource(getResources(), R.drawable.sample1);
Step 2: 通过FaceDetector API进行人脸识别
//FaceDetecor只能读取RGB 565格式的Bitmap Bitmap tmpBmp = inputImage.copy(Bitmap.Config.RGB_565, true); //新建FaceDetector 实例, FaceDetector faceDet = new FaceDetector(tmpBmp.getWidth(), tmpBmp.getHeight(), MAX_FACES);//MAX_FACES 搜索人脸个数 // 调用findFaces方法,将数据储存在facelist中 FaceDetector.Face[] faceList = new FaceDetector.Face[MAX_FACES]; faceDet.findFaces(tmpBmp, faceList);
找人脸的原理是:找眼睛。
它返回的人脸数据face中,
通过调用public float eyesDistance (),得到眼距
public void getMidPoint (PointF point),得到两眼中心点位置。
public float confidence () 可以返回该人脸数据的可信度(0~1),这个值越大,该人脸数据的准确度也就越高Step3:对原图进行缩放,并在图上显示人脸框
吐槽:
A,只能接受Bitmap 格式的数据;
B,只能识别双眼距离大于20 像素的人脸像(当然,这个可在framework层中修改);
C,只能检测出人脸的位置(双眼的中心点及距离),不能对人脸进行匹配(查找指定的脸谱)。
- 第三方
- face++(他有在线API可调用,离线SDK)
- 在线API:基础版API供免费调用测试和小规模使用(会尽力维护API服务稳定性,但不保证每次调用均会成功),企业版API相对基础版API在算法和稳定性方面会有更好的表现
- 离线SDK包括人脸关键点定位等功能。
- 网址:http://www.faceplusplus.com.cn/
这篇关于玩玩人脸识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!