本文提供了调用图片异步检测任务进行人脸1:1比对的具体接口和参数说明,旨在帮助您编写程序构建HTTP调用请求。

  • 关于如何构造HTTP请求,请参见请求结构
  • 您也可以直接选用已构造好的HTTP请求,具体请参见SDK参考

提交图片异步检测任务

描述

业务接口/green/image/asyncscan

提交图片异步检测任务,进行人脸1:1比对,检测两张人脸照片的相似度。

识别结果需要通过调用查询人脸比对异步检测结果接口进行查询或者通过callback的方式进行接收,检测结果最多保留1个小时。
说明 该接口为计费接口。对于人脸比对功能,传入两张图片进行一次比对进行一次计费(而不是两次),具体参见计费说明。

关于检测时长

同步检测允许的最长检测时间是6秒,如果检测在该时间限制内没有完成,系统会强制返回超时错误码。如果您对实时性要求不高,可以选择异步检测;其它情况下,请选择同步检测,同步检测接口的调用相对简单些。对于同步检测接口的调用,建议您将超时时间设置为6秒。

关于图片的限制
  • 图片链接支持以下协议:HTTP和HTTPS。
  • 图片支持以下格式:PNG、JPG、JPEG、BMP、GIF、WEBP。
  • 图片大小限制为10MB以内(适用于同步和异步调用)。如您有特殊需求(大图片),可以提工单进行调整。
  • 图片下载时间限制为3s内,如果下载时间超过3s,返回下载超时。
  • 图片像素建议不低于256*256,像素过低可能会影响识别效果。
  • 图片检测接口响应时间依赖图片的下载时间。请保证被检测图片所在的存储服务稳定可靠,建议您使用阿里云OSS存储或者CDN缓存等。

请求参数

关于在请求中必须包含的公共请求参数,请参见公共参数

请求body是一个JSON对象,字段说明如下。
名称 类型 是否必需 描述
bizType 字符串 该字段用于标识业务场景。针对不同的业务场景,您可以配置不同的内容审核策略,以满足不同场景下不同的审核标准或算法策略的需求。您可以通过云盾内容安全控制台创建业务场景(bizType),或者通过工单联系我们帮助您创建业务场景。
scenes 字符串数组 指定图片检测的应用场景,取值:sface-1
callback 字符串 异步检测结果回调通知您的URL,支持HTTP/HTTPS。该字段为空时,您必须定时检索检测结果。
seed 字符串 随机字符串,该值用于回调通知请求中的签名。当使用callback时,该字段必须提供。
tasks JSON数组 检测对象,JSON数组中的每个元素是一个图片检测任务结构体(image表)。每个元素的具体结构描述见task
表 1. task
名称 类型 是否必需 描述
dataId 字符串 调用者需要保证,在一次请求中,所有的dataId不重复。
url 字符串 传入待比较图片中的第一张图片的URL。
extras Map 传入待比较图片中的第二张图片。格式为{"faceUrl":"http://xxx.jpg"}。其中,faceUrl为第二张图片的URL。

结果回调通知参数(callback、seed)

使用说明

如果您在请求参数中指定了回调通知参数callback、被回调callback值,即一个http(s)协议接口的URL,则需要支持POST方法,传输数据编码采用utf-8,并且支持两个表单参数checksumcontent。系统将按以下描述的生成规则和格式设置checksum和content的值,调用您的callback接口返回检测内容。

您服务端接收到我们推送的结果后,返回的HTTP状态码为200时,表示推送成功,其他的HTTP状态码均视为您接收失败,我们将最多重复推送16次。

回调结果参数的生成规则
名称 类型 描述
checksum String 用户uid + seed + content拼成字符串,通过SHA256算法生产。用户UID即账号ID,您可在阿里云控制台上查询。为防篡改,您可以在获取到推送结果时,按此算法生成字符串,与checksum做一次校验。
content String JSON字符串格式,请自行解析反转成JSON对象。content结果格式参见下文。
content结果格式
{
      "code":200,
      "msg":"OK",
      "dataId":"imageId xxx",
      "taskId":"taskId xxx",
      "results":[
        {
          "label":"sface-1",
          "rate":99.2,
          "scene":"sface-1",
          "suggestion":"review"
        }
      ]
}

返回参数

返回结果说明,参见返回结果

返回body中的data字段是JSON数组,每一个元素包含如下字段。
名称 类型 是否必需 描述
code 整型 错误码,和HTTP的status code一致。
msg 字符串 错误描述信息。
dataId 字符串 对应请求中的dataId
taskId 字符串 该检测任务的ID。
url 字符串 对应请求中的URL,即第一张图片的URL。

示例

请求示例
{
  "scenes":["sface-1"],
  "tasks":[
    {
      "url":"http://v2img.ifensi.com/2015/0826/2015082612403321.jpg",
      "dataId":"e6b080a8-a91a-11e8-bac4-6c96cfde2af9",
      "extras":{
          "faceUrl":"http://img5.iqilu.com/c/u/2013/0313/1363136852136.jpg"
        },
      "time":949640
    }
  ]
}
返回示例
{
  "code": 200, 
  "msg": "OK", 
  "requestId": "95AD868A-F5D2-4AEA-96D4-E0273B8E074C",
  "data": [
    {
      "code": 200, 
      "msg": "OK", 
      "dataId": "e6b080a8-a91a-11e8-bac4-6c96cfde2af9", 
      "taskId": "fdd25f95-4892-4d6b-aca9-7939bc6e9baa-1486198766695",
      "url": "http://v2img.ifensi.com/2015/0826/2015082612403321.jpg"
    }
  ]
}

查询异步检测结果

描述

业务接口/green/image/results

查询人脸比对异步检测结果。建议您将查询间隔设置为30秒,最长不能超出1个小时,否则结果将会丢失。
说明 该接口为免费接口。

请求参数

关于在请求中必须包含的公共请求参数,请参见公共参数

请求body是一个JSON数组,字段说明如下。
名称 类型 是否必需 描述
body JSON数组 要查询的taskId列表。最大长度不超过1,000。

返回参数

返回结果说明,参见返回结果

返回body中的Data字段是JSON数组,每一个元素包含如下字段。
名称 类型 是否必需 描述
code 整型 错误码,和HTTP的status code一致。
msg 字符串 错误描述信息。
dataId 字符串 对应的请求中的dataId
taskId 字符串 该检测任务的ID。
url 字符串 对应的请求中的URL。
results 数组 返回结果。调用成功时(code=200),返回结果中包含一个或多个元素。每个元素是个结构体,具体结构描述见result
extras Map 额外调用参数。
说明 该参数可能会被调整,目前请勿依赖该参数的返回值。
表 2. result
名称 类型 是否必需 描述
scene 字符串 检测场景,取值:sface-1
label 字符串 检测结果的分类,取值:
  • normal:第二张图片和第一张图片的相似度低
  • sface-1:第二张图片和第一张图片的相似度高
suggestion 字符串 建议用户执行的操作,取值范围:
  • pass:图片相似度低,无需进行其余操作
  • review:图片相似度高,建议执行进一步操作
rate 浮点数 结果为该分类的概率,取值范围为[0.00-100.00]。值越高,表示越有可能属于该分类。

示例

请求示例
["fdd25f95-4892-4d6b-aca9-7939bc6e9baa-1486198766695"]
返回示例
{
  "code":200,
  "msg":"OK",
  "requestId":"9EEF894F-A933-4830-97B1-EC1A9630A9D6"
  "data":[
    {
      "code":200,
      "dataId":"e6b080a8-a91a-11e8-bac4-6c96cfde2af9",
      "taskId":"img2hsbmQeA4CU7l78$s8q5mW-1pnn7Z",
      "url":"http://v2img.ifensi.com/2015/0826/2015082612403321.jpg"
      "extras":{}
      "msg":"OK",
      "results"
        {
          "label"sface-1",
          "rate":97.0,
          "scene:"sface-1",
          "suggestion":"review"
        }
      ]
    }
  ]
}