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

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

图片异步检测接口说明

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

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

  • 计费信息

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

  • 检测超时

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

  • 返回结果

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

    • callback获取检测结果:提交异步检测任务时,在请求参数中传入callback参数,用来自动接收检测结果,具体请参见(异步检测)请求参数
    • 轮询获取检测结果:提交异步检测任务时,无需传入callback参数;提交异步检测任务后,调用结果查询接口获取检测结果,具体请参见图片异步检测结果查询接口说明
  • 图片要求
    • 图片链接支持以下协议:HTTP和HTTPS。
    • 图片支持以下格式:PNG、JPG、JPEG、BMP、GIF、WEBP。
    • 图片大小限制为10 MB以内(适用于同步和异步调用)。如您有特殊需求(大图片),可以提交工单进行调整。
    • 图片下载时间限制为3秒内,如果下载时间超过3秒,返回下载超时。
    • 图片像素建议不低于256*256,像素过低可能会影响识别效果。
    • 图片检测接口响应时间依赖图片的下载时间。请保证被检测图片所在的存储服务稳定可靠,建议您使用阿里云OSS存储或者CDN缓存等。

(异步检测)请求参数

名称 类型 是否必须 描述
bizType 字符串 该字段用于标识您的业务场景。您可以通过内容安全控制台创建业务场景(具体操作请参见自定义机审标准),或者提交工单联系我们帮助您创建业务场景。
scenes 字符串数组 指定检测场景,取值:ocr-classify
callback 字符串 异步检测结果回调通知您的URL,支持使用HTTP和HTTPS协议的地址。该字段为空时,您必须定时轮询检测结果。
callback接口必须支持POST方法、UTF-8编码的传输数据,以及表单参数checksumcontent。内容安全按照以下规则和格式设置checksumcontent,调用您的callback接口返回检测结果。
  • checksum:字符串格式,由用户uid + seed + content拼成字符串,通过SHA256算法生成。用户UID即阿里云账号ID,可以在阿里云控制台查询。为防篡改,您可以在获取到推送结果时,按上述算法生成字符串,与checksum做一次校验。
    说明 用户UID必须是阿里云主账号UID,而非子账号UID。
  • content:JSON字符串格式,请自行解析反转成JSON对象。content结果的示例请参见查询异步检测结果的返回示例。
说明 您的服务端callback接口收到内容安全推送的结果后,如果返回的HTTP状态码为200,则表示接收成功,其他的HTTP状态码均视为接收失败。接收失败时,内容安全将最多重复推送16次检测结果,直到接收成功。重复推送16次后仍未接收成功,则不再推送,建议您检查callback接口的状态。
seed 字符串 随机字符串,该值用于回调通知请求中的签名。当使用callback时,该字段必须提供。
tasks JSON数组 指定检测对象,JSON数组中的每个元素是一个OCR图文检测任务结构体。最多支持10个元素,即对10张图片进行识别。每个元素的具体结构描述请参见task
extras JSON结构体 额外信息。无需传入该参数。
表 1. task
名称 类型 是否必须 描述
dataId 字符串 数据ID。需要保证在一次请求中所有的ID不重复。
url 字符串 待检测图片的URL。

(异步检测)返回数据

名称 类型 描述
code 整型 错误码,和HTTP状态码一致。
msg 字符串 错误描述信息。
dataId 字符串 检测对象对应的数据ID。
说明 如果在检测请求参数中传入了dataId,则此处返回对应的dataId
taskId 字符串 检测任务的ID。
url 字符串 检测对象的URL。
extras JSON结构体 额外调用参数,对应检测请求参数中的extras
说明 该参数可能会被调整,目前请勿依赖该参数的返回值。

(异步检测)示例

请求示例
{
    "scenes": [
        "ocr-classify"
    ],
    "tasks": [
        {
            "dataId": "test_data_xxxx",
            "url": "https://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-1sWeLu",
            "url": "https://test_image_xxxx.png"
        }
    ]
}

图片异步检测结果查询接口说明

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

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

  • 计费信息

    该接口不计费。

  • 查询超时

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

(结果查询)请求参数

名称 类型 是否必须 描述
body JSON数组 要查询的异步检测任务的taskId列表。数组长度不超过1000。

(结果查询)返回数据

名称 类型 描述
code 整型 错误码,和HTTP的status code一致。
msg 字符串 错误描述信息。
dataId 字符串 检测对象对应的数据ID。
说明 如果在检测请求参数中传入了dataId,则此处返回对应的dataId
taskId 字符串 检测任务的ID。
url 字符串 检测对象的URL。
extras JSON结构体 额外调用参数,对应检测请求参数中的extras
说明 该参数可能会被调整,目前请勿依赖该参数的返回值。
results 数组 返回结果。调用成功时(code=200),返回结果中包含一个或多个元素。每个元素是个结构体,具体结构描述请参见result
表 2. result
名称 类型 描述
scene 字符串 检测场景,取值:ocr
label 字符串 检测结果的分类。取值:
  • normal:图片中未识别出文字信息。
  • ocr:图片中包含文字信息。
suggestion 字符串 建议用户执行的操作,取值:
  • pass:无需关注返回结果。
  • review:关注识别出的文字信息。
rate 浮点数 在OCR图文识别场景中,可以不用关注该返回值。
ocrCardInfo 结构体 自动识别出来的卡证或票据OCR信息,包含身份证、驾驶证、行驶证、银行开户许可证、户口簿户主页、户口簿常住人口页、不动产证、房产证明、火车票、出租车票、定额发票、汽车购置发票。具体结构请参见ocrCardInfo
ocrCardInfo
  • 身份证信息
    名称 类型 描述
    name 字符串 姓名。
    nationality 字符串 民族。
    birth 字符串 出生日期。
    address 字符串 住址。
    number 字符串 身份证号码。
    sex 字符串 性别。
    authority 字符串 签发机关。
    endDate 字符串 有效日期。
  • 驾驶证信息
    名称 类型 描述
    name 字符串 姓名。
    validStartDate 字符串 有效起始日期
    number 字符串 证号。
    birthDate 字符串 出生日期。
    address 字符串 住址。
    issueUnit 字符串 发证单位。
    nationality 字符串 国籍。
    issueDate 字符串 初次领证日期。
    vehicleType 字符串 准驾车型。
    sex 字符串 性别。
    validEndDate 字符串 有效期限。
  • 行驶证信息
    名称 类型 描述
    vin 字符串 车辆识别代号。
    address 字符串 住址。
    issueDate 字符串 发证日期。
    model 字符串 品牌型号。
    vehicleType 字符串 车辆类型。
    owner 字符串 所有人。
    engineNum 字符串 发动机号码。
    plateNum 字符串 号牌号码。
    useCharacter 字符串 使用性质。
    registerDate 字符串 注册日期。
  • 银行开户许可证信息
    名称 类型 描述
    account 字符串 账号。
    legalPerson 字符串 法定代表人。
    approvalNumber 字符串 核准号。
    name 字符串 名称。
    title 字符串 标题。
    serialNumber 字符串 编号。
    bankName 字符串 开户银行。
    type 字符串 卡证的类型,取值固定为bank-account-permit,表示银行开户许可证。
  • 户口簿户主页信息
    名称 类型 描述
    locationNumber 字符串 地段号。
    issueDate 字符串 签发日期。
    householdType 字符串 户别。
    houseHolder 字符串 户主姓名。
    address 字符串 住址。
    community 字符串 户主社区。
    householdNumber 字符串 户号。
    undertaker 字符串 承办人签章。
    type 字符串 卡证的类型,取值固定为household-head,表示户口簿户主页。
  • 户口簿常住人口页信息
    名称 类型 描述
    occupation 字符串 职业。
    migrationDate1 字符串 何时由何地迁来本址。
    idNumber 字符串 身份证编号。
    education 字符串 文化程度。
    birthPlace 字符串 出生地。
    servicePremises 字符串 服务处所。
    householdNumber 字符串 户号。
    hometown 字符串 籍贯。
    gender 字符串 性别。
    name 字符串 姓名。
    formerName 字符串 曾用名。
    maritalStatus 字符串 婚姻状况。
    ation 字符串 民族。
    otherAddress 字符串 本市其他住址。
    birthday 字符串 出生日期。
    militaryService 字符串 兵役状况。
    relationTo 字符串 与户主关系。
    religion 字符串 宗教信仰。
    bloodType 字符串 血型。
    registerDate 字符串 登记日期。
    height 字符串 身高。
    migrationDate2 字符串 何时何地迁来本市。
    undertaker 字符串 承办人签章。
    type 字符串 卡证的类型,取值固定为household-resident,表示户口簿常住人口页。
  • 不动产证信息
    名称 类型 描述
    usage 字符串 用途。
    rightType 字符串 权利类型。
    location 字符串 坐落。
    otherInfo 字符串 权利其他状况。
    rightNumber 字符串 证号。
    buildingUnitNumber 字符串 不动产单元号。
    rightProperty 字符串 权利性质。
    rightHolder 字符串 权利人。
    sharedInfo 字符串 共有情况。
    termLimit 字符串 使用期限。
    landNumber 字符串 丘权号。
    area 字符串 面积。
    constructionArea 字符串 房屋建筑面积。
    type 字符串 卡证的类型,取值固定为estate-cert,表示不动产证。
  • 房产证明信息
    名称 类型 描述
    usage 字符串 用途、房屋用途。
    rightType 字符串 权利类型。
    location 字符串 坐落地址。
    otherInfo 字符串 权利其他状况。
    rightNumber 字符串 证号。
    buildingUnitNumber 字符串 不动产单元号。
    rightProperty 字符串 权利性质。
    rightHolder 字符串 权利人。
    sharedInfo 字符串 共有情况。
    termLimit 字符串 使用期限、土地使用年限。
    landNumber 字符串 丘权号。
    area 字符串 面积。
    constructionArea 字符串 房屋建筑面积。
    rightProperty 字符串 土地权利性质、取得方式。
    rightType 字符串 房屋权利类型。
    area 字符串 建筑面积。
  • 火车票信息
    名称 类型 描述
    price 字符串 票价。
    ticketNumber 字符串 票号。
    departureTime 字符串 开车时间。
    seatType 字符串 座位类型。
    trainNumber 字符串 车次。
    departure 字符串 出发站。
    departurePhonics 字符串 出发站拼音。
    seatNumber 字符串 座位号。
    destination 字符串 到达站。
    destinationPhonics 字符串 到达站拼音。
    passengerInfo 字符串 旅客信息。
    type 字符串 票据的类型,取值固定为train-ticket,表示火车票。
  • 出租车票信息
    名称 类型 描述
    actualCollection 字符串 实收金额。
    carNumber 字符串 车号。
    date 字符串 日期。
    invoiceCode 字符串 发票代码。
    invoiceNumbe 字符串 发票号码。
    mileage 字符串 里程。
    amount 字符串 金额。
    getOffTime 字符串 下车时间。
    boardingTime 字符串 上车时间。
    totalAmount 字符串 合计。
    type 字符串 票据的类型,取值固定为taxi-ticket,表示出租车票。
  • 定额发票信息
    名称 类型 描述
    amountInWords 字符串 大写金额。
    invoiceSerial 字符串 发票代码解析。
    amountInFigures 字符串 小写金额。
    invoiceNumber 字符串 发票号码。
    invoiceCode 字符串 发票代码。
    batchNumber 字符串 批次号。
    year 字符串 年份。
    taxBureauCode 字符串 税务局代码。
    invoiceIndustryCode 字符串 发票行业代码。
    amountVersion 字符串 金额版。
    regionalismCode 字符串 行政区划代码。
    invoiceCategoryCode 字符串 发票类别代码。
    type 字符串 票据的类型,取值固定为quota-invoice,表示定额发票。
  • 汽车购置发票信息
    名称 类型 描述
    invoicingDate 字符串 开票日期。
    certificateNo 字符串 合格证号。
    phoneNo 字符串 销货单位电话。
    importNo 字符串 进口证明书号。
    seller 字符串 销货单位名称。
    taxDept 字符串 主管税务机关。
    taxCode 字符串 主管税务代码。
    bankName 字符串 销货单位开户银行。
    totalAmount 字符串 价税合计(小写)。
    vehicleType 字符串 车辆类型。
    invoiceNo 字符串 发票号码。
    engingNo 字符串 发动机号码。
    sellerAddr 字符串 销货单位地址。
    taxRate 字符串 增值税税率或征收率。
    vehicleNo 字符串 车辆识别代号、车架号码。
    serialExcludeTax 字符串 完税凭证号码。
    buyerCode 字符串 购买方身份证号码、组织机构代码。
    sellerAccount 字符串 销货单位账号。
    sellerTaxId 字符串 销货单位纳税人识别号。
    amountInWords 字符串 价税合计(大写)。
    invoiceCode 字符串 发票代码。
    taxDeptAndCode 字符串 主管税务机关及代码。
    origin 字符串 产地。
    priceExcludeTax 字符串 不含税价。
    buyer 字符串 购买方名称。
    tax 字符串 增值税税额。
    inspectionNo 字符串 商检单号。
    buyerTaxId 字符串 购买方纳税人识别号。
    tonnage 字符串 吨位。
    capacity 字符串 限乘人数。
    model 字符串 厂牌型号。

(结果查询)示例

请求示例
[
    "img5A@k7a@B4q@6K@d9nfKgOs-1sWeLu"
]
正常返回示例
说明 以身份证、驾驶证、行驶证、房产证明和汽车购置发票为例。其他类型的卡证或票据结果示例,请参见结构化卡证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": "*",
                            "sex": "*",
                            "name": "***",
                            "birth": "1989年9月28日",
                            "type": "id-card"
                        },
                        "scene": "ocr-classify"
                    }
                ],
                "taskId": "img5A@k7a@B4q@6K@d9nfKgOs-1sWeLu",
                "url": "https://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": "xx省xx市路13号",
                            "nationality": "中国",
                            "sex": "男",
                            "name": "",
                            "validStartDate": "2013-02-02",
                            "type": "driver-license",
                            "issueDate": "1994-02-02",
                            "validEndDate": "2013-02-02至2023-02-02",
                            "birthDate": "出生月期",
                            "issueUnit": "XX省xx市公安局交视日期通警察支队透氧车型",
                            "vehicleType": "A1A2"
                        },
                        "scene": "ocr-classify"
                    }
                ],
                "taskId": "img5A@k7a@B4q@6K@d9nfKgOs-1sWeLu",
                "url": "https://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": "xx市xx区xx庄145号",
                            "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-1sWeLu",
                "url": "https://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-1sWeLu",
                "url": "https://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": "xx市xx区国家税务局第二税务分局",
                            "origin": "安徽",
                            "inspectionNo": "",
                            "bankName": "建行xx市分行",
                            "type": "car-invoice",
                            "sellerAddr": "xx市xx大道",
                            "phoneNo": "028-266**",
                            "buyerTaxId": "51021219821**",
                            "capacity": "5",
                            "invoicingDate": "2014-07-29",
                            "taxDeptAndCode": "xx市xx区国家税务局第二税务分局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-1sWeLu",
                "url": "https://test_image_xxxx.png"
            }
        ],
        "requestId": "D4E2ADEE-EFEC-42C8-8399-5BBEA79F9524"
    }