/v2/liveness/check_silent_liveness
优质
小牛编辑
172浏览
2023-12-01
1.接口描述
对用户拍摄的视频进行静默活体检测
请求方式
POST
请求 URL
https://cloudapi.linkface.cn/v2/liveness/check_silent_liveness
2.请求参数
字段 | 类型 | 必需 | 描述 |
---|---|---|---|
api_id | string | 是 | API 账户 |
sequence_id | string | 是 | 客户请求流水号,建议唯一性 |
liveness_data_file | file | 见下方注释 | 待检查的活体视频文件,上传本地文件进行检测时选取此参数 |
liveness_data_url | string | 见下方注释 | 待检查的活体视频文件的url,采用抓取网络文件方式时需选取此参数 |
timestamp | string | 是 | 时间戳 |
sign | string | 是 | 签名(api_id+api_secret+timestamp使用SHA256算法获取) |
注释:
所有中文和特殊字符必需以UTF-8编码转义。
请求参数 liveness_data_file与liveness_data_url二选一。
目前支持 http/https 等协议的网络地址。下载限时 10s,超时后仍未下载完成则属于失败。
视频支持格式:AVI、wma、rmvb、rm、flash、mp4、3GP。
签名sign说明:
我们会为每位公有云用户分配一个账户API ID和对应秘钥API SECRET。为了保证安全性,用户的每次接口调用都需要上传一个签名(基于API ID和API SECRET获取)。
Java示例代码:
SHA256Util.getSHA256Str(LF_APP_ID + LF_APP_SECRET + timeStamp) /** * 利用java原生的摘要实现SHA256加密 * * @param str 加密后的报文 */ public static String getSHA256Str(String str) { MessageDigest messageDigest; String encodeStr = ""; try { messageDigest = MessageDigest.getInstance("SHA-256"); messageDigest.update(str.getBytes("UTF-8")); encodeStr = byte2Hex(messageDigest.digest()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return encodeStr; } /** * 将byte转为16进制 */ private static String byte2Hex(byte[] bytes) { StringBuffer stringBuffer = new StringBuffer(); String temp = null; for (int i = 0; i < bytes.length; i++) { temp = Integer.toHexString(bytes[i] & 0xFF); if (temp.length() == 1) { //1得到一位的进行补0操作 stringBuffer.append("0"); } stringBuffer.append(temp); } return stringBuffer.toString(); }
3.返回参数
正常响应
字段 | 类型 | 描述 |
---|---|---|
request_id | string | 本次请求的 id |
code | string | 业务响应码。正常为 0000 ,其他值表示失败。详见业务响应码 |
msg | string | 消息说明 |
data | object | 消息体,详见data数组中字段的结构(只有code: 0000调用成功时返回) |
charge | int | 是否收费,1收费,2不收费 |
data
数组中字段的结构:
字段 | 类型 | 描述 |
---|---|---|
score | double | 静默活体检测评分 |
feature_image_id | string | 从活体视频中提取的一张照片,请调用/liveness/liveness_image接口获取图片, 服务器仅保留该图片一小时,请及时保存图片。 |
备注:
score阈值推荐为0.98,由行业大数据训练得到,大于0.98为静默活体不通过,小于等于0.98为静默活体通过。
只有code为0000时收费,charge为1;code为其他值时,不收费,charge为2;输出样例:
返回样例
{
"request_id": "TID2af751b4bff24be781d60af10bf84103",
"code": "0000",
"msg":"请求成功",
"data":{
"score": "0.764158124513453",
"feature_image_id": "xxxxxx"
}
"charge": "1",
}
4.业务响应码
code | msg 字段 |
---|---|
0000 | 调用成功 |
1000 | 验签失败 |
1001 | 参数非UTF-8编码 |
1002 | 请求参数错误,具体原因见 reason 字段内容 |
1003 | liveness_data 出错 |
1004 | 图片未检测出人脸 。对应图片见字段 image 所反馈的值 |
1005 | 网络图片/视频获取超时 |
1006 | 网络图片/视频获取失败 |
1007 | 应用冻结 |
1008 | 应用过期 |
1009 | 调用频率过高 |
1010 | 免费次数用尽 |
1011 | 服务无权限 |
1012 | 请求路径错误 |
1022 | 视频时长过长 |
1023 | 不是视频文件或已损坏 |
9999 | 服务器内部错误 |
返回样例
{
"request_id": "TID2af751b4bff24be781d60af10bf84103",
"code": "1002",
"msg":"请求参数错误",
"charge": "2",
}