CN109902751A - 一种融合卷积神经网络和半字模板匹配的表盘数字字符识别方法 - Google Patents
一种融合卷积神经网络和半字模板匹配的表盘数字字符识别方法 Download PDFInfo
- Publication number
- CN109902751A CN109902751A CN201910160157.3A CN201910160157A CN109902751A CN 109902751 A CN109902751 A CN 109902751A CN 201910160157 A CN201910160157 A CN 201910160157A CN 109902751 A CN109902751 A CN 109902751A
- Authority
- CN
- China
- Prior art keywords
- word
- value
- image
- label
- convolutional neural
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Image Analysis (AREA)
- Character Discrimination (AREA)
Abstract
本发明涉及一种融合卷积神经网络和半字模板匹配的表盘数字字符识别方法,首先获取带有全字半字标签的分割好的灰度图,接着将标签筛选分类,若标签为0则进行半字识别,若标签为1则进行全字识别;最后按照图像输入的顺序,依次输出灰度图的识别结果。本发明识别正确率高,为表盘数字字符半字全字的分开识别提供了新思路,并融合卷积神经网络和半字模板匹配,可广泛应用于需要进行数字字符识别的领域。
Description
技术领域
本发明涉及图像处理与识别中的表盘数字字符识别领域,特别是一种融合卷积神经网络和半字模板匹配的表盘数字字符识别方法。
背景技术
由于现阶段大多数表盘是基于齿轮的滚动型表盘,比如水表、电表、时钟等等,由于齿轮带动常会出现进位不完全,即低位表盘框同时出现相邻两个数字的上下各一半的情况,而高位为整个数字都在表盘框内,这就将表盘里的数字字符分为两个类别,我们称之为全字和半字。正确识别是表盘数字字符识别的核心,由于出现两种数字字符类别,并且全字半字的属性各不相同,若用同一种方法识别则整体识别效果不是特别好。
发明内容
有鉴于此,本发明的目的是提出一种融合卷积神经网络和半字模板匹配的表盘数字字符识别方法,识别正确率高,为表盘数字字符半字全字的分开识别提供了新思路,并融合卷积神经网络和半字模板匹配,可广泛应用于需要进行数字字符识别的领域。
本发明采用以下方案实现:一种融合卷积神经网络和半字模板匹配的表盘数字字符识别方法,具体包括以下步骤:
步骤S1:获取带有全字半字标签的分割好的灰度图,并输入到步骤S2中;其中,标签0代表半字,标签1代表全字;其中输入图像的大小均为m×n,其中,m是所述输入图像的行数,n是所示输入图像的列数;
步骤S2:将标签筛选分类,若标签为0则进入步骤S4,若标签为1则进入步骤S3;
步骤S3:训练一个卷积神经网络,将标签为1的全字灰度图输入到训练好的神经网络中识别,得到全字识别结果;
步骤S4:将标签为0的半字灰度图二值化后,保留两个最大连通域,得到处理后的待识别半字二值图像M2;
步骤S5:将步骤S4得到的处理后的图像与半字模板进行基于像素的模板匹配,得到半字识别结果;
步骤S6:按照步骤S1中图像输入的顺序,依次输出灰度图的识别结果。
进一步地,步骤S3具体包括以下步骤:
步骤S31:输入测试集图片和标签以及训练集图片和标签,其中全字共有0至9共10个字符,用10个独热码表示;
步骤S32:用TensorFlow训练一个前向传输的卷积神经网络;其中,该卷积神经网络的结构为“卷积层1-池化层1-卷积层2-池化层2-……-卷积层x-池化层x-全连接层”;
步骤S33:保存该卷积神经网络的各项权重值;
步骤S34:将输入的全字灰度图输入到训练好的卷积神经网络中进行自动识别,得到识别结果。
较佳的,所述卷积神经网络的架构如下:
输入层:由于输入的是一个m×n的灰度图像,其在二维空间上的维度是m×n。一个像素点相当于一个神经元,故输入层的维度就是三维[32,24,1];
卷积层1:若卷积层的尺寸是(2m1+1)×(2m1+1),卷积深度为n1,设定步长为s1。(卷积前先将原始输入图像的上下左右m1以像素0填充)相当于用n1个(2m1+1)×(2m1+1)的滑动窗口以步长s1与输入图像在该窗口下的像素相卷积,得到的图像大小为[m,n,1];
池化层1:设定池化步长为s1、池化尺寸为m2×m2、池化方式:最大池化或平均池化。若采用最大池化,则以步长s1在尺寸为m2×m2的滑动窗口扫描卷积层1得到的图像像素,存储该窗口下的最大值;若为平均池化,则以步长s1在尺寸为m2×m2的滑动窗口扫描卷积层1得到的图像像素,存储该窗口下的像素平均值;故该层池化后得到的图像大小为
其余卷积层与池化层与上述所述原理一致,设最终得到图像大小为[x1,y1,z1];
全连接层1:先将得到的图像[x1,y1,z1]平坦化成[1,x1×y1×z1],即x1×y1×z1个神经元与全连接层1的m×n个神经元全连接;
全连接层2(即输出层):全字共有10个标签,用独热码表示,全连接层1的m×n个神经元与全连接层2的10个神经元相连接,输出应为1×10大小的向量;
步骤S33:保存该卷积神经网络的各项权重值;
步骤S34:将输入的全字灰度图输入到训练好的卷积神经网络中进行自动识别,得到识别结果。
进一步地,步骤S4具体包括以下步骤:
步骤S41:将半字灰度图M进行二值化处理,得到初步待识别半字二值化图像M1;
步骤S42:将M1用八领域的方式找出连通域,并以自然数(1、2、3、4......)标记连通域;
步骤S43:计算步骤S42标记的相同自然数的个数,比较得到两个最大个数的自然数,将这两个自然数所在的连通域的像素灰度值改为1,其余位置的像素灰度值改为0,得到保留最大连通域后的待识别半字二值化图像M2(默认在二值化图像中,值为0表示白色像素,值为1表示黑色像素)。
进一步地,步骤S41具体包括以下步骤:
步骤S411:(在灰度图中,将对识别有用的信息称为目标,如数字区域;将对识别无用的信息称为背景,如数字像素点以外的白色区域)设定一个t×t大小的候选框作为局部二值化每次选取像素的滑动窗口,设定两个初始阈值:T、S;其中T为当窗口只存在背景或目标时判断是否是目标的阈值;S为判断该滑动窗口中是否背景和目标同时存在的阈值;记f(x,y)为图像M在第x行y列的像素灰度值(以图像M左上角为原点);记f′(x,y)为经过局部二值化处理后的图像在第x行y列的像素的值;
步骤S412:用t×t的候选框以步长1遍历所述灰度图像M;令T2(x,y)=max-min,其中,max为灰度图像在该候选框范围下的像素点灰度值最大值,min为灰度图像在该候选框范围下的像素点灰度值最小值,T1(x,y)表示该候选框内灰度值最大值与灰度值最小值的均值,T2(x,y)表示该候选框内灰度值最大值与灰度值最小值的差值;
步骤S413:比较T2(x,y)与S的大小;若T2(x,y)>S,则说明候选框中灰色像素值波动范围大,目标和背景同时存在,则将灰度图像上该像素点的灰度值f(x,y)与T1(x,y)对比,若f(x,y)>T1(x,y),则令f′(x,y)=1;若f(x,y)<T1(x,y),则令f′(x,y)=0;若T2(x,y)<S,则说明候选框中灰色像素值波动范围小,只存在背景或只存在目标,则将所述灰度图像上该像素点的灰度值f(x,y)与阈值T值相比;若f(x,y)>T,则f′(x,y)=1;若f(x,y)<T,则f′(x,y)=0,得到初步待识别半字二值化图像M1。
较佳的,步骤S411中,两个初始阈值的设置为:S=15;T为0-255灰度值的中点。
进一步地,步骤S5具体包括以下步骤:
步骤S51:制作半字模板,个数为z;
步骤S52:将待识别半字二值图像M2中各个像素点的值按照其各自所在的位置构成一个大小为m×n的矩阵A,其中m为图像的行数,n为图像的列数;
步骤S53:将半字模板二值图中各个像素点的值按照其各自所在的位置构成一个m×n的矩阵C;
步骤S54:将所述矩阵A和所述矩阵C两个矩阵逐点进行相减取绝对值操作,然后将所有的值相加,记为h;
步骤S55:重复执行步骤S53-S54z次,找到最小的h值hmin,即半字模板与待识别半字的最小汉明距离,该距离下的半字模板的标签即为待识别半字的识别结果。
进一步地,步骤S51具体包括以下步骤:
步骤S511:根据表盘真实字符图像构造一张以0、1、2、3、4、5、6、7、8、9、0为顺序上下排列的图像;
步骤S512:以一个大小为m×n的窗口对步骤S511得到的图像进行步长为1的上下移动裁剪并保存,同时将其中全字的模板剔除,得到z张半字模板。
与现有技术相比,本发明有以下有益效果:本发明将半字与全字分开识别,将全字放入训练好的卷积神经网络中识别,将半字放入半字模板中进行模板匹配,二者相结合,最后按顺序输出整个表盘的识别结果,从而提高表盘数字字符的识别正确率,为表盘数字字符半字全字的分开识别提供了新思路,并融合卷积神经网络和半字模板匹配,可广泛应用于需要进行数字字符识别的领域。
附图说明
图1为本发明实施例的原理框图。
图2为本发明实施例的输入的五张带有全字半字标签的灰度图。
图3为本发明实施例的步骤S3卷积神经网络全字识别的结构框图。
图4为本发明实施例的步骤S31训练集/测试集标签的独热码表示效果图。
图5为本发明实施例的步骤S31部分训练集图片效果图。
图6为本发明实施例的步骤S32采用的卷积神经网络的结构框图。
图7为本发明实施例中步骤S32训练卷积神经网络的过程图。
图8为本发明实施例中图2中的(5)经过二值化后的效果图。
图9为本发明实施例中图8标记连通域的效果图。
图10为本发明实施例中图8保留两个最大连通区域后的效果图。
图11为本发明实施例中步骤S41局部二值化的结构框图。
图12为本发明实施例中步骤S55半字模板匹配中与模板最相似的模板二值图。
图13为本发明实施例中步骤S12部分半字模板效果图。
图14为本发明实施例中最后的输出结果效果图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
本实施例定义全字为整个数字字符图像都完整地在表盘内的数字字符,半字定义为表盘范围内出现一个数字的下半部分和另一位相邻数字的半部分的数字字符,由于在一副完整的表盘内出现两种不同类型的数字,所以将其分开识别,分别处理,可以大大提高数字字符的识别正确率。
如图1所示,本实施例提供了一种融合卷积神经网络和半字模板匹配的表盘数字字符识别方法,具体包括以下步骤:
步骤S1:获取带有全字半字标签的分割好的灰度图,并输入到步骤S2中;其中,标签0代表半字,标签1代表全字;其中输入图像的大小均为m×n,其中,m是所述输入图像的行数,n是所示输入图像的列数;
步骤S2:将标签筛选分类,若标签为0则进入步骤S4,若标签为1则进入步骤S3;
步骤S3:训练一个卷积神经网络,将标签为1的全字灰度图输入到训练好的神经网络中识别,得到全字识别结果;
步骤S4:将标签为0的半字灰度图二值化后,保留两个最大连通域,得到处理后的待识别半字二值图像M2;
步骤S5:将步骤S4得到的处理后的图像与半字模板进行基于像素的模板匹配,得到半字识别结果;
步骤S6:按照步骤S1中图像输入的顺序,依次输出灰度图的识别结果。
在本实施例中,步骤S3具体包括以下步骤:
步骤S31:输入测试集图片和标签以及训练集图片和标签,其中全字共有0至9共10个字符,用10个独热码表示;
步骤S32:用TensorFlow训练一个前向传输的卷积神经网络;其中,该卷积神经网络的结构为“卷积层1-池化层1-卷积层2-池化层2-……-卷积层x-池化层x-全连接层”;
步骤S33:保存该卷积神经网络的各项权重值;
步骤S34:将输入的全字灰度图输入到训练好的卷积神经网络中进行自动识别,得到识别结果。
较佳的,在本实施例中,所述卷积神经网络的架构如下:
输入层:由于输入的是一个m×n的灰度图像,其在二维空间上的维度是m×n。一个像素点相当于一个神经元,故输入层的维度就是三维[32,24,1];
卷积层1:若卷积层的尺寸是(2m1+1)×(2m1+1),卷积深度为n1,设定步长为s1。(卷积前先将原始输入图像的上下左右m1以像素0填充)相当于用n1个(2m1+1)×(2m1+1)的滑动窗口以步长s1与输入图像在该窗口下的像素相卷积,得到的图像大小为[m,n,1];
池化层1:设定池化步长为s1、池化尺寸为m2×m2、池化方式:最大池化或平均池化。若采用最大池化,则以步长s1在尺寸为m2×m2的滑动窗口扫描卷积层1得到的图像像素,存储该窗口下的最大值;若为平均池化,则以步长s1在尺寸为m2×m2的滑动窗口扫描卷积层1得到的图像像素,存储该窗口下的像素平均值;故该层池化后得到的图像大小为
其余卷积层与池化层与上述所述原理一致,设最终得到图像大小为[x1,y1,z1];
全连接层1:先将得到的图像[x1,y1,z1]平坦化成[1,x1×y1×z1],即x1×y1×z1个神经元与全连接层1的m×n个神经元全连接;
全连接层2(即输出层):全字共有10个标签,用独热码表示,全连接层1的m×n个神经元与全连接层2的10个神经元相连接,输出应为1×10大小的向量;
步骤S33:保存该卷积神经网络的各项权重值;
步骤S34:将输入的全字灰度图输入到训练好的卷积神经网络中进行自动识别,得到识别结果。
在本实施例中,步骤S4具体包括以下步骤:
步骤S41:将半字灰度图M进行二值化处理,得到初步待识别半字二值化图像M1;
步骤S42:将M1用八领域的方式找出连通域,并以自然数(1、2、3、4......)标记连通域;
步骤S43:计算步骤S42标记的相同自然数的个数,比较得到两个最大个数的自然数,将这两个自然数所在的连通域的像素灰度值改为1,其余位置的像素灰度值改为0,得到保留最大连通域后的待识别半字二值化图像M2(默认在二值化图像中,值为0表示白色像素,值为1表示黑色像素)。
在本实施例中,步骤S41具体包括以下步骤:
步骤S411:(在灰度图中,将对识别有用的信息称为目标,如数字区域;将对识别无用的信息称为背景,如数字像素点以外的白色区域)设定一个t×t大小的候选框作为局部二值化每次选取像素的滑动窗口,设定两个初始阈值:T、S;其中T为当窗口只存在背景或目标时判断是否是目标的阈值;S为判断该滑动窗口中是否背景和目标同时存在的阈值;记f(x,y)为图像M在第x行y列的像素灰度值(以图像M左上角为原点);记f′(x,y)为经过局部二值化处理后的图像在第x行y列的像素的值;
步骤S412:用t×t的候选框以步长1遍历所述灰度图像M;令T2(x,y)=max-min,其中,max为灰度图像在该候选框范围下的像素点灰度值最大值,min为灰度图像在该候选框范围下的像素点灰度值最小值,T1(x,y)表示该候选框内灰度值最大值与灰度值最小值的均值,T2(x,y)表示该候选框内灰度值最大值与灰度值最小值的差值;
步骤S413:比较T2(x,y)与S的大小;若T2(x,y)>S,则说明候选框中灰色像素值波动范围大,目标和背景同时存在,则将灰度图像上该像素点的灰度值f(x,y)与T1(x,y)对比,若f(x,y)>T1(x,y),则令f′(x,y)=1;若f(x,y)<T1(x,y),则令f′(x,y)=0;若T2(x,y)<S,则说明候选框中灰色像素值波动范围小,只存在背景或只存在目标,则将所述灰度图像上该像素点的灰度值f(x,y)与阈值T值相比;若f(x,y)>T,则f′(x,y)=1;若f(x,y)<T,则f′(x,y)=0,得到初步待识别半字二值化图像M1。
较佳的,在本实施例中,步骤S411中,两个初始阈值的设置为:S=15;T为0-255灰度值的中点。
在本实施例中,步骤S5具体包括以下步骤:
步骤S51:制作半字模板,个数为z;
步骤S52:将待识别半字二值图像M2中各个像素点的值按照其各自所在的位置构成一个大小为m×n的矩阵A,其中m为图像的行数,n为图像的列数;
步骤S53:将半字模板二值图中各个像素点的值按照其各自所在的位置构成一个m×n的矩阵C;
步骤S54:将所述矩阵A和所述矩阵C两个矩阵逐点进行相减取绝对值操作,然后将所有的值相加,记为h;
步骤S55:重复执行步骤S53-S54z次,找到最小的h值hmin,即半字模板与待识别半字的最小汉明距离,该距离下的半字模板的标签即为待识别半字的识别结果。
在本实施例中,步骤S51具体包括以下步骤:
步骤S511:根据表盘真实字符图像构造一张以0、1、2、3、4、5、6、7、8、9、0为顺序上下排列的图像;
步骤S512:以一个大小为m×n的窗口对步骤S511得到的图像进行步长为1的上下移动裁剪并保存,同时将其中全字的模板剔除,得到z张半字模板。
较佳的,本实施例是将所述输入的带有全字半字标签的灰度图根据标签属性进行分开识别,若为全字则用卷积神经网络进行识别,若为半字则通过模板匹配进行识别:全字一般位于表盘的高位,若识别错误误差将会极其大,模板匹配具有局限性,对于平移或旋转的图像的识别准确率较低,所以应用识别准确率更高且能适应各种情况的卷积神经网络,提高准确性和鲁棒性;半字的情况较全字更为复杂,若要用卷积神经卷积网络则所需的样本较多,考虑实际水表采集困难;
特备的,本实施例包括图像二值化、卷积神经网络全字识别、局部二值化、保留两个最大连通域、模板匹配半字识别这几个步骤;
其中,卷积神经网络全字识别步骤是通过构建一个“卷积层-池化层-卷积层-池化层-……-卷积层-池化层-全连接层”的卷积神经网络对带有标签训练集和数据集进行训练,得到该网络的相关参数并保存,再将待识别的全字灰度图输入到该网络中,就能得到识别结果;
局部二值化步骤采用k×k的候选框在灰度图中计算出最大值最小值的均值差值,通过最大值-最小值的差值与初始值S的比较判断该候选框像素值是否相差太大,即是否背景和目标同时存在,进而确定改点的阈值是最大值-最小值的一半,并利用最大值与最小值的差值判断窗口内的像素点是否处于同一背景\目标下,进而选择改像素点的阈值是最大值和最小值的均值还是初始值T,二值化使得图像在视觉上呈现黑或白的效果,可从整张半字图像中分离背景和目标;
保留两个最大连通域步骤是通过八领域法将待识别的半字二值图的连通域以相同自然数标记出来,然后通过计算自然数的个数来确定两个最大连通域的位置,将该位置下的像素值改为1,其他位置的像素值改为0,根据半字在半字图像中的连通域最大这一特性来筛选出要进行识别的半字内容,更好地排除一些小连通域的杂质干扰,为后面的识别提供了良好的基础。
模板匹配半字识别步骤是将已经保留两个最大连通域的待识别半字二值图与半字模板对应像素点一一相减取绝对值后相加,得到待识别半字与模板的距离,找到最小的距离即最相似的模板,该模板的标签即最终识别结果。
较佳的,本实施例结合说明书附图对以下步骤进行进一步描述。
步骤S1:如图2所示,获取五张带有全字半字标签的分割好的二值图,并输入到步骤S2中。其中,标签0代表半字,标签1代表全字。所述输入图像的大小均为32×24,其中,32是所述输入图像的行数,24是所示输入图像的列数。
步骤S2具体为:
步骤S2:将标签筛选分类,标签0的半字灰度图进入步骤S4,标签为1的全字灰度图进入步骤S3,根据图2所示,将图2中的(1)(2)(3)(4)四张全字灰度图输入到步骤S3处理,将图2中的(5)的半字灰度图输入到步骤S4处理。
如图3所示,在本实施例中,所述步骤S3具体包括以下步骤:
步骤S31:输入测试集图片和标签以及训练集图片和标签,图片和标签一一对应,且将标签用独热码表示,即每一个数据所对应的标签为一个向量,全字的标签为0,1,2,3,4,5,6,7,8,9,如图4所示,在本实施例中,测试集图片和训练集图片均为106040张,部分训练集图片如图5所示;
步骤S32:用TensorFlow训练一个结构为“卷积层1-池化层1-卷积层2-池化层2-全连接层”的前向传输的卷积神经网络,如图6所示。
所述步骤S32所涉及的卷积神经网络架构如下:
输入层:由于输入的是一个32×24的灰度图像,其在二维空间的维度是32×24。一个像素点相当于一个神经元,故输入层的维度就是三维[32,24,1];
卷积层1:本实施例中第一个卷积层的尺寸是5×5,卷积深度为32,设定步长为2(卷积前先将原始输入图像的上下左右2行以像素0填充)相当于用32个5×5的滑动窗口以步长2与输入图像在该窗口下的像素相卷积,得到的图像大小为[32,24,32];
池化层1:本实施例中设定第一个池化步长为2,池化尺寸为2×2,池化方式为最大池化,即以步长2在尺寸为2×2的滑动窗口扫描卷积层1得到的图像像素,存储该窗口下的最大值,故该层池化后得到的的图像大小为[16,12,32];
卷积层2:本实施例中第二个卷积层的尺寸是5×5,卷积深度为64,设定步长为2(卷积前先将池化层1得到的图像的上下左右2行以像素0填充)相当于用64个5×5的滑动窗口以步长2与输入图像在该窗口下的像素相卷积,得到的图像大小为[16,12,64];
池化层2:本实施例中设定第一个池化步长为2,池化尺寸为2×2,池化方式为最大池化,即以步长2在尺寸为2×2的滑动窗口扫描卷积层2得到的图像像素,存储该窗口下的最大值,故改层池化后得到的图像大小为[8,6,32];
全连接层1:本实施例中先将池化层2得到的图像[8,6,32]平坦化成[1,8×6×32],即1536个神经元与32×24=768个神经元全连接;
全连接层2(即输出层):在本实施例中全字共有10个标签,用独热码表示,全连接层1的768个神经元与全连接层2的10个神经元相连接,输出应为1×10大小的向量;
在本实施例中,采用的学习率为0.001,丢弃率为0.5,训练过程如图7所示。
步骤S33:保存该卷积神经网络的各项权重值;
步骤S34:将输入的全字二值图中输入到训练好的卷积神经网络中进行识别,得到图2中的(1)(2)(3)(4)的识别结果:9、9、5、7。
在本实施例中,所述步骤S4具体包括以下步骤:
步骤S41:将所述半字灰度图M,即图2中的(5)进行二值化处理,得到图像待识别半字二值化图像M1,如图8所示,大小为32×24;
步骤S42:将步骤S41得到的用M1八领域的方式找出连通域,并以自然数1、2、3、4、6、7、8标记连通域,如图9所示,大小为32×24;
步骤S43:计算步骤S42标记的相同自然数的个数,自然数1、2、3、4、5、6、7、8的个数分别30、17、16、100、99、25、28、18,个数最多的自然数为4、5,将该两个自然数所在的连通域的像素改为1,其余位置的像素改为0,得到所述图像M2,如图10所示,大小为32×24;
如图11所示,在本实施例中,所述步骤S41具体包括以下步骤:
步骤S411:(在灰度图中,将对识别有用的信息称为目标,如数字区域;将对识别无用的信息称为背景,如数字像素点以外的白色区域)设定一个7×7大小的候选框作为局部二值化每次选取像素的滑动窗口,设定两个初始阈值:S=15。T为0-255灰度值的中点,用来作为当窗口只存在背景或目标时判断是否是目标的阈值;S为判断该滑动窗口中是否背景和目标同时存在的阈值,记f(x,y)为图像M在第x行y列的像素灰度值(以图像M左上角为原点)。记f′(x,y)为经过局部二值化处理后的图像M1在第x行y列的像素后的值。
步骤S412:用7×7的候选框以步长为1遍历所述灰度图像M;令T2(x,y)=max-min,其中,max为灰度图像在该滑动窗口范围下的像素点灰度值最大值,min为灰度图像在该候选框范围下的像素点灰度值最小值,T1表示该候选框内灰度值最大值与灰度值最小值的均值,T2表示该候选框内灰度值最大值与灰度值最小值的差值;
步骤S413:比较T2与S的大小;若T2(x,y)>S,则说明候选框中灰色像素值波动范围大,目标和背景同时存在,则将灰度图像上该像素点的灰度值f(x,y)与T1(x,y)对比,若f(x,y)>T1(x,y),则f′(x,y)=1;若f(x,y)<T1(x,y),则f′(x,y)=0;若T2(x,y)<S,则说明候选框中灰色像素值波动范围小,只存在背景或目标,则将所述灰度图像上该像素点的灰度值f(x,y)与阈值T值相比;若f(x,y)>T,则f′(x,y)=1;若f(x,y)<T,则f′(x,y)=0。
在本实施例中,所述步骤S5具体包括以下步骤:
步骤S51:制作半字模板,个数为k;
步骤S52:将所述待识别半字二值图M2(即图10)中各个像素点的值按照其各自所在的位置构成一个大小为32×24的矩阵A;
步骤S53:将所述半字模板二值图中各个像素点的值按照其各自所在的位置构成一个32×24的矩阵C;
步骤S54:将所述矩阵A和所述矩阵C两个矩阵逐点进行相减取绝对值操作,然后将所有的值相加,记为h;
步骤S55:重复执行步骤S53-S54k次,找到hmin=45即半字模板与待识别半字P的最小汉明距离,该最小汉明距离下的半字模板的标签5即为待识别半字P的识别结果,如图12所示。
在本实施例中,所述步骤S51具体包括以下步骤
步骤S511:根据表盘真实字符图像构造一张以01234567890按顺序上下排列的图像;
步骤S512:以一个窗口为32×24的大小对步骤S511所述的图像进行上下移动步长为1的裁剪并保存,同时将其中全字的模板剔除,得到260张半字模板,如图13所示。
在本实施例中,所述步骤S6具体包括以下步骤:
步骤S6:按照步骤S1输入的图像顺序,依次输出识别结果,如图14所示,本实施实例识别结果为:99575,识别结果与实际相符合,识别正确。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
Claims (6)
1.一种融合卷积神经网络和半字模板匹配的表盘数字字符识别方法,其特征在于:包括以下步骤:
步骤S1:获取带有全字半字标签的分割好的灰度图,并输入到步骤S2中;其中,标签0代表半字,标签1代表全字;
步骤S2:将标签筛选分类,若标签为0则进入步骤S4,若标签为1则进入步骤S3;
步骤S3:训练一个卷积神经网络,将标签为1的全字灰度图输入到训练好的神经网络中识别,得到全字识别结果;
步骤S4:将标签为0的半字灰度图二值化后,保留两个最大连通域,得到处理后的待识别半字二值图像M2;
步骤S5:将步骤S4得到的处理后的图像与半字模板进行基于像素的模板匹配,得到半字识别结果;
步骤S6:按照步骤S1中图像输入的顺序,依次输出灰度图的识别结果。
2.根据权利要求1所述的一种融合卷积神经网络和半字模板匹配的表盘数字字符识别方法,其特征在于:步骤S3具体包括以下步骤:
步骤S31:输入测试集图片和标签以及训练集图片和标签,其中全字共有0至9共10个字符,用10个独热码表示;
步骤S32:用TensorFlow训练一个前向传输的卷积神经网络;
步骤S33:保存该卷积神经网络的各项权重值;
步骤S34:将输入的全字灰度图输入到训练好的卷积神经网络中进行自动识别,得到识别结果。
3.根据权利要求1所述的一种融合卷积神经网络和半字模板匹配的表盘数字字符识别方法,其特征在于:步骤S4具体包括以下步骤:
步骤S41:将半字灰度图M进行二值化处理,得到初步待识别半字二值化图像M1;
步骤S42:将M1用八领域的方式找出连通域,并以自然数标记连通域;
步骤S43:计算步骤S42标记的相同自然数的个数,比较得到两个最大个数的自然数,将这两个自然数所在的连通域的像素灰度值改为1,其余位置的像素灰度值改为0,得到保留最大连通域后的待识别半字二值化图像M2。
4.根据权利要求3所述的一种融合卷积神经网络和半字模板匹配的表盘数字字符识别方法,其特征在于:步骤S41具体包括以下步骤:
步骤S411:设定一个t×t大小的候选框作为局部二值化每次选取像素的滑动窗口,设定两个初始阈值:T、S;其中T为当窗口只存在背景或目标时判断是否是目标的阈值;S为判断该滑动窗口中是否背景和目标同时存在的阈值;记f(x,y)为图像M在第x行y列的像素灰度值;记f′(x,y)为经过局部二值化处理后的图像在第x行y列的像素的值;
步骤S412:用t×t的候选框以步长1遍历所述灰度图像M;令T2(x,y)=max-min,其中,max为灰度图像在该候选框范围下的像素点灰度值最大值,min为灰度图像在该候选框范围下的像素点灰度值最小值,T1(x,y)表示该候选框内灰度值最大值与灰度值最小值的均值,T2(x,y)表示该候选框内灰度值最大值与灰度值最小值的差值;
步骤S413:比较T2(x,y)与S的大小;若T2(x,y)>S,则说明候选框中灰色像素值波动范围大,目标和背景同时存在,则将灰度图像上该像素点的灰度值f(x,y)与T1(x,y)对比,若f(x,y)>T1(x,y),则令f′(x,y)=1;若f(x,y)<T1(x,y),则令f′(x,y)=0;若T2(x,y)<S,则说明候选框中灰色像素值波动范围小,只存在背景或只存在目标,则将所述灰度图像上该像素点的灰度值f(x,y)与阈值T值相比;若f(x,y)>T,则f′(x,y)=1;若f(x,y)<T,则f′(x,y)=0,得到初步待识别半字二值化图像M1。
5.根据权利要求1所述的一种融合卷积神经网络和半字模板匹配的表盘数字字符识别方法,其特征在于:步骤S5具体包括以下步骤:
步骤S51:制作半字模板,个数为z;
步骤S52:将待识别半字二值图像M2中各个像素点的值按照其各自所在的位置构成一个大小为m×n的矩阵A,其中m为图像的行数,n为图像的列数;
步骤S53:将半字模板二值图中各个像素点的值按照其各自所在的位置构成一个m×n的矩阵C;
步骤S54:将所述矩阵A和所述矩阵C两个矩阵逐点进行相减取绝对值操作,然后将所有的值相加,记为h;
步骤S55:重复执行步骤S53-S54z次,找到最小的h值hmin,即半字模板与待识别半字的最小汉明距离,该距离下的半字模板的标签即为待识别半字的识别结果。
6.根据权利要求5所述的一种融合卷积神经网络和半字模板匹配的表盘数字字符识别方法,其特征在于:步骤S51具体包括以下步骤:
步骤S511:根据表盘真实字符图像构造一张以0、1、2、3、4、5、6、7、8、9、0为顺序上下排列的图像;
步骤S512:以一个大小为m×n的窗口对步骤S511得到的图像进行步长为1的上下移动裁剪并保存,同时将其中全字的模板剔除,得到z张半字模板。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910160157.3A CN109902751B (zh) | 2019-03-04 | 2019-03-04 | 融合卷积神经网络和半字模板匹配的表盘数字字符识别法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910160157.3A CN109902751B (zh) | 2019-03-04 | 2019-03-04 | 融合卷积神经网络和半字模板匹配的表盘数字字符识别法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109902751A true CN109902751A (zh) | 2019-06-18 |
CN109902751B CN109902751B (zh) | 2022-07-08 |
Family
ID=66946239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910160157.3A Active CN109902751B (zh) | 2019-03-04 | 2019-03-04 | 融合卷积神经网络和半字模板匹配的表盘数字字符识别法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109902751B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112381177A (zh) * | 2020-12-07 | 2021-02-19 | 江苏科技大学 | 一种基于深度学习的表盘数字字符识别方法及系统 |
CN112489039A (zh) * | 2020-12-17 | 2021-03-12 | 钢铁研究总院 | 基于深度学习的铝合金微米级第二相定量统计表征方法 |
CN113610085A (zh) * | 2021-10-10 | 2021-11-05 | 成都千嘉科技有限公司 | 基于注意力机制的字轮图像识别方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9501708B1 (en) * | 2015-09-10 | 2016-11-22 | King Fahd University Of Petroleum And Minerals | Adaptive sliding windows for text recognition |
CN106529537A (zh) * | 2016-11-22 | 2017-03-22 | 亿嘉和科技股份有限公司 | 一种数字仪表读数图像识别方法 |
CN108830271A (zh) * | 2018-06-13 | 2018-11-16 | 深圳市云识科技有限公司 | 一种基于卷积神经网络的数显仪表读数识别方法 |
CN109034160A (zh) * | 2018-07-06 | 2018-12-18 | 江苏迪伦智能科技有限公司 | 一种基于卷积神经网络的带小数点数字仪表自动识别方法 |
-
2019
- 2019-03-04 CN CN201910160157.3A patent/CN109902751B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9501708B1 (en) * | 2015-09-10 | 2016-11-22 | King Fahd University Of Petroleum And Minerals | Adaptive sliding windows for text recognition |
CN106529537A (zh) * | 2016-11-22 | 2017-03-22 | 亿嘉和科技股份有限公司 | 一种数字仪表读数图像识别方法 |
CN108830271A (zh) * | 2018-06-13 | 2018-11-16 | 深圳市云识科技有限公司 | 一种基于卷积神经网络的数显仪表读数识别方法 |
CN109034160A (zh) * | 2018-07-06 | 2018-12-18 | 江苏迪伦智能科技有限公司 | 一种基于卷积神经网络的带小数点数字仪表自动识别方法 |
Non-Patent Citations (2)
Title |
---|
CHEN XUAN ET AL.: "Handwritten Digits Recognition Based on Fused Convolutional Neural Network Model", 《COMPUTER ENGINEERING》 * |
莫宇琨 等: "深度卷积神经网络在水表字符图像识别上的应用", 《供水技术》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112381177A (zh) * | 2020-12-07 | 2021-02-19 | 江苏科技大学 | 一种基于深度学习的表盘数字字符识别方法及系统 |
CN112489039A (zh) * | 2020-12-17 | 2021-03-12 | 钢铁研究总院 | 基于深度学习的铝合金微米级第二相定量统计表征方法 |
CN113610085A (zh) * | 2021-10-10 | 2021-11-05 | 成都千嘉科技有限公司 | 基于注意力机制的字轮图像识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109902751B (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6866495B2 (ja) | 画像品質の評価方法及び画像品質の評価システム | |
CN111292264B (zh) | 一种基于深度学习的图像高动态范围重建方法 | |
CN114841972B (zh) | 基于显著性图和语义嵌入特征金字塔的输电线路缺陷识别方法 | |
CN112651978B (zh) | 舌下微循环图像分割方法和装置、电子设备、存储介质 | |
CN111754446A (zh) | 一种基于生成对抗网络的图像融合方法、系统及存储介质 | |
CN106446896A (zh) | 一种字符分割方法、装置及电子设备 | |
CN108108751A (zh) | 一种基于卷积多特征和深度随机森林的场景识别方法 | |
CN108921942B (zh) | 对图像进行2d转制3d的方法及装置 | |
CN107368831A (zh) | 一种自然场景图像中的英文文字和数字识别方法 | |
CN112884758B (zh) | 一种基于风格迁移方法的缺陷绝缘子样本生成方法及系统 | |
CN110033054B (zh) | 基于协同笔画优化的个性化手写体迁移方法和系统 | |
CN109902751A (zh) | 一种融合卷积神经网络和半字模板匹配的表盘数字字符识别方法 | |
CN113822951B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN111784624B (zh) | 目标检测方法、装置、设备及计算机可读存储介质 | |
CN110570433A (zh) | 基于生成对抗网络的图像语义分割模型构建方法和装置 | |
CN112836625A (zh) | 人脸活体检测方法、装置、电子设备 | |
CN113111716A (zh) | 一种基于深度学习的遥感影像半自动标注方法和装置 | |
CN114419323A (zh) | 基于跨模态学习与领域自适应rgbd图像语义分割方法 | |
CN117745680A (zh) | 基于大型视觉语言模型的异常检测方法及装置 | |
CN117315387A (zh) | 一种工业缺陷图像生成方法 | |
CN114529794B (zh) | 一种红外与可见光图像融合方法、系统及介质 | |
CN110503631A (zh) | 一种遥感图像变化检测方法 | |
KR102157005B1 (ko) | 영상 필터링 기법을 적용한 딥러닝 결과영상의 정확성 향상방법 | |
CN115482463A (zh) | 一种生成对抗网络矿区土地覆盖识别方法及系统 | |
CN114972335A (zh) | 一种用于工业检测的图像分类方法、装置及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230711 Address after: Room 203, No. 397, Xihong, Hongshan Town, Gulou District, Fuzhou City, Fujian Province 350025 Patentee after: FUZHOU IVISIONIC TECHNOLOGY Co.,Ltd. Address before: No.2 Xueyuan Road, Fuzhou University Town, Shangjie Town, Minhou County, Fuzhou City, Fujian Province Patentee before: FUZHOU University |
|
TR01 | Transfer of patent right |