易盾提出基于人类认知学习的自适应人脸鉴伪算法，通过模拟人类认知学习过程，从大规模人脸数据中学习通用、细粒度的人脸特征信息，并通过大模型对齐学习技术进一步强化真假人脸的差异性，有效提升对伪造人脸的识别能力。

接口支持传入人脸图片或人脸视频，通过人脸鉴伪算法检测是否存在深度伪造风险。能够精准识别包括，AIGC生成人脸、人脸深度伪造、人脸像素级PS、“AI换脸”模板以及翻拍/怼屏等伪造场景。


## 接口说明

### 图片要求

- 图片格式：JPG、JPEG、PNG、GIF、BMP、WEBP、TIFF。
- 图片大小：推荐50~100 KB，Base64编码后最大不超过约2 MB。
- 图片分辨率：建议640*480（高*宽），不超过1920*1080（高*宽），且保持照片的高大于宽。推荐短边缩放到720像素，压缩率0.8。
- 图片质量：照片清晰、曝光正常，脸部无过黑、过亮、光晕等情况。
- 图片人脸：当图片出现多人脸，系统会默认检测最大脸。

### 视频要求


- 视频格式：支持mp4、avi、flv格式。
- 视频大小：体积建议大于100KB，Base64编码后建议在8M以内，最大不可超过10M。
- 视频时长：建议2～5s，最大不可超过10s。
- 视频分辨率：建议640 * 480（高 * 宽）。
- 视频处理时间较久，建议接口超时时间设置适当延长。

### 鉴权说明

易盾信息认证服务使用签名方法对接口进行鉴权，所有接口每一次请求都需要包含签名信息（signature参数），以验证用户身份，防止信息被恶意篡改。目前支持MD5，SHA1，SHA256，SM3几种加密算法，详细信息，请参见[接口鉴权](https://support.dun.163.com/documents/391676076156063744?docId=622572798032863232)

## 请求

### 请求地址

| **名称** | **值**                                          |
| --- |------------------------------------------------|
| HTTP URL | https://verify.dun.163.com/v1/deepfake/checkV2 |
| HTTP Method | POST                                           |

### 请求头

| **名称** | **类型** | **必填** | **描述** |
| --- | --- | --- | --- |
| Content-Type | String | 是 | 固定值："application/x-www-form-urlencoded" |

### 请求参数

请求参数由请求公共参数和请求业务参数两部分组成，通用参数见[请求通用字段](https://support.dun.163.com/documents/391676076156063744?docId=622573136165068800)

| **名称** | **类 型** | **必填** | **最大长度** | **描述** |
| --- | --- | --- | --- | --- |
| faceInputType | Number | 否 | 4 | 人脸素材输入类型：<br>1-人脸图片（默认）<br>2-人脸视频<br>备注：视频处理时间较久，建议超时时间设置适当延长。视频模式当前暂未开放。 |
| inputType | Number | 是 | 4 | 人脸素材输入格式：<br>1-URL<br>2-BASE64 |
| faceData | String | 是 | 图片Base64≤约2MB；视频Base64≤约10MB；URL≤2048字符 | 待检测的人脸素材（图片或视频）。当 `inputType=2`（BASE64）且 `faceInputType=1` 时，需为合法图片内容（JPG/PNG/GIF/BMP/WEBP/TIFF），否则会返回人脸数据格式错误。 |
| dataId | String | 否 | 64 | 数据标识，可传入用户标识等数据，便于数据查询 |

### 请求体示例

```
version=v1&businessId=xxx&timestamp=1638180222235&nonce=xxx&secretId=xxx&signature=xxx&faceInputType=1&inputType=2&faceData=xxx&dataId=xxx
```

## 响应

### 响应结果

响应字段如下，响应通用字段已省略，详细见[响应公共字段](https://support.dun.163.com/documents/391676076156063744?docId=624032228347863040)

| **参数名称** | **类型** | **必须返回** | **描述** |
| --- | --- | --- | --- |
| status | Number | 是 | 认证结果，1-识别成功，具体结果见riskResultInfo字段。0-待定，具体原因见reasonType字段 |
| reasonType | Number | 是 | 原因详情：<br>1-识别成功<br>2-图片格式或大小不正确<br>3-检测不到人脸<br>7-系统繁忙<br>8-视频文件大小不符合预期，体积需大于100KB且不超过10M<br>9-视频时长不超过10s<br>10-视频格式不正确，支持mp4、avi、flv格式<br>11-视频截帧失败<br>12-文件分辨率较低 |
| taskId | String | 是 | 本次请求数据标识，可以根据该标识查询数据最新结果 |
| isPayed | Number | 是 | 本次请求是否收费标识，1代表收费，0代表不收费 |
| riskResultInfo | String | 否 | 风险结果<br>0-正常<br>1-伪造<br><br>照片识别结果，当status=1时，该字段才有值 |
| riskTag | String | 否 | 风险标签，仅当识别结果为伪造（riskResultInfo=1）时返回，多个标签以英文逗号分隔：<br>suspectedDeepfake：疑似深度合成人脸攻击<br>suspectedTemplateAttack：疑似"AI换脸"模板攻击<br>suspectedFaceReplay：疑似翻拍人脸攻击 |

### 响应体示例

**识别成功-正常**

```json
{
    "code": 200,
    "msg": "ok",
    "result": {
        "taskId": "fcb5dc3b6b5242b1bd0b14c866c83ec5",
        "status": 1,
        "reasonType": 1,
        "isPayed": 1,
        "riskResultInfo": "0"
    }
}
```

**识别成功-存在伪造风险**

```json
{
    "code": 200,
    "msg": "ok",
    "result": {
        "taskId": "fcb5dc3b6b5242b1bd0b14c866c83ec5",
        "status": 1,
        "reasonType": 1,
        "isPayed": 1,
        "riskResultInfo": "1",
        "riskTag": "suspectedDeepfake,suspectedTemplateAttack"
    }
}
```

### 响应返回码

响应返回码见：[响应返回码](https://support.dun.163.com/documents/391676076156063744?docId=624032338595143680)

接口业务层额外可能返回的错误码：

| **HTTP 状态码** | **业务状态码** | **描述** |
| --- | --- | --- |
| 405 | - | picType/inputType字段出错，请参考开发文档进行核查 |
| 405 | - | inputType不能为空 |
| 405 | - | inputType参数值不合法，仅允许1(URL)或2(BASE64) |
| 405 | - | faceInputType字段出错，仅允许1(图片)或2(视频) |
| 405 | - | faceData不能为空或大小不符合要求 |
| 405 | - | 人脸数据格式有误，请检查输入格式与声明类型是否一致 |
| 405 | - | 视频base64大小或视频url长度为空或超限 |
| 503 | - | 视频深伪检测接口暂不可用，请使用图片模式或稍后重试 |