Platform: RK3288
OS: Android 6.0
Kernel: 3.10.92
背景:
需求:
在线人脸搜索
评估方案:
face++的在线人脸搜索功能
评估参数:
- 搜索的响应时间
- 识别的置信度
- 当样本数量增大后的延迟以及识别率
实现方式:
使用okHttp Post方式和face++ server通信
基本概念:
什么是Face和FaceSet?
Face:在图片中检测到的人脸,系统会为人脸分配唯一标识face_token。在进行人脸比对或者人脸属性/关键点检测时必须指定face_token。
FaceSet:人脸集合,用来存放face_token的数据结构。将人脸存入FaceSet可以进行人脸搜索操作,在指定的人脸集合中寻找与指定人脸可以判断为同一人的人脸。
新的人脸识别API与旧版本相比有哪些提升?
什么是Face存储?
Face存储是一种存储服务,用户提供的图片检测到的人脸可以储存起来,用于人脸分析、人脸比对、人脸搜索等操作。Face存储并不是图片存储,而是人脸的特征信息,所以不会向用户提供人脸图片的下载或者显示。
如何使用Face存储?
如果您使用API将face_token存入FaceSet,系统将为您存储face_token对应的人脸特征信息。如果face_token超过72小时没有存放在任何FaceSet中,则会被系统清除。
最基本搜索人脸流程:
1)调用FaceSet Create API,创建FaceSet(人脸库)
2)调用Detect API,获取人脸的FaceToken
3)调用FaceSet AddFace API,向人脸库中添加人脸数据
4)调用Search API,搜索人脸
实现步骤
官网创建账号
https://console.faceplusplus.com.cn/dashboard
后面的face的操作都是基于这个账号来管理,因为操作face需要对应key和secret.
这两个值会在创建账号之后自动分配。
创建人脸库
即创建faceSet,它就像一个放置人脸照片样本的容器一样。
API参考: https://console.faceplusplus.com.cn/documents/4888391
注意事项:
- api_key和api_secret从上面获取
- 每post一次会返回一个新的不同的faceset_token
- 如果post的时候带outer_id参数,那么在下一次create的时候会返回400的http status
code,意思是已经创建过此faceSet了,不能重复创建
因此创建好一个faceSet后就没必要再调用此接口了。
另外,也可以直接在ubuntu上用命令行的方式测试你的仓库
curl -X POST "https://api-cn.faceplusplus.com/facepp/v3/faceset/create" \
-F "api_key=<api_key>" \
-F "api_secret=<api_secret>"