公开/公告号CN112784838A
专利类型发明专利
公开/公告日2021-05-11
原文格式PDF
申请/专利号CN202110121539.2
申请日2021-01-28
分类号G06K9/32(20060101);G06K9/62(20060101);G06N3/04(20060101);G06N3/08(20060101);
代理机构44416 广州科沃园专利代理有限公司;
代理人马盼
地址 528200 广东省佛山市南海高新区佛高科技智库中心A座4楼
入库时间 2023-06-19 10:57:17
技术领域
本发明涉及文本识别领域,具体涉及一种基于局部敏感哈希网络的汉明OCR识别方法。
背景技术
场景文本识别旨在图像中提取文本内容,在实际应用中具有巨大的商业价值。场景文本识别,通常包括对场景文字定位和文字识别。例如在中文文本识别,国内外已经存在了大量成熟的检测识别方法,并且应用到实际工作中。这些方法不仅检测快,而且识别率良好,具有一定的优越性。虽然,场景文本识别取得了一定的突破性成就,也产生了很多代表性的模型,但是这些模型大多数都很笨重。普遍的场景文本识别模型最后回归分类采用独热编码对每个字符进行编码,当词汇表的规模很大,那么模型的字符嵌入层和回归分类层产生的映射矩阵将会占用大量的存储容量,导致这些模型很难在移动端设备上部署,因为它消耗了大量存储资源和计算空间。因此,开发一种词汇列表大、占用空间小,识别精度高的轻量级别场景文本识模型是必要的。
发明内容
针对现有技术的不足,本发明的目的旨在提供一种种基于局部敏感哈希网络的汉明OCR识别方法。
为实现上述目的,本发明采用如下技术方案:
一种基于局部敏感哈希网络的汉明OCR识别方法,包括以下步骤:
S1:采集具有OCR的场景文本图像,用于制作训练集和测试集;所述训练集中文本图像均包含文本标注;
S2:构建辅助模型,用所述训练集的文本图像优化所述辅助模型,对所述模型进行训练,生成辅助编码,由所述辅助编码得到所有字符的局部敏感哈希编码;
S3:构建汉明OCR主模型,把所述局部敏感哈希编码作为所述汉明OCR主模型的嵌入层进行输出,得到初始化汉明OCR主模型;
S4:用所述训练集的文本图像优化所述初始化汉明OCR主模型的参数,得到最优汉明OCR网络模型,将所述测试集中的文本图像输入到所述最优汉明OCR网络模型,检验所述最优汉明OCR网络模型的有效性;
S5:将待识别的的文本图像输入到所述最优汉明OCR网络模型,所述最优汉明OCR网络模型生成输出编码,由输出编码得到文本识别结果。
进一步地,所述步骤S1还包括:
将采集到所述具有OCR的场景文本图像按4:1划分训练集和测试集。
进一步地,所述步骤S1中用于文本标注的标签为包围文本实例的多边形坐标和文本序列。
进一步地,所述辅助模型和所述汉明OCR主模型均包括特征编码器、位置编码器、嵌入层、解码网络和分类器;所述特征编码器的输入端输入的是文本图像,所述特征编码器的输出端和位置编码器的输出端共同连接至所述解码网络的其中一个输入端,所述嵌入层的输出端和位置编码器的输出端共同连接至所述解码网络的另一个输入端,所述解码网络的输出端连接至所述分类器的输入端。
进一步地,所述特征编码器的骨干包括卷积层、池化层、残差模块和GCNet网络。
进一步地,所述解码网络包括简化后的Transformer解码器,所述简化后的Transformer解码器由三个相同的层堆叠而成,每一层包括第一子层和第二子层,所述第一子层是Masked Multi-Head Attention块,第二子层是Multi-Head Attention块。
进一步地,所述辅助模型的嵌入层为embedding层,所述汉明OCR主模型的嵌入层为汉明embedding层。
进一步地,所述辅助模型的分类器为softmax回归分类,所述汉明OCR主模型的分类器为汉明分类器。
进一步地,所述步骤2中构建辅助模型包括以下步骤:
S21:构建特征编码器;
S22:加入位置编码器;
S23:将输入字符转换成维度d向量;
S24:构建解码网络;
S25:使用softmax回归分类器对所述字符解码特征向量的特征序列进行分类,输出辅助编码。
本发明的有益效果在于:
1、提出了一种生成哈希编码的方法来将每个字符映射到汉明空间。在这个空间里,视觉上相似的字符汉明距离会很小,有助于降低了模型的计算量。
2、提出了一种新的Hinge-loss训练的汉明分类器,用辅助模型生成的局部敏感哈希编码代替独热编码来预测输出字符。使用该方法,当词汇表很大时,模型的存储显著降低。
3、embedding层直接使用哈希码本,进一步降低了计算量和模型占用空间。
4、通过去除Feed Forward模块和采用跨层参数共享技术,简化了Transformer解码器的结构,以减少储存的需求。
5、基于自我注意力机制的汉明OCR,对比先进的模型,更适合于处理大规模词汇表的情况。
6、基于哈希编码技术算法的汉明OCR不但大大减少原来模型存储占用容量,并且适应于大规模词汇列表,同时提高了模型稳定性和运行效率。
附图说明
附图1为本发明的辅助模型流程结构图;
附图2为本发明的主模型流程结构图;
附图3本发明的特征编码器结构图。
附图4本发明的残差模块图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述:
一种基于局部敏感哈希网络的汉明OCR(Optical Character Recognition,光学字符识别)识别方法,首先在辅助模型上训练得到所有字符的局部敏感哈希编码,将所有字符的局部敏感哈希编码用于汉明OCR主模型的embedding层(embedding,嵌入)中,并初始化汉明OCR主模型。接着把文本图像输入到基于注意力机制的主模型中,文本图像首先通过特征编码器来获得用于文本特征表示的字符特征向量;同时把主模型上一次输出结果对应字符的局部敏感度哈希编码输入至Hamming Embedding层(Hamming Embedding,汉明嵌入),大大减少汉明OCR主模型中嵌入层的存储计算空间;接着经过3个去掉前馈网络模块的Transformer解码器进行序列建模,并且采用跨层参数共享技术,使得模型的存储占用容量大大减少;最后经过汉明分类器,采用局部敏感哈希分类对所有字符的哈希编码计算汉明距离,距离最近字符的即为预测结果。对比于现有技术的模型,基于哈希编码技术算法的汉明OCR不但大大减少原来模型存储占用容量,并且适应于大规模词汇列表,同时提高了模型稳定性和运行效率。
一种基于局部敏感哈希网络的汉明OCR识别方法,其特征在于,包括以下步骤:
S1:采集具有OCR的场景文本图像,用于制作训练集和测试集;训练集中文本图像均包含文本标注;
S2:构建汉明OCR主模型,把局部敏感哈希编码作为汉明OCR主模型的嵌入层进行输出,得到初始化汉明OCR主模型;
S3:构建汉明OCR主模型,把局部敏感哈希编码作为汉明OCR主模型的嵌入层进行输出,得到初始化汉明OCR主模型;
S4:用训练集的文本图像优化初始化汉明OCR主模型的参数,得到最优汉明OCR网络模型,将测试集中的文本图像输入到最优汉明OCR网络模型,检验最优汉明OCR网络模型的有效性。
S5:将待识别的的文本图像输入到最优汉明OCR网络模型,最优汉明OCR网络模型生成输出编码,由输出编码得到文本识别结果。进一步地,步骤S1还包括:
将采集到场景文本图像按4:1划分训练集和测试集。
进一步地,步骤S2中用于文本标注的标签为包围文本实例的多边形坐标和文本序列。
进一步地,辅助模型和汉明OCR主模型均包括特征编码器、位置编码器、嵌入层、解码网络和分类器;特征编码器的输入端输入的是文本图像,特征编码器的输出端和位置编码器的输出端共同连接至解码网络的其中一个输入端,嵌入层的输出端和位置编码器的输出端共同连接至解码网络的另一个输入端,解码网络的输出端连接至分类器的输入端。样本数据通过特征编码器得到字符编码特征向量;嵌入层用于为解码网络提供下一个字符的输入;位置编码器加入在特征编码器和嵌入层的输出量中,用于捕捉字符的顺序序列,区分不同位置的单词;解码器网络将特征编码器和嵌入层的输出量转化为字符解码特征向量;分类器将对字符解码特征向量的特征序列进行分类,输出字符编码。
进一步地,特征编码器的骨干包括卷积层、池化层、残差模块和GCNet网络。
进一步地,解码网络包括简化后的Transformer解码器,简化后的Transformer解码器由三个相同的层堆叠而成,每一层包括第一子层和第二子层,第一子层是MaskedMulti-Head Attention块,第二子层是Multi-Head Attention块。
进一步地,辅助模型的嵌入层为embedding层,汉明OCR主模型的嵌入层为汉明embedding层。
进一步地,辅助模型的分类器为softmax回归分类,汉明OCR主模型的分类器为汉明分类器。
步骤S2还包括:
S21:构建辅助模型。如图1所示辅助模型包括特征编码器、位置编码器、embedding层、解码网络、softmax回归分类器;样本数据通过特征编码器得到字符编码特征向量;embedding层用于将上一次softmax回归分类器输出的辅助编码转换成维度d的向量;位置编码器在字符编码特征向量和维度d的向量中加入单词的位置信息,用于区分不同位置的单词;解码器网络将字符编码特征向量和维度d向量转化为字符解码特征向量。softmax回归分类器对字符解码特征向量的特征序列进行分类,输出辅助编码。辅助模型结合了空间注意力机制,引入了位置编码器,为文本识别提高空间位置信息,提高了注意力机制模块对位置信息的敏感度。构建辅助模型具体包括以下步骤:
S211:构建特征编码器,以得到字符编码特征向量。
特征编码器基于ResNet31网络原则进行设计,样本数据中的图像通过特征编码器,以提取高层次的视觉特征的表示。编码器的骨干由大量的卷积层、池化层、残差模块(Residual Block)和GCNet网络构成,详细结构图如图3所示。其中所有卷积层步长和填充默认设置为1,最大池化层默认无填充。残差模块(Residual Block),如图4所示,残差模块包括两个权重层(weight layer)和两个激活函数(relu)。如果输入和输出维度不同,使用投影快捷方式,残出差模块的输入量经两个权重层(weight layer)和一个激活函数(relu)进行输出;如果输入和输出维度相同,使用恒等快捷方式,残出差模块的输入量经一个激活函数(relu)进行输出。
GCNet网络。GCNet网络是有效的注意力模块,对输入的feature map(卷积网络里面的卷积层的输出)执行三个操作:用于上下文建模的全局注意力池化;通过瓶颈转换来捕获基于渠道的依赖关系;基于元素的添加来进行特征融合。
GCNet网络输入feature map为:
其中C、W、H分别表示feature map的通道数、宽度和高度。d模型表示编码器输出的尺寸。经过GCNet网络后,最终表示为:
其中x和y分别表示全局上下文块的输入和输出,具有相同的维度。i是查询位置的索引,j和m枚举所有像素的位置。w
S212:加入位置编码(Position Embedding)。由于模型并没有捕捉顺序序列的能力,在编码词向量时引入了位置编码,位置编码会在词向量中加入了单词的位置信息,这样模型就能区分不同位置的单词。位置编码是一个长度为d
其中,pos表示单词的位置,i表示单词的维度。
S213:使用embedding层将输入字符转换成维度d向量。embedding跟传统的嵌入一样。主要功能是对上一次时间步输出的辅助编码作为解码器下一个字符的输入。
S214:构建解码网络,得到解码特征向量,应用于文本序列预测。本发明对Transformer解码器部分进行优化,将简化后的解码器应用于文本识别中的模型序列预测。Transformer的解码器部分由相同的层堆叠而成,每一层又有三个子层。第一子层是MaskedMulti-Head Attention模块,第二子层是Multi-Head Attention模块,第三子层是FeedForward模块。本发明堆叠三个解码器层,每层去除Feed Forward模块,而且每层内部参数共享,Feed Forward。假设嵌入输出序列的L
其中Att(·)表示规模点积注意力,H表示head的数量,
S215:使用softmax回归分类器对字符解码特征向量的特征序列进行分类,输出辅助编码。在每一个时间步,解码器利用注意机制提取一个字符级特征向量,然后将特征级有限元向量映射到词汇表V上的概率分布为:
其中,h∈F为解码器在每个时间步长产生的字符级特征,F表示d维字符级特征空间,w
S22:用训练集的文本图像优化辅助模型,得到辅助编码。
在训练辅助模型的过程中,为了最大限度地提高ground-truth序列在每个时间步长出现的概率,因此采用了交叉熵损失对数,交叉熵损失对数函数计算如下:
loss=-log(Pr(y|h,W))。
S23:通过局部敏感哈希算法,将辅助编码转化为局部敏感哈希编码。
利用局部敏感哈希算法产生低维二进制向量。采用步骤S21构建的辅助模型,直接实现端到端的训练。利用该模型,将输入的文本图像映射为一个字符级特征向量序列进行分类。由于分类器不依赖于时间步长,于是省略了时间步长指标,定义来表示第i个字符类的第j个特征。然后利用哈希算法将每个特征向量投影到位二进制向量如下所示:
生成所有字符的局部敏感哈希编码。利用局部敏感哈希算法将来自同一类的辅助解码特征向量生成局部敏感哈希编码。由于softmax回归分类器会迫使来自同一类的特征向量在特征空间中接近,因此经过哈希映射后,来自同一字符类的代码在Hamming空间中也会接近。基于此假设,采用多数投票算法为每个字符类生成表示代码:
其中是第i个字符类的哈希码本的第k位,是第i个类的特征向量的数量。I(.)是指示函数,输入为真时为1,输入为假时为0。最后,得到对应词汇表V的码本η=[η
步骤S3还包括:
S31:构建汉明OCR主模型。汉明OCR主模型包括特征编码器、位置编码器、汉明embedding层、解码网络、汉明分类器;主模型和辅助模型差不多,只不过将embedding层和回归分类层进行了改变。主模型包括,特征编码器、汉明embedding、解码器、汉明分类器、加入位置编码,整个模型如图2。构建汉明OCR主模型具体包括以下步骤:
S311:构建特征编码器,此步骤和步骤S311一致。
S312:加入位置编码器,此步骤和步骤S312一致。
S313:直接使用输出字符的哈希编码作为汉明embedding层的输出,在减少模型存储的同时,提高了编码效率。
S314:构建解码网络,此步骤和步骤S314一致。
S315:构建汉明分类器。对于解码器每个输出向量h
其中
S32:汉明OCR主模型初始化。从S3辅助模型中得到哈希编码直接用于主模型的embedding中,同时从辅助模型中加载编码器和解码器中的相关参数,初始化主模型。
步骤S4还包括:
训练汉明OCR主模型。为了使输出编码对应于汉明空间中的目标编码,本发明采用Hinge-loss去训练整个模型和寻找最优的矩阵W。损失函数定义如下:
其中是margin,是W的第k个投影向量,是第i类的第k位的目标代码。
解决二进制向量不存在编码中的问题。利用步骤S414的方法去计算特征向量h的二进制向量b,但是由于分类器错误可能导致二进制向量可能不存在码本中η,为了解决这个问题,采用以下公式生成预测
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。
机译: 一种基于神经网络的实时驾驶车辆自动驾驶识别方法
机译: 一种基于网络的身份识别方法
机译: 一种基于时分多址的AD HOC通信网络中动态节点位置的动态识别方法