动作活体识别
更新时间 2026-06-01 09:32:07
最近更新时间: 2026-06-01 09:32:07
介绍如何调用动作活体识别能力。
接口描述
用于判断视频中的人物动作与传入动作类型是否一致,包含识别视频中人物是否眨眼、左摇头、右摇头、上下点头或张嘴五个动作。
请求方法
POST
接口要求
目前仅支持检测视频的Base64编码,一次请求支持一个视频文件,不支持直接检测视频流。
视频Base64编码后大小不超过11MB,原视频大小不超过8M。
限制视频时长1~8秒
限制帧率10fps~30fps
视频封装格式:mp4、avi、mov、flv、webm、asf、wmv
URI
/v1/aiop/api/3j8ogbxxpce8/action-fas/predict
请求参数
请求头header参数
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|---|---|---|---|---|
| Content-Type | 是 | String | json格式 | application/json | |
| Authorization | 是 | String | 平台应用APIkey | Bearer $API_KEY |
请求体body参数
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|---|---|---|---|---|
| Action | 是 | String | 服务名称,固定值ActionFas | ActionFas | |
| VideoBase64 | 是 | String | 视频数据,Base64编码,Base64编码后大小不超过8MB | AAAAFGZ0eXBxdCAgAAACAHF0ICAAAAAId2lkZQBHooJtZGF0AAACrgYF//+q3E......Wp4A== | |
| ActionType | 是 | String | 动作类型的名称。"Blink"代表眨眼,"OpenMouth"代表张嘴,"FaceLeft"代表左摇头,"FaceRight"代表右摇头,"FaceUpdown"代表上下点头。 | Blink |
请求代码示例
Curl -X POST "https://${host}/${api}/v1/aiop/api/3j8ogbxxpce8/action-fas/predict"
-H "Content-Type: application/json"
-H "Authorization: Bearer $API_KEY"
--data '{
"Action": "ActionFas",
"VideoBase64": "AAAAFGZ0eXBxdCAgAAACAHF0ICAAAAAId2lkZQBHooJtZGF0AAACrgYF//+q3E......Wp4A==",
"ActionType": "Blink",
}'返回值说明
请求成功返回响应参数
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|---|---|---|---|---|
| statusCode | 是 | Int | 请求响应状态码,返回 0 表示成功,返回错误代码参考下面的错误代码列表 | 0 | |
| message | 是 | String | 返回对应的可读消息 | success | |
| returnObj | 是 | Object | 返回结果键值集合,键为是否检测到当前期望动作”action_detected”;值为动作检测结果bool值true/false,其中true表明检测到期望动作,false表示未检测到 | returnObj |
表returnObj
| 参数 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|---|---|---|---|
| eye | String | 是否检测到眨眼行为 True:检测到此行为 False:未检测到此行为 | False | |
| face_left | String | 是否检测到左摇头行为 True:检测到此行为 False:未检测到此行为 | False | |
| face_right | String | 是否检测到左摇头行为 True:检测到此行为 False:未检测到此行为 | False | |
| face_updown | String | 是否检测到上下点头行为 True:检测到此行为 False:未检测到此行为 | False | |
| mouth | String | 是否检测到上下点头行为 True:检测到此行为 False:未检测到此行为 | True | |
| valid | String | 动作是否一致 True:动作一致 False:动作不一致 | True |
请求失败返回响应参数
| 参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
|---|---|---|---|---|---|
| statusCode | 是 | String | 错误码,放置API对应的错误码 | 4213 | |
| message | 是 | String | 请求失败时返回值固定为"error" | error | |
| details | 是 | String | 返回对应的错误信息 | ||
| error | 是 | String | 返回对应的错误码 | AI_OP_4213 |
返回值示例
请求成功返回值示例
{
"statusCode": 0,
"message": "success",
"returnObj": {
"eye": "True",
"face_left": "False",
"face_right": "False",
"face_updown": "False",
"mouth": "False",
"valid": "True"
}
}请求失败返回值示例
{
"statusCode": 500001,
"message": "服务接口异常,请联系管理员",
"details": "需要联系管理员处理",
"error":"AI_OP_500001"
}状态码
| http状态码 | 描述 |
|---|---|
| 200 | 表示请求成功 |
错误码说明
6 位错误码。4 开头为业务错误码,5 开头为服务错误码。
| 错误码 | 错误信息 | 错误描述 |
|---|---|---|
| CTAPI_10000 | API Not Found | |
| CTAPI_0009 | 无效json的body参数 | |
| AI_OP_400005 | 请求体类型错误 | 请求体需为字典,不能为其他类型 |
| AI_OP_400006 | 必传的参数未传 | 必须的参数(Action、ActionType 或 VideoBase64)未传 |
| AI_OP_400008 | 请求体的参数字段类型错误 | Action 字段应该是 string 类型 VideoBase64 字段应该是 string 类型 ActionType 字段应该是 string 类型 |
| AI_OP_400009 | 请求体的参数字段值为空 | Action、ActionType 或 VideoBase64 字段值为空字符 |
| AI_OP_400010 | 请求体的参数字段值设置错误 | Action、ActionType 值设置错误 |
| AI_OP_400011 | 视频时长不符合要求 | 视频时长不符合要求,限制为 1 ~ 8秒 |
| AI_OP_400012 | 视频编码后大小不符合要求 | 视频编码后大小不符合要求,要求小于11M |
| AI_OP_400013 | 视频帧率不符合要求 | 视频帧率限制为 10fps ~ 30fps |
| AI_OP_400015 | 视频封装格式不符合要求 | 视频封装格式请参考接口文档说明 |
| AI_OP_400016 | 视频读取失败 | 视频文件损坏读取失败 |
| AI_OP_400017 | 视频Base64数据处理异常 | 视频Base64字符串转换字节码异常 |
| AI_OP_400018 | 视频未检测到人脸 | 视频未检测到人脸 |
| AI_OP_400019 | 视频光线过暗 | 视频光线过暗,请提高亮度 |
| AI_OP_400020 | 视频光线过亮 | 视频光线过亮,请降低亮度 |
| AI_OP_400021 | 视频清晰度过低 | 视频清晰度过低,请提高清晰度 |
| AI_OP_500001 | 服务接口异常,请联系管理员 | 需要联系管理员处理 |
base64 编码规则:使用常规的 safe base64 编码方式
python 中推荐使用
base64.urlsafe_b64encode()函数进行编码java 中推荐使用
BASE64.getUrlEncoder().encodeToString()函数进行编码