接口调用问题
在私有化部署过程中遇到的接口调用相关问题,可以查看此文档进行解决。
若文档仍未解决您的问题,请提交工单联系百度的工作人员
Face_token问题
1.私有化如何使用face_token?
私有化环境下想要使用Face_token,需要在生成Face_token的时候(即调用检测、注册接口时),要加face_field字段:feature,用于预先提取特征,方便使用face_token进行特征分析
2.调用detect接口生成的face_token无法用来调用比对、搜索、活体等接口,应该怎么解决?
(1)调用比对、搜索接口:调用detect、add接口检测时,要加face_field字段:feature,用于预先提取特征,方便使用face_token进行比对 (2)调用活体接口:调用detect、add接口时,使用liveness_control参数,用于预先提取活体特征,进行活体分析 (3)获取人脸属性:希望通过facetoken获取什么属性,detect的阶段就需要在field参数中增加哪个参数
- 注册图片后,立即调用显示face_token不存在
注册后,存储face_token需要一段时间,这个时候立即调取图片,库内还未生成该face_token,需要开启redis服务存储图片特征值。
(1)修改 /home/idl-face/odp/conf/app/face-api/project/face.conf 将face_token_storage : db 改为 face_token_storage : cache
(2)修改 /home/idl-face/odp/conf/app/face-api/project/service.conf 将cache : 0 改为 cache : 1
(3)进入 /home/idl-face/odp/conf/db/ 目录,新建redis.conf文件,修改文件权限 chmod 755 redis.conf
(4)文件中添加以下内容,将红框中的ip改为redis服务的地址
注:单条cache有效时间为1个小时, 每条占用空间约4~5K内存
若想修改Cache有效时间,修改/home/idl-face/odp/app/face-api/models/service/dao/cache/Face.php中 EXPIRE项的值即可
其他问题
1.修改max_face_num检测最大人脸数量参数
(1)进入容器
docker ps -a #查看所有容器
docker exec -it (container_id) /bin/bash #进入到container_id容器
(2)修改文件内容
进入文件
cd /home/idl-face/odp/app/face-api/models/domain/request/v3/face/Detect.php
修改最大人脸数量阈值
(3)修改人脸检测接口中max_face_num的最大人脸数量
2.当访问接口时,会给出不同的错误提示
(1)当返回504时,一般是nginx错误,可以查看nginx服务是否启动,查看nginx的日志
(2)当返回502时,一般是hhvm错误,可以查看hhvm服务是否启动,查看hhvm的日志,查找问题原因
(3)当返回222915时,一般是feature_service错误,可以查看feature_service服务是否启动,查看feature_service的日志,查找问题原因
3.当访问接口时错误大概定位
如果提示504 则查看nginx是否有错误
如果提示502 500,则查看hhvm是否有错误,
如果提示222915,则查看feature_service是否有错误
4.如何控制1:N返回的最大人脸数
```javascript
进入docker容器
cd /home/idl-face/odp/app/face-api/models/domain/request/v3/face
vi Identify.php
第58行'options' => array('min' => 1, 'max' => 20),将max调大
注意:返回较多时,会影响检索速度
- 若您想将数据库从一台服务器迁移到另一台服务器,请参考数据库迁移方案