首页> 中国专利> 基于深度学习的零件喷码字符端到端识别方法

基于深度学习的零件喷码字符端到端识别方法

摘要

本发明提供一种基于深度学习的零件喷码字符端到端识别方法,所述方法包括以下步骤:S1:采用卷积层提取目标图片的图像特征,所述目标图片为含有待识别字符的图片;S2:采用循环神经网络RNN,以所述图像特征为输入,识别图像特征的感受野信息,获得所述图像特征的特征序列;S3:利用联结主义时间分类CTC训练后的循环神经网络对所述特征序列进行学习,获得所述特征序列的预测序列;S4:根据CTC Beam Search Decoding算法,以所述预测序列为输入,获得字符序列。本申请提供的识别方法采用了卷积神经网络(CNN)、循环神经网络(RNN)和联结主义时间分类(CTC)的网络结构,实现一行喷码字符的端到端识别;本申请的识别方法不依赖于字符分割,通用性强;字符识别效率更高。

著录项

  • 公开/公告号CN112508023A

    专利类型发明专利

  • 公开/公告日2021-03-16

    原文格式PDF

  • 申请/专利权人 重庆大学;

    申请/专利号CN202011163492.8

  • 发明设计人 唐倩;郭伏雨;李代杨;罗超;

    申请日2020-10-27

  • 分类号G06K9/34(20060101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构50224 重庆谢成律师事务所;

  • 代理人谢殿武

  • 地址 400044 重庆市沙坪坝区沙正街174号

  • 入库时间 2023-06-19 10:16:30

说明书

技术领域

本发明涉及字符识别技术领域,尤其涉及一种基于深度学习的零件喷码字符 端到端识别方法。

背景技术

在汽车发动机的生产过程中,有特定工位需要检测发动机的喷码信息,传 统的人工喷码检测存在劳动强度大、用人成本高、检测精度低等缺点。目前, 对于端到端字符识别已经提出了以字符分割为基础的喷码字符的识别方法,虽 然这种识别方法虽然在识别效果上非常理想,但是严重依赖于字符分割的效果, 即字符分割效果不佳的话,会严重影响字符的识别。而字符分割通常采用的图 像处理方法,往往是针对一类图像而特殊设计的,通用性不佳。

因此,亟需一种对字符分割的依赖性要小、通信性高的端到端字符识别方 法。

发明内容

有鉴于此,本发明提供一种基于深度学习的零件喷码字符端到端识别方法, 其特征在于:所述方法包括以下步骤:

S1:采用卷积层提取目标图片的图像特征,所述目标图片为含有待识别字 符的图片;

S2:采用循环神经网络RNN,以所述图像特征为输入,识别图像特征的感 受野信息,获得所述图像特征的特征序列;

S3:利用联结主义时间分类CTC训练后的循环神经网络对所述特征序列进 行学习,获得所述特征序列的预测序列;

S4:根据CTC Beam Search Decoding算法,以所述预测序列为输入,获得 字符序列。

进一步,所述卷积层包括7个卷积层和4个池化层,其网络架构从输入到 输出依次为输入、卷积1、池化1、卷积2、池化2、卷积3、卷积4、池化3、 卷积5、卷积6、池化4、卷积7;

其中,卷积1、卷积2、卷积3、卷积4、卷积5和卷积6的卷积核大小均 为(3,3)、步长均为1和周边填充系数均为1,卷积7的卷积核大小为(2, 2)、步长为1和周边填充系数为0;

池化1和池化2的系数为(2,2),池化3和池化4的系数为(2,1)。

进一步,所述步骤S3包括如下步骤:

S31:联结主义时间分类CTC定义CTC Loss损失函数,构建预测的字符序 列和训练标签之间的多对一映射;

S32:联结主义时间分类CTC采用了动态规划算法计算CTC Loss,实现循 环神经网络RNN端到端训练。

进一步,所述CTC Loss损失函数采用如下方法确定:

其中,L表示CTC Loss损失函数,x表示输入特征序列,Z表示预测结果, S表示训练数据集,π

所述动态规划算法计算CTC Loss采用如下方法确定:

其中,x表示输入特征序列,Z表示图像的标签,S表示训练数据集,

进一步,所述前向传播时在时刻t经过节点s的全部子路径的概率总和α

基于动态规划算法可以得到:

初始情况为:

其中,α

当s为空字符或s表示的字符与s-2表示的字符一样时有:

其中,α

其他情况为:

其中,α

由此,可以得到前向传播情况下,CTC Loss表示为:

-ln(p(z|x))=-ln(α

其中,x表示输入特征序列,Z表示图像的标签,s表示节点,s

进一步,所述后向传播时在时刻t经过节点s的全部子路径的概率总和 β

基于动态规划算法可以得到:

初始情况为:

其中,β

当s为空字符或s表示的字符与s+2表示的字符一样时有:

其中,β

其他情况为:

其中,

由此,可以得到后向传播情况下,CTC Loss表示为:

-ln(p(z|x))=-ln(β

其中,x表示输入特征序列,Z表示图像的标签,s表示节点,β

本发明的有益技术效果:本申请提供的识别方法采用了卷积神经网络 (CNN)、循环神经网络(RNN)和联结主义时间分类(CTC)的网络结构,实现 一行喷码字符的端到端识别;本申请的识别方法不依赖于字符分割,通用性强; 字符识别效率更高。

附图说明

下面结合附图和实施例对本发明作进一步描述:

图1是本发明的卷积网络结构图。

图2是本发明的特征序列与图像对应关系图。

图3是本发明的标准循环神经网络结构图。

图4是本发明的LSTM网络结构图。

图5是本发明的双向LSTM结构图。

图6是本发明的理想情况下映射关系图。

图7是本发明的训练过程示例图。

图8是本发明的映射关系示例图。

图9是本发明的概率矩阵图。

图10是本发明的前向传播路径图。

图11是本发明的后向传播路径图。

图12是本发明的概率矩阵简单示例图。

图13是本发明的穷举法概率图。

图14是本发明的Beam Search算法概率图。

具体实施方式

以下结合说明书附图对本发明做出进一步的说明:

本发明提供的一种基于深度学习的零件喷码字符端到端识别方法,其特征 在于:所述方法包括以下步骤:

S1:采用卷积层提取目标图片的图像特征,所述目标图片为含有待识别字 符的图片;

S2:采用循环神经网络RNN,以所述图像特征为输入,识别图像特征的感 受野信息,获得所述图像特征的特征序列;

S3:利用联结主义时间分类CTC训练后的循环神经网络对所述特征序列进 行学习,获得所述特征序列的预测序列;

S4:根据CTC Beam Search Decoding算法,以所述预测序列为输入,获得 字符序列。

在步骤S2中,循环层,通过卷积层得到图像的特征序列后,需要根据这些 特征序列来对各个感受野信息进行识别。这里必须考虑识别对象的上下文信息, 属于时序数据的识别问题。由于卷积神经网络没有考虑时序问题,所以解决这 一类识别问题通常采用循环神经网络(RNN)来实现,标准的RNN结构及其展开 如图3所示。

图中,x

z=tanh(W(x

z

z

z

其中,z表示记忆单元,z

相较于标准RNN网络,LSTM增加了一个遗忘门以解决梯度爆炸或梯度消失 带来的无法联系更远上下文的问题。LSTM网络的内部结构如图4所示。

从图中可以看出,相较于标准RNN的两个参数(x

c

h

y

其中,c

LSTM网络通过z

图4中表示的是单向LSTM网络结构,即只是从1到t的单向传递。这意味 着每个时刻的输出只和前面的识别结果有关,而和后面的识别结果没有关系。 而在本文要解决的字符识别问题中,两个方向的上下文信息都是有用且互补的。 所以这里采用双向LSTM网络(BiLSTM),即将两个LSTM网络,一个向前一个 向后地组合在一起,达到同时考虑前后状态的目的。BiLSTM网络结构如图5所 示。

图5中,x

BiLSTM网络会输出一个c×T的概率矩阵,其中c表示预测的类别(class) 个数,对于本文的研究对象喷码字符而言,包括类别为0-9的10种数字、A-Z 的26类大写英文字母和1类特殊字符,另外添加一个相当于背景类别的空格类, 一共有38类字符;T为特征序列的个数,本文中为25。最终输出的概率矩阵表 示为y=(y

对于循环神经网络而言,最理想的情况就是:训练时,训练标签和特征序 列一一对应,特征序列和每个字符的图像一一对应,即特征序列和图像之间的 映射关系已经对应地标注好了,如图6所示。这时由于特征序列和图像之间是 一一对应的,所以神经网络模型在训练时可以直接根据特征序列和训练标签之 间的差异来定义模型的损失函数,可以直接使用传统的RNN模型的训练方式, 完成端到端的模型训练。

然而,由于实际现实中的字符图像和训练标签都是不定长的,其特征序列 和图像之间的映射关系通常如图2所示,即特征序列完全无法和字符图像一一 对应。由于采集的图像数据中字符大小、单个字符宽度、字符个数都是不确定 的,难以通过设置参数的方法让特征序列和字符图像一一对应。而通过人工手 段,可以人为地将图像进行分割并单独进行标注。但这种方法的人力成本和时 间成本极高,难以制造大样本数据集,不具有实用价值。在这种情况下,传统 的RNN训练和预测方法不再适用。

上述技术方案本采用了卷积神经网络(CNN)、循环神经网络(RNN)和联 结主义时间分类(CTC)的网络结构,实现一行喷码字符的端到端识别;本申请 的识别方法不依赖于字符分割,通用性强;字符识别效率更高。

在本实施例中,所述卷积层包括7个卷积层和4个池化层,其网络架构从 输入到输出依次为输入、卷积1、池化1、卷积2、池化2、卷积3、卷积4、池 化3、卷积5、卷积6、池化4、卷积7;

其中,卷积1、卷积2、卷积3、卷积4、卷积5和卷积6的卷积核大小均 为(3,3)、步长均为1和周边填充系数均为1,卷积7的卷积核大小为(2, 2)、步长为1和周边填充系数为0;

池化1和池化2的系数为(2,2),池化3和池化4的系数为(2,1)。

卷积层,顾名思义该层主要由卷积操作构成,其主要功能是提取图像特征, 为后续的循环层提供图像的特征序列。该层的网络结构如图1所示。

其中,卷积神经网络包含卷积层的输入和输出,其输入为高度为32、宽度 为100的图像;输出为宽度为25、高度为1的512层特征图。这就是图像的特 征序列,将作为输入进入循环层。图像中每一个感受野的图像特征信息都记录 在对应的特征序列中,以供循环层识别,图像和特征序列的映射关系如8所示。 特征序列的高度为1,所以可以表示为x=(x

在图1中,一共有7次卷积操作。前6次卷积核大小均为(3,3),步长均 为1,周边填充系数(padding size)均为1,这种情况下的特征图尺寸的高度 和宽度不会因为卷积操作而发生变化。最后一次卷积操作其卷积核大小为 (2,2),步长为1,周边填充系数(paddingsize)为0,这使得特征图的高 度由2变为了1。激活函数仍选用RReLU。

在图1中,一共有4次池化操作。前2次的系数为(2,2),即高宽均缩小 为原来的一半。后两次系数为(2,1),即只将高度缩为一半,宽度不变。

在本实施例中,所述步骤S3包括如下步骤:

S31:联结主义时间分类CTC定义CTC Loss损失函数,构建预测的字符序 列和训练标签之间的多对一映射;

S32:联结主义时间分类CTC采用了动态规划算法计算CTC Loss,实现循 环神经网络RNN端到端训练。

在本实施例中,所述CTC Loss损失函数采用如下方法确定:

其中,L表示CTC Loss损失函数,x表示输入特征序列,Z表示预测结果, S表示训练数据集,π

所述动态规划算法计算CTC Loss采用如下方法确定:

其中,x表示输入特征序列,Z表示图像的标签,S表示训练数据集,

联结主义时间分类(CTC)是一种RNN的端到端的训练和预测方法。通过 CTC,RNN无需事先对特征序列和图像信息之间的映射关系进行标注,就可以直 接对特征序列进行学习。在神经网络训练时,它定义了CTC Loss损失函数,实 现了预测的字符序列和训练标签之间的多对一映射;同时它采用了动态规划算 法计算CTC Loss,实现RNN端到端训练。

以一段喷码图像为例,如图7示,通过构建CTC Loss损失函数来分析循环 神经网络的训练过程。

其中,I表示输入的图像,x是该图像通过卷积神经网络得到的特征序列, w表示预测的字符序列,z为图像的标签。根据上一小节的定义,标签为 L={0,1,2,3,...,X,Y,Z,-}共37类,另外扩展一个表示背景类别的标签 L′={0,1,2,3,...,X,Y,Z,-,_},扩展后共38类。

定义一个多对一的映射函数Β:(L′)

神经网络训练,就是已知一组图像和它们对应的标签,对神经网络中的参 数进行计算和优化,要使得输入特征序列为x时,预测结果为标签z的概率最大。 用数学表达式表示:

h(x)=argmaxp(z|x)

这里的p(z|x)表示所有识别结果为z的预测序列π的概率之和。

即当π∈(L′)

其中,π

计算该损失函数的关键在于计算p(z|x),由于直接暴力计算p(z|x)的复杂 度非常高,采用动态规划算法完成计算。

根据RNN网络求得的概率矩阵y,可以得到图9。

根据前向传播的约束条件:转换只能为右下方向,禁止转向其它方向;相 同字符之间至少有一个空字符;非空字符不能跳过;起点为前两个字符;终点 必须为最后两个字符。可以遍历所有映射为“HY2”的合法路径,得到时序T=5, 标签z为“HY2”的全部路径如图10所示。

所述前向传播时在时刻t经过节点s的全部子路径的概率总和α

基于动态规划算法可以得到:

初始情况为:

其中,α

当s为空字符或s表示的字符与s-2表示的字符一样时有:

其中,α

其他情况为:

其中,α

由此,可以得到前向传播情况下,CTC Loss表示为:

-ln(p(z|x))=-ln(α

其中,x表示输入特征序列,Z表示图像的标签,s表示节点,s

所述后向传播时在时刻t经过节点s的全部子路径的概率总和β

基于动态规划算法可以得到:

初始情况为:

其中,β

当s为空字符或s表示的字符与s+2表示的字符一样时有:

其中,β

其他情况为:

其中,β

由此,可以得到后向传播情况下,CTC Loss表示为:

-ln(p(z|x))=-ln(β

其中,x表示输入特征序列,Z表示图像的标签,s表示节点,β

至此,便完成了循环神经网络端到端训练的损失函数设计与计算。以该损 失函数值最小为优化目标,对神经网络参数进行优化,就实现了直接对特征序 列进行端到端学习训练的目的。

通过RNN的端到端训练,可以得到最优化的网络参数,从而使得根据输入 特征序列x求得的概率矩阵y最为合理。转录层的作用就是根据求得的概率矩阵y推断出最可能的字符序列l,一般采用CTC Beam Search Decoding算法实现。 下面将用一个简单的概率矩阵为例,来展示具体的转录算法。

如图12所示,,这是一个时序为3,标签为{a,b,-}的概率矩阵(“-”表 示空白)。值得注意的是,这里的概率矩阵是真实情况下的概率矩阵,之前网 络训练时的概率矩阵左侧标签进行了排序是为了更好地说明字符序列的传播路 径。该概率矩阵最终得到的序列的可能情况有:“a”、“b”、“aa”、“bb”、 “ab”、“ba”、“aba”、“bab”、“-”(空白)。穷举法计算概率如图 13所示。

图中,黑色概率代表各自对应字符出现的概率,红色表示预测序列不同但 转录结果相同的字符序列概率总和。如:“aaa”、“aa-”、“-aa”、“a--”、 “-a-”、“--a”的转录结果均为“a”,其概率和为0.297。可以看出最终转 录结果概率最高的是“a”。这种穷举算法虽然能得到最优解,但是时间复杂度 太大,对于类别更多的情况,运算量过大。

CTC一般采用Beam Search的方法,设置一个参数W为Beam Width,每一 步搜索只选取概率最大的W个节点进行扩展,以减少计算量。如设置W=3,Beam Search算法的概率图如图14所示。

图中,每一阶段只选取概率最大得3个节点,见图中的黄色方框。然后只 对这些节点进行进一步的扩展。在最后一个阶段对具有同一转录结果的不同字 符序列进行概率合并,虚线框表示被合并的项,红色表示合并的转录结果及其 总概率。可以看出最终转录结果概率最高的仍然是“a”。

Beam Search算法使每一步搜索只扩展W个节点,而不是穷举算法的指数 增长,大大降低了搜索的复杂度,计算量得到了明显的减少。而计算结果虽然 不一定是最优解,但是在实际应用中能够在限定时间的条件下找到近似解也是 可以接受的。

通过CTC Beam Search Decoding算法,循环神经网络就可以根据概率矩阵 y在较短的时间内找到对应字符序列的近似解甚至最优解,从而完成从概率矩 阵到字符序列的转录.

最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管 参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解, 可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的 宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号