android 人脸识别踩坑实录
随着AI技术的发展,人脸识别的应用场景越来越多,提供技术支持的API也有好多可以选择,但是大部分都是需要收费的,或者免费试用。由此可见人脸识别算法确实是核心技术,不是随便就可以获取到的。经过多次尝试,记录一下自己在实现人脸识别遇到的坑吧。
也有免费的Api打着人脸识别的旗号,其实都是实现人脸检测的功能。智能识别出来图片中是否有人脸,而关于人脸更多的信息就获取不到了。
比如是否是正脸、侧脸面对镜头;
是否能够获取人脸关键点信息;
是否能够获取欧拉角(欧拉角具体定义请百度~);
最后实验之后发现都是只能够获取人脸坐标或者中心点坐标,眼距等简单的信息。如果只是简单判断图片上是否有人脸,实现起来绰绰有余,如果想做更复杂的操作,免费的API好像并不能够实现功能。
在网上找了许多资料,找到了一个免费提供的API——虹软。
http://ai.arcsoft.com.cn/technology/faceDetection.html
官网上也有详细的介绍,有兴趣的可以看一下。唯一遗憾的是——人脸识别SDK中暂无关键点算法技术开放。
android系统也有提供自己的方法。通过FaceDetector的内部类FaceDetector.Face返回人脸信息,在android提供的API文档中,我们可以了解到,face返回的内容。
https://developer.android.google.cn/reference/android/media/FaceDetector.Face
英文的文档,但是不难看懂。
其中有一段描述,pose(int euler)方法可以返回X、YorZ方向的欧拉角,我还以为找到新大陆了,可以获取人脸的角度,但是测试之后发现返回值一直都是0。也是让我很无奈,不知道如何才能获取更多的信息。难道就没有免费的可以获取更多人脸信息的开源资料么。
android还提供一个类只是已经过时了,Camera.Face可以返回人脸信息,但是只能在部分手机上获取关键点坐标,也是很无奈。大家需要的话可以拿着关键字百度一下就可以了。
LZ虽然没有找到好的方法,只能给不好的和大家分享一下了,技术在进步,相信免费开源的很快就能被LZ发现了。