主题
活体人脸比对—APP端
接口描述
该接口为人脸识别防攻击活体检测与人脸比对的二合一接口, 在防攻击活体检测后, 使用获得的最佳人脸照与传入的人脸照进行1:1比对,返回是否相似。
请求说明
HTTP 方法:
POST请求 URL:
/ai-cloud-face/antispoof/actionCompareHeader如下:
| 参数名称 | 值 |
|---|---|
| Content-Type | application/json;charset=UTF-8 |
Body中放置请求参数,参数详情如下:
请求参数:
| 参数名称 | 必填 | 数据类型 | 长度 | 参数描述 |
|---|---|---|---|---|
| param | 是 | String | 1-200k | SDK获取的人脸识别安全字符串 |
| img | 是 | String | 1-3000k | 比对图片(base64 编码),原始图片大小需要小于 3M; |
| thresholds | 否 | String | 0-32 | 阈值文件名称 不传则使用默认的medium.txt,非必填 |
| deviceType | 否 | String | 0-1 | 设备信息代码 0、未知; 1、android; 2、ios; 3、windows |
| filterType | 否 | String | 0-4 | 图片质量过滤掩码(打开多个过滤功能,filterType为各过滤数值相加,如打开口罩、遮挡和墨镜过滤,filterType=2+4+8=14) 2:戴口罩过滤 4:遮挡过滤 8:墨镜过滤 64:质量分过滤 |
| busFlowId | 否 | String | 0-64 | 业务流水号,业务系统唯一序列号(对账用,建议传入) |
请求示例:
{
"param":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQ......",
"img":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQ......"
}返回说明
返回参数:
| 返回值名称 | 数据类型 | 长度 | 描述 |
|---|---|---|---|
| code | String | 1-8 | 返回结果,00000000表示成功 |
| message | String | 1-255 | 返回码描述 |
| data | Object | - | 返回的数据 |
| -code | int | 4 | 防攻击判断结果,详见防攻击码表 |
| -image | String | 1-200k | 最佳人脸图片base64 |
| -isSame | Boolean | 1 | 是否相似 |
| -busFlowId | String | 1-64 | 业务流水号,业务系统唯一序列号 |
| -flowId | String | 1-64 | 交易流水ID(建议保存) |
| -details | Object | - | 反欺诈结果详细json对象 |
| --deepfakescore | float | 2,6 | 后端深伪合成分析分数 |
| --injectionscore | float | 2,6 | 疑似视频注入分数 |
| --devicesecurityscore | float | 2,6 | 设备安全性分数 |
| --historycheck | float | 2,6 | 历史相似度 |
| --uuid | String | 1-32 | 前端回传UUID |
| --timestamp | String | 1-13 | 前端回传最佳人脸时间戳 |
| --frontdevice | String | 1-32 | 前端设备类型 |
| --frontversion | String | 1-32 | 前端版本号 |
| --mode | String | 1-8 | 是否包含光线活体light 包含光线活体 action只有动作活体 |
| --actionstagelist | String[] | 0-8 | 动作阶段序列 P准备阶段M代表张嘴、E眨眼、L左转、R右转 C炫彩 |
| --actionstageresult | int[] | 0-8 | 动作阶段结果,详见动作阶段码表 |
| --actionstageretimecost | int[] | 0-8 | 对应每个阶段的耗时 |
| --actionstagetime | int[] | 0-8 | 动作阶段开始时间戳 |
| --fingerprint | String[] | 0-8 | 特征向量 |
返回示例:
{
"message": "success",
"code": "00000000",
"success": true,
"data": {
"image": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABALDA4MChAODQ4SERAT...",
"isSame": true,
"code": 1,
"details": {
"deepfakescore": 0.130599,
"injectionscore": -1.0,
"devicesecurityscore": 0.0,
"historycheck": 0.0,
"uuid": "7t6QHZCwZeuhP0Rrv92LHMdEI5ITha",
"timestamp": "1664246187993",
"actionstagelist": [
"P",
"L",
"E"
],
"actionstageresult": [
1,
1,
1
],
"actionstageretimecost": [
1956,
1960,
894
],
"actionstagetime": [
1664246183141,
1664246185097,
1664246187057
],
"frontdevice": "Android",
"frontversion": "v7.5.0.20220519",
"mode": "action"
}
}
}防攻击码表:
(注:相同攻击类型不同错误码是为了区分算法模型以便后续算法分析)
| 攻击码 | 描述 |
|---|---|
| 0 | 无法判断 |
| 1 | 活体 |
| 2 | 疑似扣眼攻击 |
| 3 | 疑似扣嘴攻击 |
| 4 | 疑似半张脸攻击 |
| 5 | 疑似视频回放攻击 |
| 6 | 疑似黑白图片 |
| 7 | 疑似纸面攻击 |
| 8 | 疑似边框(包括纸面、手机等边框) |
| 9 | 疑似摩尔纹攻击 |
| 10 | 疑似脸优攻击 |
| 11 | 疑似纸面攻击(光流) |
| 12 | 疑似面具攻击 |
| 13 | 疑似证卡攻击 |
| 14 | 疑似3D面具攻击 |
| 16 | 动作活体未检测到动作 |
| 20 | 疑似不满足人行人脸识别图片质量要求 |
| 21 | 疑似戴口罩/遮挡或者墨镜 |
| 22 | 疑似未检测到人脸 |
| 23 | 人脸检测或质量分或活体分模块运行异常 |
| 30 | 动作活体判定为换人,提示请不要剧烈晃动屏幕 |
| 31 | 动作活体判定为环境光太暗,提示增加环境光 |
| 32 | 动作活体判定为环境光太亮,提示降低环境光 |
| 33 | 动作活体判定没有正对屏幕,提示需要正对屏幕 |
| 34 | 动作活体判定清晰度不够,提示确保光线自然,无晃动屏幕 |
| 35 | 动作活体未检测到动作 |
| 50 | 疑似合成图像攻击 |
| 51 | 疑似合成图像攻击 |
| 52 | 判疑似黑产软件攻击 |
| 53 | 疑似T型面具攻击 |
| 54 | 疑似黑白照片 |
| 55 | 疑似模糊图片 |
| 56 | 疑似深伪图像攻击 |
| 57 | 疑似深伪图像攻击 |
| 58 | 疑似高清屏幕攻击 |
| 59 | 疑似3D面具攻击 |
| 60 | 光线校验失败 |
| 61 | 环境光太亮导致光线校验失败 |
| 62 | 疑似设备存在风险 |
| 63 | 疑似注入攻击 |
| 64 | 疑似注入攻击 |
| 65 | 疑似注入攻击 |
| 66 | 疑似时间戳间隔小于预设值 |
| 67 | 疑似篡改攻击 |
| 68 | 疑似合成攻击 |
| 69 | 前端没有通过的报文 |
动作阶段码表:
| 动作码 | 描述 |
|---|---|
| 0 | 等待 |
| 1 | 通过 |
| 2 | 人脸太远 |
| 3 | 人脸太近 |
| 4 | 人脸角度没有正对屏幕(准备阶段) |
| 5 | 人脸晃动(准备阶段) |
| 6 | 人脸太暗(准备阶段) |
| 7 | 人脸太亮(准备阶段) |
| 8 | 人脸不在屏幕中间(准备、张嘴、眨眼) |
| 9 | |
| 10 | 人脸被遮挡(准备、张嘴、眨眼) |
| -7 | 换人攻击 |
| -9 | 检测到劫持的可能性 |
| -20 | 光线阶段人脸太远 |
| -21 | 光线阶段人脸没有正对屏幕 |
| -22 | 光线阶段人脸不居中 |
| -100 | 动作不一致做出张嘴动作 |
| -101 | 动作不一致做出左转动作 |
| -102 | 动作不一致做出右转动作 |
错误码
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共CODE码表
| 码值 | 是否成功 | 是否计费 | 描述 |
|---|---|---|---|
| 00000000 | 是 | 是 | 成功 |
| 50029810 | 否 | 否 | 安全串不能为空 |
| 50029334 | 否 | 否 | 防攻击检测异常 |
| 50029109 | 否 | 否 | 引擎检测异常 |
| 50029108 | 否 | 否 | 引擎检测异常 |