同步检测
2023.03.20 11:51:45
图片同步检测接口帮助您检测图片中的违规内容和多维度的辅助信息,提供包括智能鉴黄、暴恐、涉政、违禁、广告、恶心、涉价值观等违规内容识别能力,以及logo识别、OCR识别、人脸识别、图片质量等多维度辅助信息能力。
接口说明
该接口同步返回图片检测结果,建议http协议接口调用。
鉴权说明
易盾内容安全服务使用签名方法对接口进行鉴权,所有接口每一次请求都需要包含签名信息(signature 参数),以验证用户身份,防止信息被恶意篡改。目前支持MD5,SHA1,SHA256,SM3几种加密算法,详细信息,请参见接口鉴权
图片要求
- 图片支持类型:URL、BASE64
- 图片支持格式:PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、ICO、HEIC、SVG
- 图片大小(适用于同步和异步检测): 单张<10M,像素建议不低于50px*50px,像素过低会影响识别效果
- 图片下载:下载时间限制为5秒内,如果下载时间超过5秒,接口检测失败
- 请求体限制:所有请求参数大小总和不能超过10M(BASE64参数较大),单次请求图片数不能超过32张
- 截帧说明:易盾自动将GIF图,长图(长宽比大于5的图片)截帧过检,最多5张,GIF图,长图均按照实际截图张数进行计费
检测耗时
图片检测接口的响应时间依赖图片的下载时间,请保证被检测图片所在的存储服务稳定可靠,建议适当调整接口超时时间,建议为10s。
历史版本
请求
请求地址
名称 | 值 |
---|---|
HTTP URL | http://as.dun.163.com/v5/image/check |
HTTP Method | POST |
请求头
名称 | 类型 | 描述 |
---|---|---|
Content-Type | String | 固定值:"application/x-www-form-urlencoded" |
请求参数
请求参数由公共参数和业务参数两部分组成。
公共参数
公共参数包含密钥信息和参数签名信息,公共参数详细见请求公共参数
业务参数
名称 | 类型 | 是否必填 | 最大长度 | 描述 |
---|---|---|---|---|
images | String | 是 | 32张或10MB | images为json数组,支持批量检测,为具体图片检测数据,数组长度不能超过32,大小不能超过10M |
∟ name | String | 是 | 1024 | 图片名称(或图片标识), 该字段为回调信号字段,产品可以根据业务情况自行设计,如json结构,或者为图片url均可 |
∟ type | Number | 是 | 4 | 类型,分别为1:图片URL,2:图片BASE64值 |
∟ data | String | 是 | - | 图片内容,如type=1,则该值为图片URL,请求时会校验图片url协议支持http,https,不支持本地file地址检测,如type=2,则该值为图片BASE64值。 |
∟ callbackUrl | String | 否 | 256 | 离线结果回调通知到客户的URL。主动回调数据接口超时时间默认设置为2s,为了保证顺利接收数据,需保证接收接口性能稳定并且保证幂等性。 |
∟ dataId | String | 否 | 128 | 数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询 |
version | String | 是 | 4 | 接口版本号,值为v5.1 |
dataType | Number | 否 | 4 | 子数据类型,与易盾内容安全服务约定即可 |
publishTime | Number | 否 | 13 | 发表时间,UNIX 时间戳(毫秒值) |
checkLabels | String | 否 | 512 | 业务自定义过检分类,请谨慎写入,并与策略经理充分沟通,以免引起漏判,如果没有勾选分类提交返回参数错误,您可指定多个垃圾类别进行机器检测,多个垃圾类别以逗号分隔("100,200"),指定后业务配置过检分类即失效,过检分类列表:100:色情,110:性感低俗,200:广告,210:二维码,260:广告法,300:暴恐,400:违禁,500:涉政,800:恶心类,900:其他,1100:涉价值观 |
subProduct | String | 否 | 32 | 业务结算id(自定义),业务方传入参数,用于资源账单统计,如需开启请联系易盾客户经理。开启之后资源账单按套餐结算sheet增加subProduct维度的数据请求量、检测量、消耗金额的统计 |
token | String | 否 | 256 | 内容安全与反作弊融合版专属字段,来自易盾反作弊SDK返回的token,接入SDK必传,请联系您的专属策略经理获取相关开发文档 |
riskControlToken | String | 否 | 256 | 来自易盾智能风控SDK返回的token,接入SDK必传,接入流程请参考智能风控融合版说明文档 |
riskControlBusinessId | String | 否 | 256 | 调用易盾智能风控getToken时使用的智能风控业务id,接入流程请参考智能风控融合版说明文档 |
业务扩展参数
建议您将发布内容的用户信息、设备信息、场景信息同步传入,易盾将结合用户风险画像、设备风险画像、场景化策略全方位检测内容风险,检测结果更精准。请参见业务扩展参数
请求体示例
images=[{"name":"test","type":1,"data":"https://nos.netease.com/yidun/vdvDi7k8Qn5q","dataId":"1234"}]&version=v5.1&signature=xxx&secretId=xxx&businessId=xxx×tamp=1646984669446&nonce=12353
响应
响应结果
响应字段如下,响应公共字段已省略,详细见响应公共字段:
名称 | 类型 | 是否返回 | 描述 |
---|---|---|---|
result | Object[] | 是 | 图片检测结果 |
∟ antispam | Object | 是 | 图片内容安全检测结果 |
∟ taskId | String | 是 | 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a" |
∟ name | String | 是 | 图片名称(或图片标识) |
∟ dataId | String | 否 | 数据唯一标识 |
∟ status | Number | 是 | 检测状态:2:检测成功,3:检测失败 |
∟ failureReason | Number | 否 | 检测失败原因,当status为3(检测失败)时返回:610 图片下载失败、620 图片格式错误、630 其他 |
∟ suggestion | Number | 是 | 建议动作,0:通过,1:嫌疑,2:不通过 |
∟ censorType | Number | 是 | 审核模式,0:纯机审,1:机审+部分人审,2:机审+全量人审 |
∟ suggestionLevel | Number | 否 | 嫌疑级别,只有命中嫌疑时返回,1:低嫌疑,2:高嫌疑,v5版本及以上新增。默认不返回,如果需要返回请联系运营经理配置 |
∟ resultType | Number | 是 | 结果类型,1:机器结果,2:人审结果 |
∟ censorTime | Number | 是 | 机器审核时间 |
∟ frameSize | Number | 是 | 长图、gif图片拆帧后的分帧数,默认为1 |
∟ hidden | Boolean | 否 | 是否有隐藏文件,返回需要单独开启,请联系运营经理 |
∟ hiddenFormat | String | 否 | 隐藏文件的格式:mpegts,返回需要单独开启,请联系运营经理 |
∟ labels | Object[] | 是 | 命中的分类信息 |
∟ label | Number | 是 | 分类信息,100:色情,110:性感低俗,200:广告,210:二维码,260:广告法,300:暴恐,400:违禁,500:涉政,800:恶心类,900:其他,1100:涉价值观 |
∟ level | Number | 是 | 分类级别,0:正常,1:不确定,2:确定 |
∟ rate | Number | 是 | 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低。若level为正常,置信度越大,说明正常的可能性越高。若level为不确定或确定,置信度越大,说明垃圾的可能性越高 |
∟ subLabels | Object[] | 是 | 细分类信息,可能包含多个 |
∟ hitStrategy | Number | 是 | 用于区分本次机器审核的命中原因:0:图片内容,1:图片上的文字 |
∟ subLabel | String | 是 | 细分类,详细编码请参考下方对应细分类编码 对照表 |
∟ rate | Number | 是 | 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低 |
∟ details | Object | 否 | 命中的详细对象信息 |
∟ keywords | Object[] | 否 | 命中的自定义敏感词信息 |
∟ word | string | 是 | 敏感词内容 |
∟ x1 | Number | 否 | 位置信息,对应目标矩形左上角横坐标相对坐标 |
∟ y1 | Number | 否 | 位置信息,对应目标矩形左上角纵坐标相对坐标 |
∟ x2 | Number | 否 | 位置信息,对应目标矩形右下角横坐标相对坐标 |
∟ y2 | Number | 否 | 位置信息,对应目标矩形右下角纵坐标相对坐标 |
∟ libInfos | Object[] | 是 | 命中的自定义图片名单信息 |
∟ type | Number | 是 | 1:自定义用户名单,2:自定义ip名单,3:自定义设备名单,4:自定义图片名单,目前只支持返回4自定义图片名单 |
∟ entity | String | 是 | 该图片命中自定义图片名单对应原始添加的根源图片url |
∟ releaseTime | Number | 是 | 名单解封时间,时间戳单位毫秒 |
∟ hitCount | Number | 是 | 历史针对该数据源图片命中所有次数 |
∟ value | String | 否 | 图片中包含的可识别内容 |
∟ group | String | 否 | value对应的分组名称,用于对value的解释 |
∟ hitInfos | Object[] | 是 | 命中的线索信息 |
∟ value | String | 是 | 图片中包含的可识别内容 |
∟ group | String | 否 | value对应的分组名称,用于对value的解释 |
∟ x1 | Number | 否 | 位置信息,对应目标矩形左上角横坐标相对坐标 |
∟ y1 | Number | 否 | 位置信息,对应目标矩形左上角纵坐标相对坐标 |
∟ x2 | Number | 否 | 位置信息,对应目标矩形右下角横坐标相对坐标 |
∟ y2 | Number | 否 | 位置信息,对应目标矩形右下角纵坐标相对坐标 |
∟ anticheat | Object | 否 | 命中的反作弊信息 |
∟ hitType | Number | 是 | 反作弊命中类型,详见hitType返回码及含义表 |
∟ ocr | Object | 否 | OCR结果信息,OCR功能需额外付费开启,如有需要请联系您的专属商务,未开通状态下此数组返回为空 |
∟ taskId | String | 是 | 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a" |
∟ name | String | 是 | 图片名称(或图片标识) |
∟ dataId | String | 否 | 数据唯一标识 |
∟ height | Number | 是 | 图片高度,单位像素 |
∟ width | Number | 是 | 图片宽度,单位像素 |
∟ frameSize | Number | 是 | 长图、gif图片拆帧后的分帧数,默认为1 |
∟ details | Object[] | 否 | 命中的详细信息 |
∟ content | String | 是 | 该图片中所有的文字信息集合 |
∟ lineContents | Object[] | 是 | OCR行信息 |
∟ lineContent | String | 是 | 每行的文字信息 |
∟ lang | String | 否 | 语种信息 |
∟ x1 | Number | 否 | 位置信息,对应目标矩形左上角横坐标相对坐标 |
∟ y1 | Number | 否 | 位置信息,对应目标矩形左上角纵坐标相对坐标 |
∟ x2 | Number | 否 | 位置信息,对应目标矩形右下角横坐标相对坐标 |
∟ y2 | Number | 否 | 位置信息,对应目标矩形右下角纵坐标相对坐标 |
∟ face | Object | 否 | 人脸检测信息,人脸检测结果需额外付费开启,如有需要请联系您的专属商务,未开通状态下此数组返回为空 |
∟ taskId | String | 是 | 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a" |
∟ name | String | 是 | 图片名称(或图片标识) |
∟ dataId | String | 否 | 数据唯一标识 |
∟ details | Object[] | 否 | 命中的详细信息 |
∟ faceNumber | Number | 是 | 该图片中包含的人脸个数 |
∟ faceContents | Object[] | 是 | 人脸详细信息 |
∟ name | String | 是 | 图片中出现的人脸名字,未识别则为空。该字段可识别明星、政治人物等人脸信息,用于落马官员/劣迹艺人检测,或明星头像/政治头像检测 |
∟ glasses | String | 是 | 人脸戴眼镜,normal(无眼镜)、 glasses(普通眼镜)、 sunglasses(墨镜),如有需要请联系您的专属商务,未开通状态下不返回该字段 |
∟ gender | String | 否 | 人脸性别,值为男(male)、女(female);不可识别则为空 |
∟ age | Integer | 否 | 人脸年龄,值为具体年龄(age);不可识别则为空 |
∟ growthStage | String | 否 | 成长阶段(未成年,成年),值为child(未成年幼态),young(非幼态未成年),adult(成年) |
∟ type | String | 否 | 人脸类型,包含卡通脸(cartoon)、普通(normal),如有需要请联系您的专属商务,未开通状态下不返回该字段 |
∟ category | String | 否 | 人物分类,包含名人(star)、普通(normal)、海外娱乐明星(overseaEntertainmentStar)、海外体育明星(overseaSportStar)、海外政客(overseaPolitician)、海外网红(overseaInternetStar) |
∟maskType | String | 否 | mask(有遮挡),normal(无遮挡)。判断人脸是否有遮挡,可以用于判断用户是否佩戴口罩墨镜纱巾等综合性遮挡场景 |
∟expression | String | 否 | 人脸情绪:neutral(扮酷),happy(微笑),sad(悲伤),surprise(惊讶),fear(害怕),anger(生气),disgust(不喜欢),如有需要请联系您的专属商务,未开通状态下不返回该字段 |
∟ beautyScore | Number | 否 | 人脸颜值分数,0-1,保留4位小数,如有检测需求请联系易盾策略经理开启服务,如有需要请联系您的专属商务,未开通状态下不返回该字段 |
∟ sizeRatio | String | 否 | 人脸占比,百分比形式 |
∟ x1 | Number | 否 | 位置信息,对应目标矩形左上角横坐标相对坐标 |
∟ y1 | Number | 否 | 位置信息,对应目标矩形左上角纵坐标相对坐标 |
∟ x2 | Number | 否 | 位置信息,对应目标矩形右下角横坐标相对坐标 |
∟ y2 | Number | 否 | 位置信息,对应目标矩形右下角纵坐标相对坐标 |
∟ quality | Object | 否 | 图片质量检测结果,图片质量检测结果需额外付费开启,如有需要请联系您的专属商务,未开通状态下此数组返回为空 |
∟ taskId | String | 是 | 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a" |
∟ name | String | 是 | 图片名称(或图片标识) |
∟ dataId | String | 否 | 数据唯一标识 |
∟ details | Object[] | 否 | 命中的详细信息 |
∟ aestheticsRate | Number | 否 | 美观度分数,0-1,分数越高美观度越高,建议0.5分以上可认为美观度较好,0.3分以下可认为美观度较差,具体视业务场景而定 |
∟ sharpnessRate | Number | 否 | 清晰度分数,0-1,分数越高清晰度越高,建议0.5分以上可认为清晰度较好,0.3分以下可认为清晰度较差,具体视业务场景而定 |
∟ metaInfo | Object | 否 | 图片基本信息 |
∟ byteSize | Number | 否 | 图片大小,单位byte |
∟ format | String | 否 | 图片格式 |
∟ height | Number | 否 | 图片高度,单位像素 |
∟ width | Number | 否 | 图片宽度,单位像素 |
∟ boarderInfo | Object | 否 | 图片背景信息 |
∟ hit | Boolean | 否 | 图片是否包含边框(任一边包含边框均视为包含)ture:包含边框;false:不包含边框 |
∟ top | Boolean | 否 | 图片顶部是否包含边框,ture:包含边框;false:不包含边框 |
∟ right | Boolean | 否 | 图片右侧是否包含边框,ture:包含边框;false:不包含边框 |
∟ bottom | Boolean | 否 | 图片底部是否包含边框,ture:包含边框;false:不包含边框 |
∟ left | Boolean | 否 | 图片左侧是否包含边框,ture:包含边框;false:不包含边框 |
∟ backgroundInfo | Object | 否 | 图片背景信息 |
∟ pureBackground | boolean | 否 | 纯色背景检测,ture:背景纯色;false:背景复杂 |
∟ logo | Object | 否 | logo检测结果,logo检测支持对图片中包含的通识logo进行识别,检测结果返回需额外付费开启,如有需要请联系您的专属商务,未开通状态下此数组返回为空 |
∟ taskId | String | 是 | 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a" |
∟ name | String | 是 | 图片名称(或图片标识) |
∟ dataId | String | 否 | 数据唯一标识 |
∟ details | Object[] | 否 | 命中的详细信息 |
∟ logoName | String | 是 | logo名字,不可识别则为空 |
∟ x1 | Number | 否 | logo位置信息,对应logo矩形左上角横坐标相对坐标 |
∟ y1 | Number | 否 | logo位置信息,对应logo矩形左上角纵坐标相对坐标 |
∟ x2 | Number | 否 | logo位置信息,对应logo矩形右下角横坐标相对坐标 |
∟ y2 | Number | 否 | logo位置信息,对应logo矩形右下角纵坐标相对坐标 |
∟ rate | String | 否 | 置信度分数 ,置信度0-1,越接近1,置信度越高 |
∟ sizeRatio | String | 否 | logo占百分比大小 |
∟ discern | Object | 否 | 图片识别结果,识别检测支持对图片中物体进行识别,识别结果返回需额外付费开启,如有需要请联系您的专属商务,未开通状态下此数组返回为空 |
∟ taskId | String | 是 | 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a" |
∟ name | String | 是 | 图片名称(或图片标识) |
∟ dataId | String | 否 | 数据唯一标识 |
∟ details | Object[] | 否 | 命中的详细信息 |
∟ discernName | String | 是 | 识别物体名称 |
∟ rate | Number | 是 | 识别分数,0-1之间取值,1为置信度最高,0为置信度最低。 |
∟ type | Number | 是 | 图片识别类型,1 场景识别,2 地标识别,3 通用识别,4:乐谱识别,5:动漫识别,6:服饰识别,7:地图截图识别,8:聊天截屏识别,9:手机识别,10:举白纸识别,11:哺乳照识别,12:可爱卡通骷髅识别 |
∟userRisk | Object | 否 | 图片用户画像识别结果,用户画像识别返回需额外付费开启,如有需要请联系您的专属商务,未开通状态下此数组返回为空 |
∟ taskId | String | 是 | 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a" |
∟ dataId | String | 是 | 数据唯一标识 |
∟ name | String | 是 | 图片名称(或图片标识) |
∟ account | String | 是 | 账号信息 |
∟ details | Object[] | 否 | 命中的详细信息 |
∟ account | String | 是 | 账号信息 |
∟ acDetails | Object[] | 是 | 命中的详细信息 |
∟riskType | String | 否 | yin_liu_hei_chan(引流黑产),qi_zha_xian_yi(欺诈嫌疑),she_jiao_la_ren(社交拉人) |
∟riskLevel | Number | 否 | 账号等级,0:低风险,1:中风险,2:高风险 |
∟riskScore | String | 否 | 风险分值:0-1 |
∟ anticheat | Object | 否 | 图片反作弊检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | 检测任务ID,示例值:"fx6sxdcd89fvbvg4967b4787d78a" |
∟ dataId | String | 是 | 数据唯一标识 |
∟ details | Object[] | 否 | 命中的详细信息 |
∟ suggesiton | Number | 是 | 检测结果,0:通过,10:嫌疑,20:不通过 |
∟ hitInfos | Object[] | 是 | 命中信息 |
∟ hitType | Number | 是 | 反作弊命中类型,详见hitType返回码及含义表 |
∟ hitMsg | String | 是 | 反作弊命中详情,可定制返回值 |
响应体示例
{
"code": 200,
"msg": "ok",
"result": [
{
"antispam": {
"taskId": "cb047f822b444668ad90453fbd4d88f4",
"status": 2,
"suggestion": 1,
"suggestionLevel":2,
"censorType": 1,
"dataId": "dataId",
"name": "name",
"resultType": 1,
"censorTime": 1622036595467,
"frameSize": 1,
"labels": [
{
"label": 500,
"level": 1,
"rate": 0.99499786,
"subLabels": [
{
"hitStrategy":0,
"subLabel": 50003,
"rate": 1.0,
"details": {
"keywords": [
{
"word": "自定义敏感词",
"x1": 0.0473,
"y1": 0.0362,
"x2": 0.1964,
"y2": 0.1530
}
],
"libInfos": [
{
"entity": "自定义图片名单url",
"hitCount": 3,
"value": "可识别内容",
"group": "可识别内容分组"
}
],
"hitInfos": [
{
"value": "可识别内容",
"group": "可识别内容分组",
"x1": 0.0473,
"y1": 0.0362,
"x2": 0.1964,
"y2": 0.1530
}
],
"anticheat": {
"hitType": 1
}
}
}
]
},
{
"label": 300,
"level": 1,
"rate": 0.77849978,
"subLabels": [
{
"subLabel": 30003,
"rate": 1.0
},
{
"subLabel": 30002,
"rate": 0.99499786
}
]
},
{
"label": 400,
"level": 1,
"rate": 0.984296,
"subLabels": [
{
"subLabel": 40007,
"rate": 0.973296
},
{
"subLabel": 40003,
"rate": 0.984296
}
]
}
]
},
"ocr": {
"taskId": "cb047f822b444668ad90453fbd4d88f4",
"dataId": "dataId",
"name": "name",
"height": 730,
"width": 572,
"frameSize":1,
"details": [
{
"content": "唐新唐人电视台NEWTANGDYNASTYTELEVISIONRFA",
"lineContents": [
{
"lineContent": "唐",
"x1": 0.0473,
"y1": 0.0362,
"x2": 0.1964,
"y2": 0.1530,
"lang": "zh"
}
]
}
]
},
"face": {
"taskId": "cb047f822b444668ad90453fbd4d88f4",
"name": "0",
"dataId": "dataId",
"details": [
{
"faceNumber": 3,
"faceContents": [
{
"name": "艾力更·依明巴海",
"glasses":"normal",
"x1": 0.0473,
"y1": 0.0362,
"x2": 0.1964,
"y2": 0.1530,
"type": "normal",
"category": "normal",
"gender": "male",
"age": 59,
"sizeRatio": "1.74%"
}
]
}
]
},
"quality": {
"taskId": "cb047f822b444668ad90453fbd4d88f4",
"name": "name",
"dataId": "dataId",
"details": [
{
"aestheticsRate": 0.466,
"sharpnessRate": 0.511,
"metaInfo": {
"byteSize": 355357,
"height": 730,
"width": 572,
"format": "png"
},
"boarderInfo": {
"hit": false,
"top": false,
"right": false,
"bottom": false,
"left": false
},
"backgroundInfo": {
"pureBackground": false
}
}
]
},
"logo": {
"taskId": "cb047f822b444668ad90453fbd4d88f4",
"name": "name",
"dataId": "dataId",
"details": [
{
"logoName": "RFA",
"x1": 0.5611,
"y1": 0.7369,
"x2": 0.8444,
"y2": 0.9506,
"rate":0.9742,
"sizeRatio":"2.7%"
}
]
},
"discern": {
"taskId": "cb047f822b444668ad90453fbd4d88f4",
"name": "name",
"dataId": "dataId",
"details": [
{
"type": 1,
"discernName": "game",
"rate": 0.5611
}
]
},
"anticheat": {
"taskId": "fx6sxdcd89fvbvg4967b4787d78a",
"dataId": "dataId",
"details": [
{
"suggestion": 20,
"hitInfos": [
{
"hitType": 5,
"hitMsg": "无SDK数据"
}
]
}
]
},
"userRisk":{
"taskId":"hfy5g22yezojhvd8t8kb66qg00309r8q",
"name":"name",
"dataId":"dataId",
"account":"123456",
"details":[
{
"account":"123456",
"acDetails":[
{
"riskType":"qi_zha_xian_yi",
"riskLevel":1,
"riskScore":0.6
}
]
}
]
}
}
]
}
响应返回码
响应返回码见:响应返回码
接入示例代码
开发工具集(SDK)接入
为方便 JAVA 开发者调试和接入API,我们提供了配套的开发工具集(SDK),用于简化API接入流程。SDK中各接口调用方式基本相同,接入方式统一,并提供了一些接口调用过程中常见的异常处理方案。以下介绍了SDK的使用流程,以及使用SDK的简单示例。
- 准备工作
准备步骤详见通用步骤
- 使用方法
该接口的使用方法可参考SDK demo
API接入
如果您选择非SDK接入,使用API方式接入,请参考各开发语言汇总示例代码
该接口的使用方法具体示例如下: