動作活體識別
更新時間 2025-10-22 11:24:47
最近更新時間: 2025-10-22 11:24:47
分享文章
動作活體識別
接口描述
用于判斷視頻中的人物動作與傳入動作類型是否一致來識別視頻中人物是否眨眼、左搖頭、右搖頭、上下點頭或張嘴,以及是否活體人臉。
請求方法
POST
接口要求
目前僅支持檢測視頻的Base64編碼,一次請求支持一個視頻文件,不支持直接檢測視頻流。
視頻Base64編碼后大小不超過11MB,原視頻大小不超過8M。
限制視頻時長1~8秒
限制幀率10fps~30fps
視頻封裝格式:mp4、avi、mov
URI
/v1/aiop/api/3j8ogbxxpce8/action-fas/predict
請求參數
請求頭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.daliqc.cn | |
| Eop-Authorization | 是 | String | 由天翼云官網 accessKey 和 securityKey 經簽名后生成,參與簽名生成的字段包括天翼云官網 accessKey 、securityKey、平臺應用的 appkey(非必須),用戶請求id(非必須),請求時間,終端節點域名(非必須)以及請求體內容 簽名邏輯詳見文檔:[認證鑒權]和[Python3調用示例] |
請求體body參數
| 參數 | 是否必填 | 參數類型 | 說明 | 示例 | 下級對象 |
|---|---|---|---|---|---|
| Action | 是 | String | 服務名稱,固定值ActionFas | ActionFas | |
| VideoBase64 | 是 | String | 視頻數據,Base64編碼,Base64編碼后大小不超過8MB | AAAAFGZ0eXBxdCAgAAACAHF0ICAAAAAId2lkZQBHooJtZGF0AAACrgYF//+q3E......Wp4A== | |
| ActionType | 是 | String | 動作類型的名稱。"Blink"代表眨眼,"OpenMouth"代表張嘴,"FaceLeft"代表左搖頭,"FaceRight"代表右搖頭,"FaceUpdown"代表上下點頭。 | Blink |
請求代碼示例
Curl -X POST "//ai-global.ctapi.daliqc.cn/v1/aiop/api/3j8ogbxxpce8/action-fas/predict"
-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.daliqc.cn"
--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()函數進行編碼