本文介绍了调用图片同步检测接口(/green/image/scan)进行卡证票据混贴OCR识别的方法。卡证票据混贴OCR能够自动识别出图片中混贴的多个卡证或票据内容,以及其中的文字信息,并支持以结构化的方式返回文字信息。如果您需要识别票据报销类图片中的文字内容,推荐您使用该场景。

卡证票据混贴OCR识别目前支持识别以下类型的混贴图片:
  • 混贴发票:表示包含火车票、机票行程单、出租车票、定额发票、增值税发票、卷票、银行卡、驾驶证正面、户口簿户主页、户口簿常住人口页中一项或多项内容的图片
  • 混贴身份证:表示包含身份证正面、身份证反面中一项或多项内容的图片
  • 混贴行驶证:表示包含行驶证、行驶证副页中一项或多项内容的图片

接口说明

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

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

  • 计费信息

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

  • 检测超时

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

  • 返回结果

    同步检测请求一般会在一秒内返回结果,但在一些特殊场景(例如系统繁忙导致堆积严重、图片较大、含有OCR内容较多等),耗时可能会增加。OCR的处理速度依赖图片中文字的字数,字数越多处理时间越长。如果您检测的场景中文字较多,推荐您使用图片异步检测接口。

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

请求参数

名称 类型 是否必须 描述
bizType String 该字段用于标识您的业务场景。您可以通过内容安全控制台创建业务场景(具体操作,请参见自定义机审标准),或者提交工单联系我们帮助您创建业务场景。
scenes StringArray 指定检测场景,取值:ocr
tasks JSONArray 指定检测对象,JSON数组中的每个元素是一个检测任务结构体。最多支持100个元素,即每次提交100条内容进行检测,支持100个元素的前提是需要将并发任务调整到100个以上。关于每个元素的具体结构描述,请参见task
extras JSONObject 指定要识别的混贴票据的类型,格式为{"card":"${CardType}"}CardType表示票据类型,取值:
  • multi-invoice:混贴发票,表示包含火车票、机票行程单、出租车票、定额发票、增值税发票、卷票、银行卡、驾驶证正面、户口簿户主页、户口簿常住人口页中一项或多项内容的图片
  • multi-idcard:混贴身份证,表示包含身份证正面、身份证反面中一项或多项内容的图片
  • multi-vehicle-license:混贴行驶证,表示包含行驶证、行驶证副页中一项或多项内容的图片
表 1. task
名称 类型 是否必须 描述
dataId String 数据ID。需要保证在一次请求中所有的ID不重复。
url String 待检测图片的URL。

返回数据

名称 类型 描述
code Integer 错误码,和HTTP的status code一致。
msg String 错误描述信息。
dataId String 检测对象对应的数据ID。
说明 如果在检测请求参数中传入了dataId,则此处返回对应的dataId
taskId String 检测任务的ID。
url String 检测对象的URL。
extras JSONObject 额外调用参数,对应检测请求参数中的extras
说明 该参数可能会被调整,目前请勿依赖该参数的返回值。
results JSONArray 返回结果。调用成功时(code=200),返回结果中包含一个或多个元素。每个元素是个结构体,具体结构描述请参见result
表 2. result
名称 类型 描述
scene String 检测场景,取值:ocr
label String 检测结果的分类。取值:
  • normal:图片中未识别出文字信息。
  • ocr:图片中包含文字信息。
suggestion String 建议用户执行的操作,取值:
  • pass:无需关注返回结果。
  • review:关注识别出的文字信息。
rate Float 在OCR图文识别场景中,可以不用关注该返回值。
multiCardInfo JSONArray 识别出来的卡证或票据信息,包含火车票、机票行程单、出租车票、定额发票、增值税发票、卷票、银行卡、驾驶证、户口簿户主页、户口簿常住人口页、身份证正面、身份证反面、行驶证、行驶证副页。具体结构描述请参见multiCardInfo
multiCardInfo
  • 火车票信息
    名称 类型 描述
    price String 票价。
    ticketNumber String 票号。
    departureTime String 开车时间。
    seatType String 座位类型。
    trainNumber String 车次。
    departure String 出发站。
    departurePhonics String 出发站拼音。
    seatNumber String 座位号。
    destination String 到达站。
    destinationPhonics String 到达站拼音。
    passengerInfo String 旅客信息。
    type String 票据的类型,取值固定为train-ticket,表示火车票。
  • 机票行程单信息
    名称 类型 描述
    fare String 票价。
    fuelSurcharge String 燃油附加费。
    serialNo String 印刷序号。
    flight String 航班号。
    agentCode String 销售单位代号。
    eTicketNo String 电子客票号码。
    depart String 出发地。
    issueOrg String 填开单位。
    id String 有效身份证号码。
    fund String 明航发展基金。
    passenger String 旅客姓名。
    insurance String 保险费。
    total String 合计。
    date String 日期。
    arrive String 目的地。
    ck String 校验码。
  • 出租车票信息
    名称 类型 描述
    actualCollection String 实收金额。
    carNumber String 车号。
    date String 日期。
    invoiceCode String 发票代码。
    invoiceNumbe String 发票号码。
    mileage String 里程。
    amount String 金额。
    getOffTime String 下车时间。
    boardingTime String 上车时间。
    totalAmount String 合计。
    type String 票据的类型,取值固定为taxi-ticket,表示出租车票。
  • 定额发票信息
    名称 类型 描述
    amountInWords String 大写金额。
    invoiceSerial String 发票代码解析。
    amountInFigures String 小写金额。
    invoiceNumber String 发票号码。
    invoiceCode String 发票代码。
    batchNumber String 批次号。
    year String 年份。
    taxBureauCode String 税务局代码。
    invoiceIndustryCode String 发票行业代码。
    amountVersion String 金额版。
    regionalismCode String 行政区划代码。
    invoiceCategoryCode String 发票类别代码。
    type String 票据的类型,取值固定为quota-invoice,表示定额发票。
  • 增值税发票信息
    名称 类型 描述
    invoice_name String 发票名称。
    invoice_id Integer 发票代码。
    invoice_number Integer 发票号码。
    invoice_date Integer 开票日期。
    invoice_bcompany String 购买方名称。
    invoice_bcode String 购买方纳税人识别号。
    invoice_baddress String 购买方地址、电话。
    invoice_baccount String 购买方开户行及账号。
    invoice_password String 发票密码。
    invoice_detail Array 发票明细。具体结构描述请参见invoice_detail
    invoice_totalamount Float 合计金额。
    invoice_totaltax Float 合计税额。
    invoice_totalamountupper String 价税合计(大写)。
    invoice_totalamountlower String 价税合计(小写)。
    invoice_scompany String 销售方名称。
    invoice_scode String 销售方纳税人识别号。
    invoice_saddress String 销售方地址、电话。
    invoice_saccount String 销售方开户行及账号。
    invoice_remark String 备注。
    invoice_payee String 收款人。
    invoice_reviewer String 复核。
    invoice_drawer String 开票人。
    表 3. invoice_detail
    名称 类型 描述
    detail_name String 货物或应税劳务、服务名称。
    detail_type String 规格型号。
    detail_unit String 单位。
    detail_count Float 数量。
    detail_unitprice Float 单价。
    detail_amount Float 金额。
    detail_rate String 税率。
    detail_tax Float 税额。
  • 卷票信息
    名称 类型 描述
    date String 开票日期。
    seller String 销售方名称。
    buyer String 购买方名称。
    taxNo String 销售方税号。
    total String 总价。
    ck String 校验码。
    invoiceNo String 发票号码。
    invoiceCode String 发票代码。
    buyerTaxCode String 购买方税号。
  • 银行卡信息
    名称 类型 描述
    bankCardNum String 银行卡号。
  • 驾驶证信息
    名称 类型 描述
    name String 姓名。
    number String 驾驶证号。
    address String 住址。
    vehicleType String 准驾车型。
    validStartDate String 有效期开始时间,格式:yyyy-MM-dd。
    validEndDate String 有效期截止时间,格式:yyyy-MM-dd。
  • 户口簿户主页信息
    名称 类型 描述
    locationNumber String 地段号。
    issueDate String 签发日期。
    householdType String 户别。
    houseHolder String 户主姓名。
    address String 住址。
    community String 户主社区。
    householdNumber String 户号。
    undertaker String 承办人签章。
    type String 卡证的类型,取值固定为household-head,表示户口簿户主页。
  • 户口簿常住人口页信息
    名称 类型 描述
    occupation String 职业。
    migrationDate1 String 何时由何地迁来本址。
    idNumber String 身份证编号。
    education String 文化程度。
    birthPlace String 出生地。
    servicePremises String 服务处所。
    householdNumber String 户号。
    hometown String 籍贯。
    name String 姓名。
    formerName String 曾用名。
    maritalStatus String 婚姻状况。
    ation String 民族。
    otherAddress String 本市其他住址。
    birthday String 出生日期。
    militaryService String 兵役状况。
    relationTo String 与户主关系。
    religion String 宗教信仰。
    bloodType String 血型。
    registerDate String 登记日期。
    height String 身高。
    migrationDate2 String 何时何地迁来本市。
    undertaker String 承办人签章。
    type String 卡证的类型,取值固定为household-resident,表示户口簿常住人口页。
  • 身份证信息
    名称 类型 描述
    name String 姓名。
    nationality String 民族。
    number String 身份证号。
    birth String 出生日期。格式:yyyy-MM-dd。
    address String 住址。
    authority String 签发机构。
    startDate String 有效期开始日期。格式:yyyy-MM-dd。
    endDate String 有效期结束日期。格式:yyyy-MM-dd。
    说明 该字段可能返回以下值:长期
    angle Float 证件顺时针旋转的角度。
    copy Boolean 身份证照片是否是复印件。取值:
    • true:是
    • false:否
    说明 默认不返回该字段。如果需要返回,请提交工单联系我们。
    remake Boolean 身份证照片是否是翻拍。取值:
    • true:是
    • false:否
    说明 默认不返回该字段。如果需要返回,请提交工单联系我们。
    type String 证件类型。取值:
    • front:身份证正面(人像面)
    • back:身份证背面(国徽面)
    • front_back:正常身份证正反同页
    • interim_front:临时身份证正面(人像面)
    • interim_back:临时身份证背面(国徽面)
    • interim_front_back:临时身份证正反同页
    numberValid Boolean 证件号码是否合法。取值:
    • true:是
    • false:否
      说明 如果长度不正确或者号码不符合国家规范,会返回false
  • 行驶证信息
    名称 类型 描述
    plateNum String 车牌号。
    vehicleType String 车辆类型。
    owner String 所有者名字。
    useCharacter String 车辆使用性质。
    address String 住址。
    model String 车辆品牌。
    vin String 车辆识别代号。
    engineNum String 发动机号码。
    registerDate String 注册日期,格式:yyyy-MM-dd。
    issueDate String 发证日期,格式:yyyy-MM-dd。
  • 行驶证副页信息
    名称 类型 描述
    plateNum String 车牌号。
    fileNum String 档案编号。
    appprovedPassengerCapacity Integer 核定载人数。
    grossMass String 总质量。
    unladenMass String 整备质量。
    approvedLoad String 核定载质量。
    tractionMass String 准牵引总质量。
    inspectionRecord String 检验记录。
    overallDimension Object 车辆轮廓尺寸信息,具体结构描述请参见overallDimension
    表 4. overallDimension
    名称 类型 描述
    length Integer 车辆长度,单位:毫米。
    width Integer 车辆宽度,单位:毫米。
    height Integer 车辆高度,单位:毫米。

示例

请求示例
说明 以混贴发票识别为例(extras传入{"card": "multi-invoice"})。如果需要识别其他类型的票据,传入对应的卡证或票据类型即可,具体请参见请求参数
{
    "scenes": [
        "ocr"
    ],
    "extras": {
        "card": "multi-invoice"
    },
    "tasks": [
        {
            "dataId": "test_data_xxxx",
            "url": "https://test_image_xxxx.png"
        }
    ]
}
正常返回示例
说明 以只包含卷票或机票行程单为例。其他类型的卡证或票据结果示例,请参见结构化卡证OCR示例结构化票据OCR示例
  • 卷票信息
    {
        "msg": "OK",
        "code": 200,
        "data": [
            {
                "msg": "OK",
                "code": 200,
                "dataId": "test_data_xxxx",
                "extras": {
                    "md5": "d38999af9b6b2111568eda095029b768"
                },
                "results": [
                    {
                        "multiCardInfo": [
                            {
                                "date": "",
                                "seller": "",
                                "total": "",
                                "ck": "",
                                "buyerTaxCode": "",
                                "taxNo": "",
                                "invoiceNo": "00000000",
                                "type": "roll-ticket",
                                "invoiceCode": "000000000000",
                                "buyer": ""
                            }
                        ],
                        "rate": 99.91,
                        "suggestion": "review",
                        "label": "ocr",
                        "scene": "ocr"
                    }
                ],
                "taskId": "img5AqOHIlzQRD5FMGNBO6F@t-1s$@Y0",
                "url": "https://test_image_xxxx.png"
            }
        ],
        "requestId": "3DC92A4B-2346-4519-B1C5-DD277AB3A5F8"
    }
  • 机票行程单信息
    {
        "msg": "OK",
        "code": 200,
        "data": [
            {
                "msg": "OK",
                "code": 200,
                "dataId": "test_data_xxxx",
                "extras": {
                    "md5": "1f22c383a8b83479e91182def3ff1489"
                },
                "results": [
                    {
                        "multiCardInfo": [
                            {
                                "insurance": "XXX",
                                "date": "",
                                "fare": "50.00",
                                "flight": "",
                                "agentCode": "CGO2750**",
                                "eTicketNo": "7R469550**",
                                "ck": "",
                                "type": "flight-itinerary",
                                "issueOrg": "xxxx航空服务公司",
                                "serialNo": "706229**",
                                "total": "CNY630.00",
                                "fund": "",
                                "passenger": "张三",
                                "arrive": "成都",
                                "id": "41010519651**",
                                "fuelSurcharge": "",
                                "depart": "郑州"
                            }
                        ],
                        "rate": 99.91,
                        "suggestion": "review",
                        "label": "ocr",
                        "scene": "ocr"
                    }
                ],
                "taskId": "img1XqbpFd0buK5E@0wglWMrA-1s$$0A",
                "url": "https://test_image_xxxx.png"
            }
        ],
        "requestId": "FE52C03C-1BAA-4D16-B29C-750A45C65E26"
    }