Face++人脸识别 android studio开发集成

最近几年人脸识别被炒到了风口上,相对应的第三方平台也比较多,如face++,科大讯飞,阅面科技,包括腾讯等等都有自己的人脸数据库,以及开放的api接口,因为项目需要,因此需要在android平台集成人脸检测以及人脸识别技术,在此过程中也是踩了不少坑,在此,把我集成的步骤以及遇到的坑分享一下.

先说需求:

1使用google的亲儿子google pixel c平板作为平台,当进入人脸识别的界面中,显示以及检测人脸数据

2.当点击人脸检测按钮时,会把当前的数据提交给第三方平台进行在线检测

3.如果检测有人,则需要在人脸库中搜索该人脸

4.如果没有搜到则添加,如果收到了则提示.


先说说人脸检测,其实android sdk 本身就自带有人脸检测的api,但并不是所有的设备都支持,比如这个google pixel c虽说是google的亲儿子,但是可识别的人脸数为0....可以通过以下代码来查看设备本身支持的人脸数,一般都是30+以上吧..

public int getMaxFace() {
		Camera camera = Camera.open(Camera.CameraInfo.CAMERA_FACING_FRONT);
		return camera.getParameters().getMaxNumDetectedFaces();
}
因此此路针对pixel c平板堵住了,只能采用一帧一帧的去检测人脸了,但如果使用在线检测实时性肯定大打折扣,所以只能通过第三方提供的离线SDK进行本地的人脸检测了,抱着这个目的在众多的人脸识别的平台中筛选了许多,最后感觉face++是最适合本项目的. face++点这儿

步骤:

1.需要在face++网站中注册并且创建一个试用(试用免费)的api key 


2.创建bundle id


3.下载离线SDK


4.如果需要快速集成进去,face++有提供demo 戳这里


但本项目中的平板即pixel c在跑face++提供的demo时,检测效果很不理想,只能偶尔的检测到,联系到face++的技术人员,说是因为demo是做给手机用的,因此需要自己修改一下demo中的参数,我遇到的问题是

1.demo中的activity都是固定的竖屏,但是项目中需要将平板处于横屏状态,当在配置文件中改为横屏时,人脸始终处于貌似旋转了90度的样子,网上查了很多,大多是在预览前!预览前!预览前! 调用setDisplayOrientation()来设置相机预览旋转的角度

2.demo中的activity中如果屏幕是横屏,那么在进行人脸绘制的时候需要将宽和高的值互换才可以准确的画出来人脸

在onPreviewFrame中 



以上是对demo中做出一些修改好适配自己的平板用的,


当修改完这个之后,平板终于可以成功实时的检测出人脸了,人脸识别可以按照face++提供的文档说明来集成.








猜你喜欢

转载自blog.csdn.net/weixin_37699212/article/details/76186702