OCR服务
服务简码
HOCR
默认端口
8290
默认路由
/hocr/**
组件编码
hzero-ocr
1 简介
1.1 概述
图像文字识别服务
1.2 组件坐标
- OP版本
<dependency>
<groupId>org.hzero</groupId>
<artifactId>hzero-ocr</artifactId>
<version>${hzero.service.version}</version>
</dependency>
1.3 主要功能
- 营业执照识别
- 增值税发票识别
- 火车票识别
- 身份证识别
- 出租车票识别
- 通用文本识别
- 一图多票识别(火车票、出租车票、定额发票)
1.4 服务配置
OCR需要借助接口平台的能力,与外部服务对接
1.在接口平台注册具有OCR识别能力的外部接口服务,并添加相应的识别接口,以百度识别接口为例,配置如下:
接口编码需要固定,否则功能无法使用
- 出租车票识别(TAXI_INVOICE)
- 定额发票识别(QUOTA_INVOICE)
- 通用文字识别(GENERAL_BASIC)
- 增值税发票识别(VAT_INVOICE)
- 身份证识别(ID_CARD)
- 营业执照识别(BUSINESS_LICENSE)
- 火车票识别(TRAIN_TICKET)
- 定额发票识别(QUOTA_INVOICE)
2.在接口平台注册OCR识别组合接口服务,并添加相应的识别接口(OCR页面调用识别的接口),以百度识别接口为例配置如下:
3.然后接口平台-接口配置-应用类型定义添加实例接口(组合接口),以出租车票为例配置如下:
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客户端