OCR服务
组件编码 hzero-ocr
1 简介
1.1 概述
图像文字识别服务
1.2 组件坐标
<dependency>
    <groupId>org.hzero</groupId>
    <artifactId>hzero-ocr</artifactId>
    <version>${hzero.service.version}</version>
</dependency>
1.3 主要功能
- 营业执照识别
- 增值税发票识别
- 火车票识别
- 身份证识别
- 出租车票识别
- 通用文本识别
- 一图多票识别(火车票、出租车票、定额发票)
1.4 服务配置
接口平台配置:
- 注册具有OCR识别能力的外部接口服务
- 注册组合接口
- 配置识别应用类型
- 应用类型中维护实例接口
1.5 安装
- 首先初始化groovy表结构脚本
- 其次初始化相关基础数据: 值级、值级视图、菜单、权限集、管理员角色权限等基础数据, 参考hzero-resource
- 运行mvn spring-boot:run
2开发指导
feign调用: POST /v1/{organizationId}/ocr
传入参数
| 参数名 | 类型 | 是否必须 | 描述 | 
| organizationId | Long | 是 | 租户ID | 
| recognizeRequestDTO | RecognizeRequestDTO | 是 | 识别请求DTO | 
RecognizeRequestDTO
| 参数 | 是否必须 | 值 | 
| code | 是 | 身份证:ID_CARD营业执照:BUSINESS_LICENSE增值税发票:VAT_INVOICE火车票:TRAIN_TICKET出租车票:TAXI_INVOICE通用文本:GENERAL_BASIC一图多票:MULTI_IMAGE | 
| imageUrl | 否 | 图片url (识别类型为ID_CARD类型 以外传入) | 
| imageUrlFront | 否 | 身份证正面图片url (识别类型为ID_CARD时传入) | 
| imageUrlBack | 否 | 身份证背面图片url (识别类型为ID_CARD时传入) | 
返回参数
| 类型 | 描述 | 
| List<RecognizeResultDTO> | 识别返回结果DTO | 
RecognizeResultDTO
| 参数名 | 类型 | 描述 | 
| imageUrl | String | 图片地址 | 
| ocrType | String | 识别类型 | 
| resultInfo | BusinessLicenseDTOQuotaInvoiceDTOTaxiReceiptDTOIdCardDTOTrainTicketDTOVatInvoiceDTO | 识别结果 | 
BusinessLicenseDTO
| 参数名 | 类型 | 描述 | 
| name | String | 名称 | 
| type | String | 类型 | 
| address | String | 住所 | 
| legalPerson | String | 法定代表人 | 
| registeredCapital | String | 注册资本 | 
| foundDate | Date | 成立日期 | 
| validPeriod | String | 营业期限 | 
| registrationNumber | String | 证件编号 | 
| uscc | String | 社会信用代码 | 
| businessScope | String | 经营范围 | 
IdCardDTO
| 参数名 | 类型 | 描述 | 
| name | String | 姓名 | 
| sex | String | 性别 | 
| birth | String | 出生日期 | 
| ethnicity | String | 民族 | 
| address | String | 地址 | 
| number | String | 身份证号 | 
| issue | String | 签发机关 | 
| validFrom | String | 签发日期 | 
| validTo | String | 失效日期 | 
QuotaInvoiceDTO
| 参数名 | 类型 | 描述 | 
| code | String | 发票代码 | 
| number | String | 发票号码 | 
| amount | BigDecimal | 发票金额 | 
| location | String | 地址 | 
TaxiReceiptDTO
| 参数名 | 类型 | 描述 | 
| invoiceCode | String | 发票代码 | 
| number | String | 发票号码 | 
| taxiNumber | String | 车牌号 | 
| date | Date | 日期 | 
| time | String | 上下车时间 | 
| fare | BigDecimal | 金额 | 
| fuelOilSurcharge | BigDecimal | 燃油附加费 | 
| callServiceSurcharge | BigDecimal | 叫车服务费 | 
| totalFare | BigDecimal | 实收金额 | 
TrainTicketDTO
| 参数名 | 类型 | 描述 | 
| ticketNumber | String | 车票号 | 
| trainNumber | String | 车次 | 
| checkPort | String | 检票口 | 
| startingStation | String | 始发站 | 
| destinationStation | String | 终点站 | 
| startingTime | String | 开车时间 | 
| ticketPrice | BigDecimal | 票价 | 
| seatCategory | String | 席别 | 
| name | String | 乘客姓名 | 
| seatName | String | 座位号 | 
VatInvoiceDTO
| 参数名 | 类型 | 描述 | 
| type | String | 发票种类 | 
| number | String | 发票号码 | 
| code | String | 发票代码 | 
| issueDate | Date | 开票日期 | 
| checkCode | String | 校验码 | 
| encryptionBlock | String | 密码区 | 
| attribution | String | 发票归属地 | 
| buyerName | String | 购方名称 | 
| buyerId | String | 购方纳税人识别号 | 
| buyerAddress | String | 购方地址及电话 | 
| buyerBank | String | 购方开户行及账号 | 
| sellerName | String | 销售方名称 | 
| sellerId | String | 销售方纳税人识别号 | 
| sellerAddress | String | 销售方地址及电话 | 
| sellerBank | String | 销售方开户行及账号 | 
| subtotalAmount | BigDecimal | 合计金额 | 
| subtotalTax | BigDecimal | 合计税额 | 
| total | BigDecimal | 价税合计(小写) | 
| totalInWords | String | 价税合计(大写) | 
| receiver | String | 收款人 | 
| reviewer | String | 复核人 | 
| issuer | String | 开票人 | 
| remarks | String | 备注 | 
| itemList | List<VatInvoiceLine> | 增值税发票明细行 | 
VatInvoiceLine
| 参数名 | 类型 | 描述 | 
| name | String | 商品名称 | 
| specification | String | 规格型号 | 
| unit | String | 单位 | 
| quantity | BigDecimal | 数量 | 
| unitPrice | BigDecimal | 单价 | 
| amount | BigDecimal | 金额 | 
| taxRate | BigDecimal | 税率 | 
| tax | BigDecimal | 税额 | 
3 展望
- OCR识别统计
- 统计外部接口调用情况
- 对接计费服务,实现OCR识别计费功能
 
- 一图多票中单个票据识别失败优化
- OCR客户端