最近由于公司业务方面的需要,简单研究了一下人脸识别方面的问题,在这里分享一下最近使用的心得和一些技术要点,主要分为以下几个方面:
- 人脸识别的api接口提供商
- 本文使用api接口
- 相关文档的使用
- 静默拍照的集成
人脸识别的api接口提供商
①GOOGLE CLOUD VISION API
②FACE++
③阿里
④汉王智远
⑤云从科技
这些是网上几家比较有名的可以提供人脸识别接口的供应商,根据我们的业务需求,最后从GOOGLE和FACE++这两家选择了服务,因为谷歌的api接口里没有提供年龄的这一项数据,所以最终就确定了使用face++作为我们以后开发一个方向。
本文使用api接口
本文使用的是face++的新接口,有一点比较坑的是这里得说明一下,face++现在新的接口已经改版,之前的api还可以使用但是已经没办法申请key了,网上关于face++的说明文档大部分都是使用他们以前过时的api。
之前本来这块在githup上面down了几个demo,然后在各大博客里也找到了一些文档的使用方法,然后把demo直接导进我的项目了就直接用了,但是后来发现了个问题,就是照片识别的速度特别慢,当时猜测可能是申请的key过时了,所以自己又去face官网注册了账号,然后申请了免费试用的key,居然发现他这个免费的key居然不和你的application绑定使用(虽然申请key时候他有这个选项,但是根本没什么鸟用)但是后来想一想既然是试用的key所以绑不绑定都无所谓了,所以直接把key和secret直接粘贴了进去,窝巢,居然不好使,通过我最后和他们客服技术支持的交流,终于发现了,原来是接口的问题,现在的key不适用于以前的接口,那个demo用的是老接口。所以,知道了这个原因之后,索性直接去看他们的官方文档说明了,然后参考了hyman的代码,自己改了改基本上完成的差不多了。
相关文档的使用
第一步
来到face++官方网站,注册账号,如果是弄demo的话自己注册一个免费的key,然后还有一个secret,这很简单,我就不贴图片了。
第二步
插入一个小插曲,每天都用这个gradle,一直不知道是干啥的,今天查了查用处。
(gradle是一个工程构建工具,java代码,和资源文件需要经过sdk里的一些程序如aapt等处理,才能形成apk包。gradle就是把那些步骤变得简单化。相当于eclipse中的ant吧!一句话概括就是:依赖管理和任务执行。像Ruby里面的bundler+rake,像iOS中的cocoapods,像node中的npm+grunt.通俗的讲就是:你的项目需要哪些第三方库,它帮你把它们都下载下来,并且编译好放到指定的位置,你就直接可以import后用了。它本身是基于Apache的an…)
我调用的是Detect API 这里是接口官方文档的说明