您的位置:首页 > 移动开发 > Android开发

玩玩人脸识别

2016-05-14 16:51 435 查看
人脸识别

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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 脸部识别