图片异步检测获取结果

2021.04.13 13:50:13

    图片异步检测离线接口获取检测结果

    接口地址

    http://as.dun.163yun.com/v4/image/asyncResult

    接口描述

    通过taskid查询图片异步检测结果,建议您将查询间隔设置为30秒(即在提交异步检测任务30秒后查询结果),查询范围不超出4个小时,否则结果将会丢失。只支持查询机器检测结果,如有人工审核请到图片离线接口获取人工质检结果。

    请求参数

    公共参数已省略,详细见 请求公共参数

    请求参数说明

    参数名称 类型 描述
    version String 接口版本v4
    taskIds String 单次支持最多查询1000条,用逗号分隔

    响应结果

    参数名称 类型 描述
    code Number 接口调用状态,200:正常,其他值:调用出错,返回码见 响应返回码
    msg String 结果说明,如果接口调用出错,那么返回错误描述,成功返回 ok
    antispam 数组 异步检测返回结果与在线检返回结构一致,具体结构请参考在线检测antispam数组

    响应示例

    请求示例

    {
       "signature":"30d57ebc7cd95ecce981879c9ca820a2,
       "businessId":"业务id",
       "secretId":"产品密钥信息",
       "nonce":"2343567",
       "timestamp":"1603854848319,
       "version":"v4",
       "taskIds":"9c92b16325a2467e93f10f616f2a7e56,5eff1e33a9dc454c80f26f94d4717bca"
    }
     
    

    输出结果:

    注:分类信息,100:色情,110:性感,200:广告,210:二维码,300:暴恐,400:违禁,500:涉政,800:恶心,900:其他,1100:涉价值观

    {
        "code":200,
        "msg":"ok",
        "antispam":[
            {
                "censorType":0,
                "name":"test",
                "action":2,
                "taskId":"9c92b16325a2467e93f10f616f2a7e56",
                "labels":[
                    {
                        "subLabels":[
                            {
                                "subLabel":11007,
                                "rate":0.9980344,
                                "details":{
                                    "hitInfos":[
                                        "男性露点赤膊"
                                    ],
                                    "imageTagInfos":[
                                        {
                                            "tagGroup":"性感低俗",
                                            "tagName":"男性露点赤膊"
                                        }
                                    ]
                                }
                            }
                        ],
                        "level":2,
                        "rate":0.9467765,
                        "label":110
                    },
                    {
                        "subLabels":[
    
                        ],
                        "level":0,
                        "rate":0.9414334,
                        "label":500
                    },
                    {
                        "subLabels":[
    
                        ],
                        "level":0,
                        "rate":1,
                        "label":300
                    },
                    {
                        "subLabels":[
    
                        ],
                        "level":0,
                        "rate":0.9469082,
                        "label":100
                    },
                    {
                        "subLabels":[
    
                        ],
                        "level":0,
                        "rate":1,
                        "label":400
                    },
                    {
                        "subLabels":[
    
                        ],
                        "level":0,
                        "rate":1,
                        "label":200
                    },
                    {
                        "subLabels":[
    
                        ],
                        "level":0,
                        "rate":1,
                        "label":210
                    },
                    {
                        "subLabels":[
    
                        ],
                        "level":0,
                        "rate":1,
                        "label":900
                    }
                ],
                "status":0
            },
            {
                "censorType":0,
                "name":"test",
                "action":0,
                "taskId":"5eff1e33a9dc454c80f26f94d4717bca",
                "labels":[
                    {
                        "subLabels":[
    
                        ],
                        "level":0,
                        "rate":0.9716758,
                        "label":500
                    },
                    {
                        "subLabels":[
    
                        ],
                        "level":0,
                        "rate":1,
                        "label":300
                    },
                    {
                        "subLabels":[
    
                        ],
                        "level":0,
                        "rate":0.9999276,
                        "label":100
                    },
                    {
                        "subLabels":[
    
                        ],
                        "level":0,
                        "rate":1,
                        "label":400
                    },
                    {
                        "subLabels":[
    
                        ],
                        "level":0,
                        "rate":0.9997206,
                        "label":110
                    },
                    {
                        "subLabels":[
    
                        ],
                        "level":0,
                        "rate":1,
                        "label":200
                    },
                    {
                        "subLabels":[
    
                        ],
                        "level":0,
                        "rate":1,
                        "label":210
                    },
                    {
                        "subLabels":[
    
                        ],
                        "level":0,
                        "rate":1,
                        "label":900
                    }
                ],
                "status":0
            }
        ],
        "ocr":[
            {
                "name":"test",
                "width":360,
                "details":[
    
                ],
                "taskId":"9c92b16325a2467e93f10f616f2a7e56",
                "height":640
            },
            {
                "name":"test",
                "width":597,
                "details":[
    
                ],
                "taskId":"5eff1e33a9dc454c80f26f94d4717bca",
                "height":398
            }
        ],
        "face":[
            {
                "name":"test",
                "details":[
    
                ],
                "taskId":"9c92b16325a2467e93f10f616f2a7e56"
            },
            {
                "name":"test",
                "details":[
    
                ],
                "taskId":"5eff1e33a9dc454c80f26f94d4717bca"
            }
        ],
        "quality":[
            {
                "name":"test",
                "details":[
                    {
                        "metaInfo":{
                            "byteSize":91573,
                            "format":"jpg",
                            "width":360,
                            "height":640
                        },
                        "aestheticsRate":0.53,
                        "boarderInfo":{
                            "hit":false,
                            "top":false,
                            "left":false,
                            "bottom":false,
                            "right":false
                        },
                        "backgroundInfo":{
                            "pureBackground":true
                        }
                    }
                ],
                "taskId":"9c92b16325a2467e93f10f616f2a7e56"
            },
            {
                "name":"test",
                "details":[
                    {
                        "metaInfo":{
                            "byteSize":61973,
                            "format":"jpg",
                            "width":597,
                            "height":398
                        },
                        "aestheticsRate":0.47,
                        "boarderInfo":{
                            "hit":false,
                            "top":false,
                            "left":false,
                            "bottom":false,
                            "right":false
                        },
                        "backgroundInfo":{
                            "pureBackground":false
                        }
                    }
                ],
                "taskId":"5eff1e33a9dc454c80f26f94d4717bca"
            }
        ],
        "logo":[
            {
                "name":"test",
                "details":[
    
                ],
                "taskId":"9c92b16325a2467e93f10f616f2a7e56"
            },
            {
                "name":"test",
                "details":[
    
                ],
                "taskId":"5eff1e33a9dc454c80f26f94d4717bca"
            }
        ],
        "scene":[
            {
                "name":"test",
                "details":[
    
                ],
                "taskId":"9c92b16325a2467e93f10f616f2a7e56"
            },
            {
                "name":"test",
                "details":[
    
                ],
                "taskId":"5eff1e33a9dc454c80f26f94d4717bca"
            }
        ]
    }
    

    图片异步检测回调方式获取

    当图片异步检测完成,即触发回调,将检测结果回调给客户设置的回调地址callbackUrl。

    回调接入说明

    接入回调方式很简单,只需要在调用在线检测接口请求参数中指定了回调通知参数callbackUrl(即一个http(s)协议接口的URL)。主动推送接口需要支持http协议,支持POST方法,传输数据编码采用utf-8。

    业务类型 回调参数名称 类型 最大长度 描述
    图片 callbackUrl String 256 图片在线检测参数中添加callbackUrl字段

    回调状态

    您服务端接收到我们回调的结果后,返回的HTTP状态码为200时,表示推送成功,其他的HTTP状态码均视为您接收失败,我们将每隔10分钟推送一次,如果一直失败,持续一天后不再推送;我们主动推送数据接口超时时间设置为2s,为了保证顺利接收数据,客户需保证接收接口性能稳定并且保证幂等性。

    请求公共参数

    | 参数名称 | 类型 | 是否必传 | 描述 | |----------|------|------|------|-----| | secretId | String | Y | 产品秘钥 id ,由易盾反垃圾云服务分配,产品标识 | | businessId | String | Y | 业务id ,由易盾反垃圾云服务分配,业务标识 | | signature | String | Y | 请求签名,用来验证此次请求的合法性,具体算法见 接口鉴权 | | callbackData | String | Y | 主动推送推送数据,格式为json字符串 |

    secretId,businessId,signature参数用来给数据接收接口做签名鉴权用

    接口鉴权

    回调结果可以通过业务开通时易盾分配的密钥信息字段进行接口鉴权,鉴权粒度是否要精确到业务级别,用户可以根据需要自行决定

    /**
     * 通过HttpServletRequest做签名验证
     * 
     * @param request
     * @return
     */
    public static boolean verifySignature(HttpServletRequest request) {
        String secretId = request.getParameter("secretId");
        String businessId = request.getParameter("businessId");
        String signature = request.getParameter("signature");
        if (StringUtils.isEmpty(secretId) || StringUtils.isEmpty(signature)) {
            // 签名参数为空,直接返回失败
            return false;
        }
        Map<String, String> params = Maps.newHashMap();
        for (String paramName : request.getParameterMap().keySet()) {
            if (!"signature".equals(paramName)) {
                params.put(paramName, request.getParameter(paramName));
            }
        }
        // SECRETKEY:产品私有密钥 SECRETID:产品密钥ID BUSINESSID:业务ID,开通服务时,易盾会提供相关密钥信息
        String serverSignature = getSignature(SECRETKEY, params);
        return signature.equals(serverSignature) && SECRETID.equals(secretId) && BUSINESSID.equals(businessId);
    }
    
    /**
    * 生成签名信息
    * @param secretKey 产品私钥
    * @param params 接口请求参数名和参数值map,不包括signature参数名
    * @return
    * @throws UnsupportedEncodingException
    */
    public static String genSignature(String secretKey, Map<String, String> params) throws UnsupportedEncodingException {
        // 1. 参数名按照ASCII码表升序排序
        String[] keys = params.keySet().toArray(new String[0]);
        Arrays.sort(keys);
    
        // 2. 按照排序拼接参数名与参数值
        StringBuffer paramBuffer = new StringBuffer();
        for (String key : keys) {
            paramBuffer.append(key).append(params.get(key) == null ? "" : params.get(key));
        }
        // 3. 将secretKey拼接到最后
        paramBuffer.append(secretKey);
    
        // 4. MD5是128位长度的摘要算法,用16进制表示,一个十六进制的字符能表示4个位,所以签名后的字符串长度固定为32个十六进制字符。
        return DigestUtils.md5Hex(paramBuffer.toString().getBytes("UTF-8"));
    }
    

    图片回调数据结构

    callbackData为Json字符串,数据结构如下:

    {
        "antispam":{
            "taskId":"d6ee044528994919b0b3a5a79292f8df",
            "status":0,
            "action":2,
            "censorType":1,
            "name":"1234",
            "labels":[
                {
                    "label":500,
                    "level":2,
                    "rate":1,
                    "subLabels":[
                        {
                            "subLabel":50003,
                            "rate":1,
                            "details":{
                                "hitInfos":[
                                    "习近平"
                                ],
                                "hitLocationInfos":[
                                    {
                                        "hitInfo":"习近平",
                                        "x1":0.4133789,
                                        "y1":0.18320313,
                                        "x2":0.5089844,
                                        "y2":0.37441406
                                    }
                                ]
                            }
                        }
                    ]
                },
                {
                    "label":100,
                    "level":2,
                    "rate":1,
                    "subLabels":[
                        {
                            "subLabel":10000,
                            "rate":1
                        }
                    ]
                },
                {
                    "label":200,
                    "level":1,
                    "rate":1,
                    "subLabels":[
                        {
                            "subLabel":20001,
                            "rate":1
                        }
                    ]
                },
                {
                    "label":300,
                    "level":0,
                    "rate":1,
                    "subLabels":[
    
                    ]
                },
                {
                    "label":400,
                    "level":0,
                    "rate":1,
                    "subLabels":[
    
                    ]
                },
                {
                    "label":110,
                    "level":0,
                    "rate":0.99967885,
                    "subLabels":[
    
                    ]
                },
                {
                    "label":800,
                    "level":0,
                    "rate":0.99833876,
                    "subLabels":[
    
                    ]
                },
                {
                    "label":260,
                    "level":0,
                    "rate":1,
                    "subLabels":[
    
                    ]
                },
                {
                    "label":210,
                    "level":0,
                    "rate":1,
                    "subLabels":[
    
                    ]
                },
                {
                    "label":1100,
                    "level":0,
                    "rate":1,
                    "subLabels":[
    
                    ]
                }
            ]
        },
        "ocr":{
            "taskId":"d6ee044528994919b0b3a5a79292f8df",
            "name":"1234",
            "height":720,
            "width":1440,
            "details":[
                {
                    "content":"CCTV1直播绘合",
                    "background":"complex",
                    "lineContents":[
                        {
                            "lineContent":"CCTV1",
                            "polygon":[
                                0.13751561641693116,
                                0.0978124976158142,
                                0.23904688358306886,
                                0.0978124976158142,
                                0.23904688358306886,
                                0.1615625023841858,
                                0.13751561641693116,
                                0.1615625023841858
                            ],
                            "lang":"zh"
                        },
                        {
                            "lineContent":"直播",
                            "polygon":[
                                0.7670937538146972,
                                0.08812500238418579,
                                0.8704062461853027,
                                0.08812500238418579,
                                0.8704062461853027,
                                0.15562499761581422,
                                0.7670937538146972,
                                0.15562499761581422
                            ],
                            "lang":"zh"
                        },
                        {
                            "lineContent":"绘合",
                            "polygon":[
                                0.14474029541015626,
                                0.15250444412231445,
                                0.2521347522735596,
                                0.15250444412231445,
                                0.2521347522735596,
                                0.21624560356140138,
                                0.14474029541015626,
                                0.21624560356140138
                            ],
                            "lang":"zh"
                        }
                    ]
                }
            ]
        },
        "face":{
            "taskId":"d6ee044528994919b0b3a5a79292f8df",
            "name":"1234",
            "details":[
                {
                    "faceNumber":1,
                    "faceContents":[
                        {
                            "name":"习近平",
                            "x1":0.4133789,
                            "y1":0.18320313,
                            "x2":0.5089844,
                            "y2":0.37441406,
                            "type":"normal",
                            "category":"normal",
                            "gender":"male",
                            "age":46
                        }
                    ]
                }
            ]
        },
        "quality":{
            "taskId":"d6ee044528994919b0b3a5a79292f8df",
            "name":"1234",
            "details":[
                {
                    "aestheticsRate":0.4031,
                    "sharpnessRate":0.2098,
                    "metaInfo":{
                        "byteSize":33204,
                        "height":720,
                        "width":1440,
                        "format":"jpg"
                    },
                    "boarderInfo":{
                        "hit":false,
                        "top":false,
                        "right":false,
                        "bottom":false,
                        "left":false
                    },
                    "backgroundInfo":{
                        "pureBackground":false
                    }
                }
            ]
        },
        "logo":{
            "taskId":"d6ee044528994919b0b3a5a79292f8df",
            "name":"1234",
            "details":[
    
            ]
        },
        "scene":{
            "taskId":"d6ee044528994919b0b3a5a79292f8df",
            "name":"1234",
            "details":[
    
            ]
        }
    }
    
    在线咨询 电话咨询:95163223 免费试用