1、接口描述
动作活体检测包括多种动作检测,判断图片序列中有对应动作
2、请求方法
POST
3、接口要求
- 输入图片序列最少3张,最多35张,一次请求建议上传6-10张,建议上传频率每秒1-2次请求
- 图片格式限制:支持jpg/png/bmp/jpeg图片格式
- 图片尺寸限制:最大输入图片宽度不大于960px,高度不大于1280px,图片上传建议分辨率为{'width': 200px, 'height': 150px},可视摄像头表现向上浮动分辨率尺寸
4、URI
名称 | URI | 描述 |
---|---|---|
摇头动作检测 | /v1/aiop/api/2glatwsypczk/face-fas-action/person/fas_shake_from_base64 | 判断图片序列中是否有摇头动作 |
抬头动作检测 | /v1/aiop/api/2glajezvpedc/face-fas-action/person/fas_up_from_base64 | 判断图片序列中是否有抬头动作 |
低头动作检测 | /v1/aiop/api/2ghyetqcv20w/face-fas-action/person/fas_down_from_base64 | 判断图片序列中是否有低头动作 |
左转头动作检测 | /v1/aiop/api/2glbm7cv6br4/face-fas-action/person/fas_left_from_base64 | 判断图片序列中是否有左转头动作 |
张嘴动作检测 | /v1/aiop/api/2glbjq9sjhmo/face-fas-action/person/fas_mouse_from_base64 | 判断图片序列中是否有张嘴动作 |
眨眼动作检测 | /v1/aiop/api/2glbhkc1yuio/face-fas-action/person/fas_eye_from_base64 | 判断图片序列中是否有眨眼动作 |
右转头动作检测 | /v1/aiop/api/2glbdqm0vtog/face-fas-action/person/fas_right_from_base64 | 判断图片序列中是否有右转头动作 |
5、请求参数
请求头header参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
Content-Type | 是 | String | json格式 | application/json | |
appkey | 是 | String | 平台应用appkey | 562b89493b1a40e1b97ea05e50dd8170 | |
ctyun-eop-request-id | 是 | String | 用户请求 id,由用户构造,用户可以通过 uuid 等方法自行生成唯一字符串,用于日志请求追踪 详见文档:Python3调用示例 |
33dfa732-b27b-464f-b15a-21ed6845afd5 | |
eop-date | 是 | String | 请求时间,由用户构造,形如 yyyymmddTHHMMSSZ 详见文档:Python3调用示例 |
20211221T163014Z | |
host | 是 | String | 终端节点域名,固定字段 | ai-global.ctapi.ctyun.cn | |
Eop-Authorization | 是 | String | 由天翼云官网 accessKey 和 securityKey 经签名后生成,参与签名生成的字段包括天翼云官网 accessKey 、securityKey、平台应用的 appkey(非必须),用户请求id(非必须),请求时间,终端节点域名(非必须)以及请求体内容 签名逻辑详见文档:认证鉴权和Python3调用示例 |
请求体body参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
image1Content | 是 | String | 传入图片的base64编码,图片使用常规的base64编码方式,编码后,不包含前缀,剔除前缀例如” data:image/jpeg;base64,” | _9j_4AAQSkZJRg... | |
image2Content | 是 | String | 传入图片的base64编码,图片使用常规的base64编码方式,编码后,不包含前缀,剔除前缀例如” data:image/jpeg;base64,” | _9j_4AAQSkZJRg... | |
image6Content | 是 | String | 传入图片的base64编码,图片使用常规的base64编码方式,编码后,不包含前缀,剔除前缀例如” data:image/jpeg;base64,” | _9j_4AAQSkZJRg... |
6、请求代码示例
Curl -X POST "https://ai-global.ctapi.ctyun.cn/v1/aiop/api/2glbdqm0vtog/face-fas-action/person/fas_right_from_base64"
-H "Content-Type: application/json"
-H "ctyun-eop-request-id:33dfa732-b27b-464f-b15a-21ed6845afd5"
-H "appkey:XXX"
-H "Eop-Authorization:XXX"
-H "eop-date:20211109T104641Z"
-H "host:ai-global.ctapi.ctyun.cn"
--data '{"image1Content":"AAAAAAAAA....",..."image10Content":"AAAAAAAAA...."}'
7、返回值说明
请求成功返回响应参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
statusCode | 是 | Int | 请求响应状态码,返回 0 表示成功,返回错误代码参考下面的错误代码列表 | 0 | |
message | 是 | String | 返回对应的可读消息 | success | |
returnObj | 是 | Object | 返回结果键值集合,键为是否检测到当前期望动作”action_detected”;值为动作检测结果bool值true/false,其中true表明检测到期望动作,false表示未检测到 | returnObj |
表result
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
action_detected | 是 | Bool | 是否检测到当前期望动作 | true |
请求失败返回响应参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
statusCode | 是 | String | 错误码,放置API对应的错误码 | 4213 | |
message | 是 | String | 请求失败时返回值固定为"error" | error | |
details | 是 | String | 返回对应的错误信息 | ||
error | 是 | String | 返回对应的错误码 | AI_OP_4213 |
8、返回值示例
请求成功返回值示例
// 检测到动作
{
"statusCode": 0
"message": "success",
"returnObj": {
"action_detected": true
}
}
// 没有检测到动作
{
"statusCode": 0,
"message": "success",
"returnObj": {
"action_detected": false
}
}
请求失败返回值示例
{
"statusCode": "4213",
"message": "error",
"details": "有图片包含多张人脸",
"error":"AI_OP_4101"
}
9、状态码
http状态码 | 描述 |
---|---|
200 | 表示请求成功 |
10、错误码说明
4 位错误码。4 开头为业务错误码,5 开头为服务错误码。
错误码 | 错误信息 | 错误描述 |
---|---|---|
AI_OP_4201 | 请求内容错误 | 传入内容为空,或者传入的参数名错误 |
AI_OP_4202 | 请求参数格式错误 | 参数格式不满足要求,如请求体不是json格式等 |
AI_OP_4203 | 图片解码失败 | 图片处理出现异常 |
AI_OP_4204 | 人脸探测异常, 请确保为真实人脸! | 用户摄像头拍到照片或屏幕上的非活体人脸。 或用户处于逆光等光照条件差的环境下。 |
AI_OP_4205 | 所上传图片尺寸过大 | 编码前的原始图片宽高大于设定阈值 |
AI_OP_4207 | 请上传至少3张图片 | 动作检测接口需要接收3张以上图片 |
AI_OP_4208 | 上传图片多于35张,请减少上传图片数量 | 动作检测接口接收图片数量上限为35 |
AI_OP_4209 | 请传输第“i”张图片(“i”为缺失的图片数字) | 图片序列按照1-6等进行编号,在检测到动作之前检测到存在缺失的图片 |
AI_OP_4210 | 有图片解码失败 | 图片为空,base64编码有误,或图片格式不支持 |
AI_OP_4212 | 请正对摄像头, 请避免逆光环境! | 上传图片序列中,有图片不包含人脸。 或用户处于逆光等光照条件差的环境下。 |
AI_OP_4213 | 有图片包含多张人脸 | 用户摄像头拍摄到多人人脸 |
AI_OP_5000 | 服务内部错误,请联系管理员 | 接口服务出现未知错误,请联系管理员解决 |
11、base64 编码规则:使用常规的 safe base64 编码方式
- python 中推荐使用
base64.urlsafe_b64encode()
函数进行编码 - java 中推荐使用
BASE64.getUrlEncoder().encodeToString()
函数进行编码