技术新讯 > 电子通信装置的制造及其应用技术 > 一种用于OCR的编码方法与流程  >  正文

一种用于OCR的编码方法与流程

  • 国知局
  • 2024-10-15 10:01:08

本发明涉及神经网络领域,特别涉及一种用于ocr的编码方法。

背景技术:

1、字符级识别方法:属于完全监督模式,基于cnn的方法对每个字符进行独立预测。基本思路是对n×n大小的图片不断卷积和下采样并扩展通道层的维度,直到特征图变成1×1×c,其中c是通道维度,最后映射成1×v字典长度的向量,作为字符分类的概率向量。另外,对字符级别识别模型的微调完全依赖于字典概率的重分配,每次微调的结果会导致不同字符间的正确率出现波动。

2、ctc方法:使用crnn将输入图片下采样并切分为固定为1的切片,例如原始图片经过归一化后维度是h×w×3,经过卷积和下采样后维度变为1×w/4×c,其中宽度方向的维度w_1=w/4,即为切片的数量。w/4事实上是根据最小字符的宽度确定的,这里假设最小的字符宽度是4个像素,若下采样的比例小于1/4,则有概率会丢失宽度小的字符。这样一来,宽度大的字符,每个字符就会占据多个重复的切片,ctc的原理就是根据去重后的最大转移概率得到字符序列。事实上ctc指的是loss的计算方式,从损失函数的设计角度上,ctc属于弱监督训练,收敛速度比单字符方法慢一些,但对样本的支持种类更多,例如支持序列中带空格的情况。ctc模型的微调效果一般会优于字符级模型,因为质量的提升不仅依赖于字典概率的重分配,也依赖于序列的联合校正,调优方式多一些。

3、trocr方法:使用beit+roberta对原始图片进行编解码。beit是一种自监督训练出来的图像token分类编码模型,推理时将图片切分成n×n的网格,每个网格大小为16×16,为每个网格预测一个token id,训练时需要把每个token id映射为与目标近似的网格,可以认为beit是一种网格聚类。当然,在trocr里面,不会真的去预测图像的token id,因为token id是离散化的信息,既无法计算梯度又损失了太多信息,trocr利用beit获得token的编码向量并作为解码器(roberta)的输入,再解码出目标序列。由于采用了序列到序列的编解码方法,编码序列和解码序列长度不要求一致,并且每个解码过程中的token都可能与整个编码序列全局相关,因此trocr属于更弱的监督训练,收敛速度比较慢,但支持的样本种类比单字符级和ctc方法更多,例如支持印章识别。

4、对三种不同技术的ocr的总结如下:

5、

技术实现思路

1、如图1所示,单字符识别方法:对近似字或不清晰的字识别精度较差,缺乏联合校正能力,不能识别空格。由于采用全监督模式,数据标注成本高,每个字符需要标出位置和内容。

2、ctc方法:由于ctc方式在编码阶段,高和宽采用不同的采样率,因此只适用于特定方向的文本图片。另外,ctc损失函数假定每个切片具有唯一分类,因此每个切片只能属于某一个字符,不支持多行、上下标、带分式(如公式)、印章等复杂布局的图片,也不支持位置输出。

3、如图2所示,trocr方法:理论上解码器即可以输出字符分类结果,理论上也能输出位置回归结果,但trocr直接沿用beit和roberta预训练模型,没有对模型进行修改,存在以下问题:

4、·trocr采用非等比伸缩的方式将图片归一化到固定维度,对于长宽比例悬殊的图片,归一化后会严重失真。

5、·beit的预训练目标是最小化像素级误差,类似于低通滤波,而ocr需要识别笔划信息(属于高频信息),预训练目标不能满足ocr的需要。

6、·roberta只支持字符解码,在没对其输出结构进行修改的情况下,不能输出位置信息。

7、·roberta的token字典空间大部分用于英文单词编码,每个中文字符需要用3个token表示,如果需要支持单字符解码,英文单词的编码空间将会浪费,而中文的编码长度过长,会导致整体解码序列太长,增加了内存使用量并且影响精度。

8、为了解决上述技术问题,本发明提出了如下解决方案:

9、一种用于ocr的编码方法,其特征在于,包括如下步骤:

10、步骤1,采集图片信息时,根据所述图片大小按需要切分网格的维度;

11、步骤2,将反映位置的信息作为所述图片的位置编码;

12、步骤3,将具备混合语义的编码单元输出给解码器进行处理。

13、优选地,在所述步骤1之前还包括0-1预处理步骤,将所述图片分为预定大小的区块并使得每个区域重叠期望的比例,然后在编码后特征层拼接,从而使得每个图片区域padding的宽/高小于等于预设的值。

14、优选地,在所述步骤3中的编码单元包括resnet图像特征编码、featurepyramidnetwork多分辨率特征混合(fpn)和rotary+transformer。

15、优选地,resnet采用bottleneck子结构,网络维度是768,层数设置为[3,4,6,3,2],其中最后三层对应的降采样率分别为resnet最终为每张图片输出最后三层特征图。

16、优选地,fpn沿用maskrcnn中对于多层不同分辨率的特征图的处理方法:采用featurepyramidnetwork,将低分辨率的特征层插值后混合到高分辨率的特征层上,最后形成三个特征层,并将这三个特征层展开成l×768,作为transformer编码器的输入,其中

17、优选地,在rotary+transformer中,roformer是利用rotary编码在自相关阶段对点乘向量xi,xj各乘上一个对应位置的旋转矩阵,即rixi·rjxj,最终效果等同于由于fpn输出的网格具有二维位置,需要在roformer基础上做修改,修改方式是将768分为即4×3×64,其中维度3对应层级、高、宽三级索引,用l,h,w表示,l∈{0,1,2},因此旋转矩阵分为rl,rh,rw三个,点乘逻辑如下:

18、

19、优选地,在所述步骤3中,所述解码器采用bert相同结构的解码器。

20、优选地,所述解码器采用2维中心坐标加8维相对坐标的方式来表示位置向量。

21、优选地,对于公式和印章,将位置标签全部设置为0,计算loss时,遇到全0的位置编码,则不计算其loss。

22、优选地,所述预定大小为512×512,所述期望的比例为1/8,所述预设的值为448。

23、本发明涉及的业内术语的定义(如果有英文缩写的请给出中文解释和英文全称):

24、rotary:旋转编码,具体解释参考[2104.09864]roformer:enhanced transformerwith rotary position embedding(arxiv.org)。

25、decoder:将特征解码为任务相关的输出。本文中涉及的decoder将向量转换为文本和位置。

26、ctc:(connectionist temporal classification,连接时序分类),接在神经网络的最后一层,用于序列学习,使得模型可以输出全局最优的序列,而非局部最优的元素组成的序列。

27、ocr:(optical character recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。

28、roberta:与bert相同的网络结构,属于双向编码型transformer,只是在训练机制和tokenizer设计上略有不同,可参考[1907.11692]roberta:a robustly optimized bertpretraining approach(arxiv.org)。

29、因此本发明实现了如下效果:

30、(1)对输入图片使用动态维度,适应不同长宽比例的图片,并降低内存使用量。

31、(2)采用resnet+fpn+rotarytransformer三级编码,其中resnet确保了图像编码具有二维空间上的视野,fpn使多种分辨率的特征互相融合,rotarytransformer使全局卷积后的图像编码具有位置特征。

32、(3)解码器使用字符级tokenizer,使中英文编码长度一致(每个字符一个id)。

33、(4)位置解码采用中心坐标加四角偏移的方式编码,降低了位置回归的收敛误差。

本文地址:https://www.jishuxx.com/zhuanli/20241015/316134.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。