活体检测

优质
小牛编辑
134浏览
2023-12-01

1.接口描述

检查用户拍摄的视频是否为活体

请求方式

POST

请求 URL

https://cloudapi.linkface.cn/liveness/check_liveness

2.请求参数

字段类型必需描述
api_idstringAPI 账户
api_secretstringAPI 密钥
motionsstring用户动作序列
complexityinteger活体检测通过的难易程度
liveness_data_filefile见下方注释待检查的活体视频文件,上传本地文件进行检测时选取此参数
liveness_data_urlstring见下方注释待检查的活体视频文件的url,采用抓取网络文件方式时需选取此参数
anti_hackbool开启防hack功能。开通:true,不开通:false。默认false,不开通

请求参数 liveness_data_fileliveness_data_url二选一。

目前支持 http/https 等协议的网络地址。下载限时 10s,超时后仍未下载完成则属于失败。

请求参数anti_hack参数决定是否启用防hack,如果启用防hack,调用返回结果会返回anti_hack_result,字段含义详见下文。

请求参数motions由下列动作组成的动作序列字符串。

motion描述
BLINK眨眼
MOUTH张嘴
NOD点头
YAW摇头

例如:检测一个眨眼动作, motions为: "BLINK"; 检测眨眼和点头两个动作, motions为: "BLINK NOD";

complexity检测的难易程度,难易程度越高被攻破概率越小。 默认为:正常模式

complexity描述
0简单模式
1正常模式
2困难模式
3地狱模式

各个模式对应的阈值

blinkmouthyawnodallow_tracking_miss模式
0.20.20.10.2true简单
0.20.20.10.2false正常
0.50.50.50.5false困难
0.70.70.70.7false地狱

3.返回参数

正常响应

字段类型说明
request_idstring本次请求的id
statusstring状态,正常为 OK,其他值表示失败,详见错误码
resultobject视屏活体检测的结果,详情见下表“result 中包含字段内容”
anti_hack_resultobject对特征图片进行防hack检测的结果,需要设置请求参数anti_hack为true

result中包含字段内容:

字段类型说明
passedbool算法综合各个动作检测结果的判定结果,通过为true,不通过为false,判断是否通过动作检测,只需要根据最外层passed判断即可
feature_image_idstring从活体视频中提取的一张特征照片,请调用liveness/liveness_image接口获取图片, 服务器仅保留该图片一小时,请及时保存图片。
motionsobject详见下方motions对象中的内容

motions 对象中的内容:

字段类型说明
motionstring动作名称
scorenumber算法评分
passedbool该动作算法检测结果

anti_hack_result 对象中的内容:

字段类型说明
hack_scorefloathack检测评分

> 备注:hack_score阈值为0.98,由行业大数据训练得到,大于0.98是hack行为,小于等于0.98是正常活人

返回样例

{
  "request_id": "TID8bf47ab6eda64476973cc5f5b6ebf57e",
  "status": "OK",
  "result": {
    "motions": [{
      "motion": "MOUTH",
      "score": 0.21820485591888428,
      "passed": true
    }],
    "passed": true,
    "feature_image_id": "xxxxxx"
  },
  "anti_hack_result": {
    "hack_score": 0.8164739608764648
  }
}

4.错误码

状态码status 字段说明
400DOWNLOAD_TIMEOUT网络地址视频获取超时
400DOWNLOAD_ERROR网络地址视频获取失败
400INVALID_ARGUMENT请求参数错误,具体原因见 reason 字段内容
400INVALID_COMPLEXITY复杂度入参错误
400WRONG_LIVENESS_DATAliveness_data 出错
400VIDEO_TIME_TOO_LONG视频时长过长
401UNAUTHORIZED账号或密钥错误
401KEY_EXPIRED账号过期,具体情况见 reason 字段内容
403RATE_LIMIT_EXCEEDED调用频率超出限额
403NO_PERMISSION无调用权限
403OUT_OF_QUOTA调用次数超出限额
404NOT_FOUND请求路径错误
500INTERNAL_ERROR服务器内部错误

返回样例

{
    "status": "INVALID_ARGUMENT",
    "reason": "must specify 'liveness_data_file', 'liveness_data_url' or 'liveness_video_id' argument",
      "request_id": "TIDa892b593c0354b0e989b5db67a331607"
}

5.输入示例

  • cURL样例
curl -X POST "https://cloudapi.linkface.cn/liveness/check_liveness?api_id=ID&api_secret=SECRET" \
  -F liveness_data_file=@/PATH/TO/IMAGE \
  -F motions="BLINK MOUTH"