简介
本文简单说明Face++ android 人脸检测器的使用方法,在线和离线人脸识别算法,算法支持android ios。最好给出结合Cocos2d-x应用。
注意:SDK 中包含armeabi 以及armeabi-v7a 两种架构的编译版本,其中armeabi 架构由于缺少浮点运算指令,因此运行速度仅能达到armeabi-v7a 编译版本的一半水平,请根据需求选用。
相关文件
demo.zip:离线检测器使用示例工程
doc.zip:SDK 接口javadoc 描述
libs/faceapi.jar SDK 接口
libs/armeabi SDK :依赖库(armeabi 架构)
libs/armeabi-v7a SDK :依赖库(armeabi-v7a 架构)
使用流程
本节内容通过介绍demo 工程来讲解SDK 的使用方式。
- 建立一个java 工程。
- 在AndroidManifest.xml 中添加权限
- 根据需求选择离线SDK 中依赖库以及libs/faceapi.jar 拷入工程内的libs 文件夹内,例如若APP 的运行环境为armeabi 架构,如下图所示:
- 接着,在程序中初始化一个com.faceplusplus.api.FaceDetector 类。注意,类初始化时需要使用到当前context 以及使用者对应的API_Key, 这个API_Key 必须与下载离线检测器的App 对应的API_Key 一致才可以正确调用这个库。下面是一个调用示例:
- 离线检测器与线上API 的协同功能:如果需要用到线上API 的更多功能,可以将本地的检测结果直接上传(从而节省传输的数据量,仅会上传脸部图像)。使用离线SDK 中HttpRequest 的新方法offlineDetect,可将离线结果直接同步至线上,并获取face_id 进行后续操作,如下图所示:
库及key
本节提供库:http://pan.baidu.com/s/1i9szc
及下面是Key
- API Key:636c34abb317f0c62985cabd73ebc8c8
- API Secret:TCLJv-6PZtqSzVbthX0r2-IElnpW3z1t
- API Url:apicn.faceplusplus.com
在Cocos2d-x应用人脸识别
静态检测
- 利用摄像机拍照保存图像RGBA8888,路径存到安卓程序的目录下,获取目录函数:FileUtils::getInstance()->getWritablePath()
- 和JNI交互使用,参考cocosplatformandroidjava下面的Cocos2dxHelper.java,及jni下面的Java_org_cocos2dx_lib_Cocos2dxHelper
动态检测
需要把摄像机嵌入到cocos2d-x里,有空就写个教程出来。