2021-05-10

3 篇文章 0 订阅

OCR通用识别

1,模型描述

冷链OCR识别报关单模型CRNN+DB。
冷链OCR识别报关单模型关键路径在于文字检测和文本识别部分,我们使用的预训练模型的网络结构是Differentiable Binarization+ CRNN,基于icdar2015数据集下进行训练。DB (Differentiable Binarization)是一种基于分割的文本检测算法。在各种文本检测算法中,基于分割的检测算法可以更好地处理弯曲等不规则形状文本,因此往往能取得更好的检测效果。但分割法后处理步骤中将分割结果转化为检测框的流程复杂,耗时严重。因此我们提出一个可微的二值化模块(DB),将二值化阈值加入训练中学习,可以获得更准确的检测边界,从而简化后处理流程。

CRNN(Convolutional Recurrent Neural Network)即卷积递归神经网络,是DCNN和RNN的组合,专门用于识别图像中的序列式对象。与CTC loss配合使用,进行文字识别,可以直接从文本词级或行级的标注中学习,不需要详细的字符级的标注。
关键词:CRNN,DB,OCR,图像分割,冷链

模型难点攻坚
1) 小样本,数据量少,所以此任务需要在大的训练好的数据集上做finetuned, 并采用图像增强来弥补标注训练数据的不足。
2) 不同大小图片的resize,对纯数字,纯字母,以及混合的识别调精。
3) 数据预处理,对于不同角度,亮度,旋转90度图片的预处理等。

冷链OCR识别报关单后处理—模板制作
难点攻坚

  1. 选择行和列的基准点
    解决:找到表格中固定不变的位置作为锚点,确保锚点识别后返回的文本能正确分割各行各列。
  2. 不同航线表格中表头的细微区别
    解决:加入别名,使其有多个映射的选择。
  3. 存在两行信息有公共部分,单元格合并的情况
    解决:通过行锚点的取值范围的改变,保证上下两行信息的准确。另外也可通过前后补缺的方式进行信息填补。
  4. 错列识别,识别内容无法根据锚点正确分割
    解决:根据表格顺序进行信息提取,不根据文本信息进行位置判定。
    5,动态定框的大小
    解决:由于每行的宽度可能不同,显然均分取货物信息值不合适,遂拿一列的所有左上框的坐标进行排序得出,在进行相应的动态横向框选。
    6,商品货物record_info信息抽取
    原先方法:
    首先得到商品编号字段项,根据各商品编号的所在位置确定每个商品货物信息的行位置以及行间距;根据行位置信息与其它货物字段的位置信息所在获取其他货物字段key对应的value。该方法的灵活之处在于无需对货物信息以框定的方式获取value(所设定的框选区域在不同大小图片上将处于不同位置),而可动态的根据商品编号位置确定其他货物字段key所对应value的所在区域,进而提取。
    存在的问题:该方法的有效性依赖于商品字段项正确完备的提取,即不可出现未识别的情况,不然会导致行位置信息混乱而无法准确抽取。

改进方法:
识别结果规范化 + 区域框定
货物信息的抽取不再依赖于商品编号信息项的抽取,而是以区域框定的方式获取每个货物信息字段key所对应的value。为确保设定的框定区域在不同大小的输入图片中始终可框出目标value值,对不同大小图片的识别结果进行规范化处理,将各种图片的识别结果规范化至统一样式中。如此便可确保所设定的框定区域可准确地获取货物信息字段key对应的value值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值