异步检测

更新时间:
复制为 MD 格式

本文介绍了调用图片异步检测接口识别卡证票据分类OCR的方法。卡证票据分类OCR能够自动识别出图片包含哪种类型的卡证或票据,以及其中的文字信息,并以结构化的方式返回文字内容。如果您仅知道图片中包含卡证或票据,但是不知道卡证或票据的类型,推荐您使用该场景。

卡证票据分类OCR目前支持识别以下卡证或票据类型:身份证、驾驶证、行驶证、银行开户许可证、户口簿户主页、户口簿常住人口页、不动产证、房产证明、火车票、出租车票、定额发票、汽车购置发票

(图片异步检测)使用说明

业务接口:/green/image/asyncscan,表示图片异步检测。

您可以调用该接口创建图片异步检测任务。关于如何构造HTTP请求,请参见请求结构;您也可以直接选用已构造好的HTTP请求,更多信息,请参见SDK概览

  • 计费信息

    该接口为收费接口。关于计费方式,请参见内容安全产品定价

  • 检测超时

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

  • 返回结果

    异步检测任务不会实时返回检测结果,您需要通过callback或者轮询的方式获取检测结果。检测结果最长保留一小时。

    • callback获取检测结果:提交异步检测任务时,在请求参数中传入callback参数,用来自动接收检测结果,具体请参见(异步检测)请求参数

    • 轮询获取检测结果:提交异步检测任务时,无需传入callback参数;提交异步检测任务后,调用结果查询接口获取检测结果,具体请参见(图片异步检测结果查询)使用说明

  • 图片要求

    • 图片链接支持以下协议:HTTPHTTPS。

    • 图片支持以下格式:PNG、JPG、JPEG、BMP、GIF、WEBP。

    • 图片大小限制为20 MB以内(适用于同步和异步调用),高度或者宽度不能超过30,000像素(px),且图像总像素不超过2.5亿(px)

      说明

      其中,GIF格式的图片,图像总像素不超过4,194,304(px),高度或者宽度不能超过30,000像素(px)。

    • 图片下载时间限制为3秒内,如果下载时间超过3秒,返回下载超时。

    • 图片像素建议不低于256*256(px),像素过低可能会影响识别效果。

    • 图片检测接口的响应时间依赖图片的下载时间。请保证被检测图片所在的存储服务稳定可靠,建议您使用阿里云OSS存储或者CDN缓存等。

QPS限制

本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。

(异步检测)请求参数

名称

类型

是否必须

示例值

描述

bizType

String

default

该字段用于标识您的业务场景。您可以通过内容安全控制台创建业务场景(具体操作,请参见自定义机审标准)。

scenes

StringArray

["ocr-classify"]

指定检测场景,取值:ocr-classify

callback

String

http://www.aliyundoc.com/xx.json

检测结果回调通知您的URL,支持使用HTTPHTTPS协议的地址。该字段为空时,您必须定时轮询检测结果。

callback接口必须支持POST方法、UTF-8编码的传输数据,以及表单参数checksumcontent。内容安全按照以下规则和格式设置checksumcontent,调用您的callback接口返回检测结果。

  • checksum:字符串格式,由用户uid + seed + content拼成字符串,通过SHA256算法生成。用户UID即阿里云账号ID,可以在阿里云控制台查询。为防篡改,您可以在获取到推送结果时,按上述算法生成字符串,与checksum做一次校验。

    说明

    用户UID必须是阿里云账号的UID,而不是RAM用户的UID。

  • content:JSON字符串格式,请自行解析反转成JSON对象。关于content结果的示例,请参见查询检测结果的返回示例。

说明

您的服务端callback接口收到内容安全推送的结果后,如果返回的HTTP状态码为200,则表示接收成功,其他的HTTP状态码均视为接收失败。接收失败时,内容安全将最多重复推送16次检测结果,直到接收成功。重复推送16次后仍未接收成功,则不再推送,建议您检查callback接口的状态。

seed

String

aabbcc123

随机字符串,该值用于回调通知请求中的签名。

由英文字母、数字、下划线(_)组成,不超过64个字符。由您自定义,用于在接收到内容安全的回调通知时校验请求由阿里云内容安全服务发起。

说明

当使用callback时,该字段必须提供。

cryptType
String
SHA256
使用回调通知时(callback),设置对回调通知内容进行加密的算法。内容安全会将返回结果(由用户uid + seed + content拼接的字符串)按照您设置的加密算法加密后,再发送到您的回调通知地址。取值:
  • SHA256(默认):使用SHA256加密算法。
  • SM3:使用国密HMAC-SM3加密算法,返回十六进制的字符串,且字符串由小写字母和数字组成。

    例如,abc经国密SM3加密后返回66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0

tasks

JSONArray

指定检测对象,JSON数组中的每个元素是一个检测任务结构体。最多支持100个元素,即每次提交100条内容进行检测,支持100个元素的前提是需要将并发任务调整到100个以上。关于每个元素的具体结构描述请参见task

extras

JSONObject

{"md5":"b826f8c0463604703e8036bbfc7e3f6d"}

额外信息。无需传入该参数。

表 1. task

名称

类型

是否必须

示例值

描述

dataId

String

test_data_xxxx

数据ID。需要保证在一次请求中所有的ID不重复。

url

String

https://www.aliyundoc.com/test_image_xxxx.png

待检测图片的URL。

(异步检测)返回数据

名称

类型

示例值

描述

code

Integer

200

错误码,和HTTP状态码一致。

更多信息,请参见公共错误码

msg

String

OK

请求信息的响应消息。

dataId

String

test_data_xxxx

检测对象对应的数据ID。

说明

如果在检测请求参数中传入了dataId,则此处返回对应的dataId

taskId

String

img6B61Qz8ykX76Fz2OpjVnss-1s****

检测任务的ID。

url

String

https://www.aliyundoc.com/test_image_xxxx.png

检测对象的URL。

extras

JSONObject

{"md5":"b826f8c0463604703e8036bbfc7e3f6d"}

额外调用参数,对应检测请求参数中的extras

说明

该参数可能会被调整,目前请勿依赖该参数的返回值。

(异步检测)示例

请求示例

http(s)://[Endpoint]/green/image/asyncscan
&<公共请求参数>
{
    "scenes": [
        "ocr-classify"
    ],
    "tasks": [
        {
            "dataId": "test_data_xxxx",
            "url": "https://www.aliyundoc.com/test_image_xxxx.png"
        }
    ]
}

正常返回示例

{
    "code": 200,
    "msg": "OK",
    "requestId": "92AD868A-F5D2-4AEA-96D4-E1273B8E074C",
    "data": [
        {
            "code": 200,
            "msg": "OK",
            "dataId": "test_data_xxxx",
            "taskId": "img5A@k7a@B4q@6K@d9nfKgOs-1s****",
            "url": "https://www.aliyundoc.com/test_image_xxxx.png"
        }
    ]
}

(图片异步检测结果查询)使用说明

业务接口:/green/image/results,表示查询图片异步检测结果。

您可以调用该接口查询图片异步检测任务的结果。关于如何构造HTTP请求,请参见请求结构;您也可以直接选用已构造好的HTTP请求,更多信息,请参见SDK概览

  • 计费信息

    该接口不计费。

  • 查询超时

    建议您将查询间隔设置为30秒(即在提交异步检测任务30秒后查询结果),最长不能超出4个小时,否则结果将会丢失。

QPS限制

本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。

(结果查询)请求参数

名称

类型

是否必须

示例值

描述

body

JSONArray

["taskId1"]

要查询的检测任务的taskId列表。数组中的元素个数不超过100个。

您在提交检测任务后,可以从返回数据中获取检测任务的taskId

(结果查询)返回数据

名称

类型

示例值

描述

code

Integer

OK

错误码,和HTTP状态码一致。

更多信息,请参见公共错误码

msg

String

OK

请求信息的响应消息。

dataId

String

test_data_xxxx

检测对象对应的数据ID。

说明

如果在检测请求参数中传入了dataId,则此处返回对应的dataId

taskId

String

img6B61Qz8ykX76Fz2OpjVnss-1s$Kaw

检测任务的ID。

url

String

https://www.aliyundoc.com/test_image_xxxx.png

检测对象的URL。

extras

JSONObject

{"md5":"b826f8c0463604703e8036bbfc7e3f6d"}

额外调用参数,对应检测请求参数中的extras

说明

该参数可能会被调整,目前请勿依赖该参数的返回值。

results

JSONArray

返回结果。调用成功时(code=200),返回结果中包含一个或多个元素。每个元素是个结构体,具体结构描述请参见result

表 2. result

名称

类型

示例值

描述

scene

String

ocr

检测场景,取值:ocr

label

String

ocr

检测结果的分类。取值:

  • normal:图片中未识别出文字信息。

  • ocr:图片中包含文字信息。

suggestion

String

review

建议用户执行的操作,取值:

  • pass:无需关注返回结果。

  • review:关注识别出的文字信息。

rate

Float

99.91

OCR图文识别场景中,可以不用关注该返回值。

ocrCardInfo

Object

自动识别出来的卡证或票据OCR信息,包含身份证、驾驶证、行驶证、银行开户许可证、户口簿户主页、户口簿常住人口页、不动产证、房产证明、火车票、出租车票、定额发票、汽车购置发票。具体结构请参见ocrCardInfo

ocrCardInfo

  • 表 3. 身份证信息(idCardInfo)

    名称

    类型

    示例值

    描述

    name

    String

    张三

    姓名。

    nationality

    String

    民族。

    number

    String

    xxx

    身份证号。

    birth

    String

    2000-01-01

    出生日期。格式:yyyy-MM-dd。

    address

    String

    xxx

    住址。

    authority

    String

    xxx

    签发机构。

    endDate

    String

    2010-06-30

    有效期结束日期。格式:yyyy-MM-dd。

    说明

    该字段可能返回以下值:长期

  • 表 4. 驾驶证信息(driverLicenseFrontInfo)

    名称

    类型

    示例值

    描述

    name

    String

    张三

    姓名。

    number

    String

    123xxxxxxxxxxxxxxxx

    驾驶证号。

    birthDate

    String

    0301

    出生日期

    address

    String

    xxxxxxxx街道xx

    住址。

    nationality

    String

    中国

    国籍

    issueDate

    String

    20000103

    初次领证日期

    vehicleType

    String

    C1

    准驾车型。

    validStartDate

    String

    20000101

    有效期开始时间,格式:yyyy-MM-dd。

    validEndDate

    String

    20060101

    有效期截止时间,格式:yyyy-MM-dd。

  • 表 9. 行驶证正面信息(vehicleLicenseFrontInfo)

    名称

    类型

    示例值

    描述

    plateNum

    String

    xxxxxx

    车牌号。

    vehicleType

    String

    小型普通客车

    车辆类型。

    owner

    String

    XX

    所有者名字。

    useCharacter

    String

    非营运

    车辆使用性质。

    address

    String

    xxxxxxxx街道xx

    住址。

    model

    String

    东风日产牌ABCxxxxx

    车辆品牌。

    vin

    String

    ABCxxxxxxxx1234

    车辆识别代号。

    engineNum

    String

    12xxxxA

    发动机号码。

    registerDate

    String

    2022-01-01

    注册日期,格式:YYYY-MM-DD。

    issueDate

    String

    2022-01-01

    发证日期,格式:YYYY-MM-DD。

  • 表 14. 户口簿户主页信息

    名称

    类型

    示例值

    描述

    locationNumber

    String

    xxx

    地段号。

    issueDate

    String

    20220101

    签发日期。

    householdType

    String

    居民户口

    户别。

    houseHolder

    String

    XX

    户主姓名。

    address

    String

    广西xxx

    住址。

    community

    String

    xxx

    户主社区。

    householdNumber

    String

    xxx

    户号。

    undertaker

    String

    xxx

    承办人签章。

    type

    String

    household-head

    卡证的类型,取值固定为household-head,表示户口簿户主页。

  • 表 15. 户口簿常住人口页信息

    名称

    类型

    示例值

    描述

    occupation

    String

    粮农

    职业。

    migrationDate1

    String

    20220101

    何时由何地迁来本址。

    idNumber

    String

    5****************9

    身份证编号。

    education

    String

    初中

    文化程度。

    birthPlace

    String

    xxx

    出生地。

    servicePremises

    String

    xxx

    服务处所。

    householdNumber

    String

    xxx

    户号。

    hometown

    String

    四川成都

    籍贯。

    name

    String

    XX

    姓名。

    formerName

    String

    xxx

    曾用名。

    maritalStatus

    String

    未婚

    婚姻状况。

    nation

    String

    汉族

    民族。

    otherAddress

    String

    xxx

    本市其他住址。

    birthday

    String

    20200101

    出生日期。

    militaryService

    String

    xxx

    兵役状况。

    relationTo

    String

    户主

    与户主关系。

    religion

    String

    xxx

    宗教信仰。

    bloodType

    String

    B

    血型。

    registerDate

    String

    20230206

    登记日期。

    height

    String

    xxx

    身高。

    migrationDate2

    String

    xxxxxxxxxxx迁来

    何时何地迁来本市。

    undertaker

    String

    xxx

    承办人签章。

    type

    String

    household-resident

    卡证的类型,取值固定为household-resident,表示户口簿常住人口页。

  • 表 5. 房产证明信息

    名称

    类型

    描述

    usage

    String

    用途、房屋用途。

    rightType

    String

    权利类型。

    location

    String

    坐落地址。

    otherInfo

    String

    权利其他状况。

    rightNumber

    String

    证号。

    buildingUnitNumber

    String

    不动产单元号。

    rightProperty

    String

    权利性质。

    rightHolder

    String

    权利人。

    sharedInfo

    String

    共有情况。

    termLimit

    String

    使用期限、土地使用年限。

    landNumber

    String

    丘权号。

    area

    String

    面积。

    constructionArea

    String

    房屋建筑面积。

    rightProperty

    String

    土地权利性质、取得方式。

    rightType

    String

    房屋权利类型。

    area

    String

    建筑面积。

  • 表 6. 火车票信息
    名称类型示例值描述
    priceString0.0票价。
    ticketNumberStringA000001票号。
    departureTimeString2019010100:00开车时间。
    seatTypeString二等座座位类型。
    trainNumberStringG0000车次。
    departureString始发站出发站。
    departurePhonicsStringShifa出发站拼音。
    seatNumberString0101F座位号。
    destinationString终到站到达站。
    destinationPhonicsStringZhongdao到达站拼音。
    passengerInfoString1234567890****0000姓名旅客信息。
    typeStringtrain-ticket票据的类型,取值固定为train-ticket,表示火车票。
  • 表 7. 出租车票信息
    名称类型示例值描述
    actualCollectionString100实收金额。
    carNumberStringA•T****车号。
    dateString2008916日期。
    invoiceCodeString25000071****发票代码。
    invoiceNumbeString5485G0****发票号码。
    mileageString42.0km里程。
    amountString100金额。
    getOffTimeString16:58下车时间。
    boardingTimeString[K068016:50上车时间。
    totalAmountString100合计。
    typeStringtaxi-ticket票据的类型,取值固定为taxi-ticket,表示出租车票。
  • 表 5. 定额发票信息
    名称类型示例值描述
    amountInWordsString壹佰元大写金额。
    invoiceSerialString发票代码解析。
    amountInFiguresString100小写金额。
    invoiceNumberString0145****发票号码。
    invoiceCodeString15113159****发票代码。
    batchNumberString01批次号。
    yearString2015年份。
    taxBureauCodeString国税税务局代码。
    invoiceIndustryCodeStringNone发票行业代码。
    amountVersionString电脑版金额版。
    regionalismCodeString南充市行政区划代码。
    invoiceCategoryCodeString发票换票证发票类别代码。
    typeStringquota-invoice票据的类型,取值固定为quota-invoice,表示定额发票。
  • 表 6. 汽车购置发信息

    名称

    类型

    描述

    invoicingDate

    String

    开票日期。

    certificateNo

    String

    合格证号。

    phoneNo

    String

    销货单位电话。

    importNo

    String

    进口证明书号。

    seller

    String

    销货单位名称。

    taxDept

    String

    主管税务机关。

    taxCode

    String

    主管税务代码。

    bankName

    String

    销货单位开户银行。

    totalAmount

    String

    价税合计(小写)。

    vehicleType

    String

    车辆类型。

    invoiceNo

    String

    发票号码。

    engingNo

    String

    发动机号码。

    sellerAddr

    String

    销货单位地址。

    taxRate

    String

    增值税税率或征收率。

    vehicleNo

    String

    车辆识别代号、车架号码。

    serialExcludeTax

    String

    完税凭证号码。

    buyerCode

    String

    购买方身份证号码、组织机构代码。

    sellerAccount

    String

    销货单位账号。

    sellerTaxId

    String

    销货单位纳税人识别号。

    amountInWords

    String

    价税合计(大写)。

    invoiceCode

    String

    发票代码。

    taxDeptAndCode

    String

    主管税务机关及代码。

    origin

    String

    产地。

    priceExcludeTax

    String

    不含税价。

    buyer

    String

    购买方名称。

    tax

    String

    增值税税额。

    inspectionNo

    String

    商检单号。

    buyerTaxId

    String

    购买方纳税人识别号。

    tonnage

    String

    吨位。

    capacity

    String

    限乘人数。

    model

    String

    厂牌型号。

(结果查询)示例

请求示例

http(s)://[Endpoint]/green/image/results
&<公共请求参数>
[
    "img5A@k7a@B4q@6K@d9nfKgOs-1s****"
]

正常返回示例

说明

以身份证、驾驶证、行驶证、房产证明和汽车购置发票为例。其他类型的卡证或票据结果示例,请参见结构化卡证OCR示例结构化票据OCR示例

  • 身份证信息

    {
        "msg": "OK",
        "code": 200,
        "data": [
            {
                "msg": "OK",
                "code": 200,
                "dataId": "test_data_xxxx",
                "extras": {
                    "md5": "b826f8c0463604703e8036bbfc7e3f6d"
                },
                "results": [
                    {
                        "rate": 99.91,
                        "suggestion": "review",
                        "label": "ocr",
                        "ocrCardInfo": {
                            "number": "***",
                            "address": "***",
                            "nationality": "*",
                            "name": "***",
                            "birth": "1989928日",
                            "type": "id-card"
                        },
                        "scene": "ocr-classify"
                    }
                ],
                "taskId": "img5A@k7a@B4q@6K@d9nfKgOs-1s****",
                "url": "https://www.aliyundoc.com/test_image_xxxx.png"
            }
        ],
        "requestId": "63134F39-EA65-471C-A571-35F72BCE9C79"
    }
  • 驾驶证信息

    {
        "msg": "OK",
        "code": 200,
        "data": [
            {
                "msg": "OK",
                "code": 200,
                "dataId": "test_data_xxxx",
                "extras": {
                    "md5": "4c79bf6a1c831b12f88235b6dcfb59d5"
                },
                "results": [
                    {
                        "rate": 99.91,
                        "suggestion": "review",
                        "label": "ocr",
                        "ocrCardInfo": {
                            "number": "",
                            "address": "xxxx市路13号",
                            "nationality": "中国",
                            "name": "",
                            "validStartDate": "2013-02-02",
                            "type": "driver-license",
                            "issueDate": "1994-02-02",
                            "validEndDate": "2013-02-022023-02-02",
                            "birthDate": "出生月期",
                            "issueUnit": "XXxx市公安局交视日期通警察支队透氧车型",
                            "vehicleType": "A1A2"
                        },
                        "scene": "ocr-classify"
                    }
                ],
                "taskId": "img5A@k7a@B4q@6K@d9nfKgOs-1s****",
                "url": "https://www.aliyundoc.com/test_image_xxxx.png"
            }
        ],
        "requestId": "9BCCD309-7166-468E-9F4C-629D032A50EE"
    }
  • 行驶证信息

    {
        "msg": "OK",
        "code": 200,
        "data": [
            {
                "msg": "OK",
                "code": 200,
                "dataId": "test_data_xxxx",
                "extras": {
                    "md5": "ac094bb290155692a3c340d15e905fcf"
                },
                "results": [
                    {
                        "rate": 99.91,
                        "suggestion": "review",
                        "label": "ocr",
                        "ocrCardInfo": {
                            "owner": "***",
                            "address": "xxxxxx145号",
                            "useCharacter": "非营运",
                            "engineNum": "***",
                            "vin": "***",
                            "model": "别克牌SGM716xxxx",
                            "type": "vehicle-license",
                            "issueDate": "2012-01-06",
                            "plateNum": "京",
                            "vehicleType": "小型轿车",
                            "registerDate": "2008-10-16"
                        },
                        "scene": "ocr-classify"
                    }
                ],
                "taskId": "img5A@k7a@B4q@6K@d9nfKgOs-1s****",
                "url": "https://www.aliyundoc.com/test_image_xxxx.png"
            }
        ],
        "requestId": "CFAF124B-8D0A-46A2-8730-E20EE26B5F8D"
    }
  • 房产证明信息

    {
        "msg": "OK",
        "code": 200,
        "data": [
            {
                "msg": "OK",
                "code": 200,
                "dataId": "test_data_xxxx",
                "extras": {
                    "md5": "de8f8ad850c2f74b3b96934f43de8bdb"
                },
                "results": [
                    {
                        "rate": 99.91,
                        "suggestion": "review",
                        "label": "ocr",
                        "ocrCardInfo": {
                            "rightHolder": "",
                            "area": "",
                            "termLimit": "年月日",
                            "sharedInfo": "是",
                            "usage": "年月日",
                            "location": "在_省_市_(镇)",
                            "rightProperty": "平方半上述房屋的所有权人是",
                            "type": "estate-cert",
                            "rightType": "房屋产权证明范本"
                        },
                        "scene": "ocr-classify"
                    }
                ],
                "taskId": "img5A@k7a@B4q@6K@d9nfKgOs-1s****",
                "url": "https://www.aliyundoc.com/test_image_xxxx.png"
            }
        ],
        "requestId": "DEECF4C5-316E-468A-831D-507E763A9B02"
    }
  • 汽车购置发票信息

    {
        "msg": "OK",
        "code": 200,
        "data": [
            {
                "msg": "OK",
                "code": 200,
                "dataId": "test_data_xxxx",
                "extras": {
                    "md5": "bc7f974425efe6732a84984ac3e24fc7"
                },
                "results": [
                    {
                        "rate": 99.91,
                        "suggestion": "review",
                        "label": "ocr",
                        "ocrCardInfo": {
                            "seller": "xx服务有限公司",
                            "amountInWords": "69900",
                            "priceExcludeTax": "59743.59",
                            "taxDept": "xxxx区国家税务局第二税务分局",
                            "origin": "安徽",
                            "inspectionNo": "",
                            "bankName": "建行xx市分行",
                            "type": "car-invoice",
                            "sellerAddr": "xxxx大道",
                            "phoneNo": "028-266**",
                            "buyerTaxId": "51021219821**",
                            "capacity": "5",
                            "invoicingDate": "2014-07-29",
                            "taxDeptAndCode": "xxxx区国家税务局第二税务分局1512002xxxx",
                            "importNo": "",
                            "serialExcludeTax": "¥59743.59小写",
                            "sellerAccount": "5100168**",
                            "sellerTaxId": "5120027**",
                            "tonnage": "",
                            "model": "**牌SQR716**",
                            "invoiceNo": "0092xxxx",
                            "vehicleType": "轿车",
                            "engineNo": "AAEE0xxxx",
                            "tax": "10156.41",
                            "taxCode": "***",
                            "certificateNo": "***",
                            "invoiceCode": "**",
                            "buyerCode": "***",
                            "buyer": "***",
                            "totalAmount": "69900.00",
                            "taxRate": "17%",
                            "vehicleNo": "***"
                        },
                        "scene": "ocr-classify"
                    }
                ],
                "taskId": "img5A@k7a@B4q@6K@d9nfKgOs-1s****",
                "url": "https://www.aliyundoc.com/test_image_xxxx.png"
            }
        ],
        "requestId": "D4E2ADEE-EFEC-42C8-8399-5BBEA79F9524"
    }