一种表盘滚动数字字符的多位半字跳转判断与识别方法与流程

文档序号:18668827发布日期:2019-09-13 20:35阅读:332来源:国知局
一种表盘滚动数字字符的多位半字跳转判断与识别方法与流程

本发明涉及图像处理与识别中的滚动数字字符图像识别技术领域,特别是一种表盘滚动数字字符的多位半字跳转判断与识别方法。



背景技术:

表盘滚动数字字符应用于很多领域,比如家用水表、家用电表等,表盘滚动数字字符的识别方式也有很多,最简单的方法就是对表盘进行拍照采集图像,然后在经过图像处理,运用模式识别算法识别出对应的数字,即摄像式抄表系统。在该系统中,数字字符识别是整个系统的关键。但在摄像式抄表系统中,由于读数转盘进位不完全常常会出现上下双半字残缺字符。



技术实现要素:

有鉴于此,本发明的目的是提出一种表盘滚动数字字符的多位半字跳转判断与识别方法,。

本发明采用以下方案实现:一种表盘滚动数字字符的多位半字跳转判断与识别方法,包括以下步骤:

步骤s1:获取五张分割后的并且具有半字或全字标签的数字字符二值图作为输入图像,并按顺序输入到步骤s2;

步骤s2:判断所述输入的五张二值图中是否有半字;若有半字,则进入步骤s3;若均为全字,则将各个全字字符二值化图像与全部的全字字符模板进行匹配,欧式距离最小的全字字符模板所对应的数字即为该全字字符二值化图像所对应的数字,从而实现全字字符识别;

步骤s3:令最高位的数字字符图像位置为1,最低位的数字字符图像位置为5;判断最高位的半字数字字符图像位置是否等于5,若等于5,则表示只有最后一位数字字符发生跳转,进入步骤s5识别最后一个半字,其余位置的数字字符进行全字识别;否则发生两位或两位以上的半字跳转,记第一位半字为字符图像i,进入步骤s4识别最高位半字,而比最高位半字位置更高的数字字符进行全字识别;

步骤s4:判断步骤s3中所述的字符图像i的中心分界线,若中心分界线在字符图像的上半部分,则之后所有的数字都取0;若在下半部分,则之后的所有数字都取9;同时,将第一个半字之前的数字进行步骤s6的全字识别,第一个半字进行步骤s5的半字识别;

步骤s5:令输入的半字二值图为图像m1,根据图像m1和双数字模板的中心分界线的位置,将图像m1与双数字模板进行模板匹配,识别得到最终结果;

步骤s6:令输入的全字二值图为图像n1,将全字图像与全字数字模板进行模板匹配,识别得到最终结果。

进一步地,所述输入图像的具体内容为:五张二值图按顺序排列,从左往右依次为1、2、3、4、5顺序;所述五张二值图中的每张图像均为经过图像处理,分割好的大小一致的二值图,图像尺寸为m×n;其中,m为所述输入图像的行数,n为所述输入图像的列数;所述五张二值图中的每张图像都带有全字或半字标签,若为半字,则标签为0;若为全字,则标签为1。

进一步地,所述步骤s4具体包括以下步骤:

步骤s41:对所述图像i取中心分界线,其中心分界线所在的行标记为l1;

步骤s42:判断分界线l1的位置,若则后面的数字识别结果全为0,否则后面的数字识别结果全为9。

进一步地,所述步骤s41具体包括以下步骤:

步骤s411:所述输入的五张二值图中半字二值图的尺寸为m×n,统计所述半字二值图每行的零元素的个数,记为ai,其中i代表第i行;

步骤s412:当若ai>0且ai+1=0,则判定第i+1行为所述图像i中心分界线的上分界线,记为m1;若ai+1>0且ai=0,则判定第i行为所述图像i中心分界线的下分界线,记为m2;

步骤s413:由步骤s412得到所述图像i的中心分界线的上下分界线,计算出半字中心分界线,若m1+m2为奇数,则若m1+m2为偶数,则

进一步地,所述步骤s5具体包括以下步骤:

步骤s51:对所述半字二值图m1取中心分界线,其中心分界线所在的行标记为l2;

步骤s52:获取一双数字模板图像,所述双数字模板图像的中心分界线为l;找到所述半字二值图m1在所述双数字模板图像中的具体位置,并把该位置的图像截取出来;

步骤s53:将所述双数字模板图像与所述待识别的半字图像m1进行基于像素的模板匹配,重复k次,k为双数字模板的个数,距离最小的双数字模板的标签即为初始识别结果;

步骤s54:若则最终识别结果等于初始识别结果加1;若则最终识别结果等于初始识别结果。

进一步地,所述步骤s51具体包括以下步骤:

步骤s511:所述输入的五张二值图中半字二值图的尺寸为m×n,统计所述半字二值图每行的零元素的个数,记为bq,其中q代表第q行;

步骤s512:当若bq>0且bq=0,则判定第q+1行为原始图像中心分界线的上分界线,记为n1;若bq+1>0且bq=0,则判定第q行为输入的半字图像m1中心分界线的下分界线,记为n2;

步骤s513:由步骤s512得到半字中心分界线的上下分界线,若n1+n2为奇数,则若n1+n2为偶数,则

进一步地,所述步骤s52具体包括以下步骤:

步骤s521:制作双数字模板图像,其中心分界线的行数记为l;

步骤s522:所述待识别的半字图像的中心分界线将图像一分为二,上半部分有l2行,下半部分有n-l2行;所述待识别半字图像在所述双数字模板中的位置是在第l-l2+1行至第l-l2+n行;

步骤s523:将所述双数字模板的l-l2+1~l-l2+n行截取出来。

进一步地,所述步骤s521具体包括以下步骤:

步骤s5211:制作0~9十个数字模板;

步骤s5212:根据数字的连贯性,将全字以01、12、23、34、45、56、67、78、89、90这十种方式以上下的顺序组合起来,并保证在同一竖直方向上,记为图像集a;

步骤s5213:将步骤s5212得到的图像集a的中心分界设置在相同的位置,并记中心分界线为l,记为图像集b;

步骤s5214:将步骤s5213得到的图像集b进行左右平移,以图像最左或右端像素值与图像最左或右端边框相切为准,得到双数字模板二值图,其个数为i;

步骤s5215:对得到的所述双数字模板二值图制作标签;

进一步地,所述步骤s53具体包括以下步骤:

步骤s531:将所述待识别半字二值图中各个像素点的值按各像素点所在的位置构成一个m×n的矩阵b;

步骤s532:将所述双数字模板二值图中各个像素点的值按各像素点所在的位置构成一个m×n的矩阵c;

步骤s533:将所述矩阵b和所述矩阵c两个矩阵逐点进行异或运算,相同为0,不同为1,将结果存储于一个m×n的矩阵d;

步骤s534:将所述矩阵d的所有值相加,得到所述待识别半字图像m1和双数字模板的距离d;

步骤s535:重复执行k次所述步骤s52~s53,找到最小的距离dmin,其双数字模板的标签即为最初识别结果。

进一步地,所述步骤s6具体包括以下步骤:

步骤s61:提供0~9的全字模板,全字模板的个数为k1;

步骤s62:将所述待识别全字二值图m1中各个像素点的值按各像素点所在的位置构成一个m×n的矩阵b1;

步骤s63:将所述全字模板二值图中各个像素点的值按各像素点所在的位置构成一个m×n的矩阵c1;

步骤s64:将所述矩阵b1和所述矩阵c1两个矩阵逐点进行异或运算,相同为0,不同为1,将结果存储于一个m×n的矩阵d1;

步骤s65:将所述矩阵d1的所有值相加,得到所述待识别全字图像n1和全字模板的距离d;

步骤s66:重复执行k1次所述步骤s63至s65,找到最小的距离dmin,其全字模板的标签即为识别结果。

与现有技术相比,本发明有以下有益效果:

本发明将判断表盘是否发生多位跳转,并进行将半字识别出来,然后输出识别结果。采用本发明的方法处理图片,所需的操作步骤少,识别正确率高。

附图说明

图1为本发明实施例的结构框图。

图2为本发明实施例中输入的五张按顺序的已有半字全字标签的分割好的二值图。

图3为本发明实施例中步骤s4多位半字跳转第一个半字后的图像识别的结构框图。

图4为本发明实施例中步骤s41求待识别半字中心分界线的结构框图。

图5为本发明实施例中图2(3)的图像经过水平投影后的效果图;

图6为本发明实施例中步骤s4半字识别的结构框图。

图7为本发明实施例中所有双数字模板截取9~40后行的效果图。

图8(1)为本发明实施例中图2(3)的二值图,图8(2)为本发明实施例中与图(1)距离最近的双数字模板的效果图;

图9为本发明实施例中步骤s521双数字模板制作的结构框图。

图10(1)为本发明实施例中0~9十个全字模板的效果图,图10(2)为本发明实施例中将十个全字模板两两拼接并对其后的效果图,图10(3)为本发明实施例中拼接后的双数字模板图中心分界线校对后的效果图。

图11为本发明实施例中制作的105张双数字模板的效果图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

在实际中采集的图像很可能出现两个字符及以上的多位跳转,如00319跳转至00320,这时候末尾两个字符同时出现跳转,由于表盘字轮制作工艺的差距,用单个半字识别的方法来进行识别可能不尽理想,最终结果可能为00319、00310、00320、00329,即水表的最后两位可能是双数字12和双数字09的随机组合,如果出现三位数或者四位数的跳转,随机组合的数量更多,这种情况下的识别错误率可能很高,所以在此一种表盘滚动数字字符的多位半字跳转判断与识别方法。

如图1所示,本实施例提供了一种表盘滚动数字字符的多位半字跳转判断与识别方法,包括以下步骤:

步骤s1:获取五张分割后的并且具有半字或全字标签的数字字符二值图作为输入图像,并按顺序输入到步骤s2;

步骤s2:判断所述输入的五张二值图中是否有半字;若有半字,则进入步骤s3;若均为全字,则将各个全字字符二值化图像与全部的全字字符模板进行匹配,欧式距离最小的全字字符模板所对应的数字即为该全字字符二值化图像所对应的数字,从而实现全字字符识别;

步骤s3:为方便实验,令最高位的数字字符图像位置为1,最低位的数字字符图像位置为5;判断最高位的半字数字字符图像位置是否等于5,若等于5,则表示只有最后一位数字字符发生跳转,进入步骤s5识别最后一个半字,其余位置的数字字符进行全字识别;否则发生两位或两位以上的半字跳转,记第一位半字为字符图像i,进入步骤s4识别最高位半字,而比最高位半字位置更高的数字字符进行全字识别;

步骤s4:判断步骤s3中所述的字符图像i的中心分界线,若中心分界线在字符图像的上半部分,则之后所有的数字都取0;若在下半部分,则之后的所有数字都取9(因为十位数上的跳转最后一位只可能从9跳转到0,所以要么是9要么是0);同时,将第一个半字之前的数字进行步骤s6的全字识别,第一个半字进行步骤s5的半字识别;

步骤s5:令输入的半字二值图为图像m1,根据图像m1和双数字模板的中心分界线的位置,将图像m1与双数字模板进行模板匹配,识别得到最终结果;

步骤s6:令输入的全字二值图为图像n1,将全字图像与全字数字模板进行模板匹配,识别得到最终结果。

在本实施例中,所述输入图像的具体内容为:五张二值图按顺序排列,从左往右依次为1、2、3、4、5顺序;所述五张二值图中的每张图像均为经过图像处理,分割好的大小一致的二值图,图像尺寸为m×n;其中,m为所述输入图像的行数,n为所述输入图像的列数;所述五张二值图中的每张图像都带有全字或半字标签,若为半字,则标签为0;若为全字,则标签为1。

在本实施例中,所述步骤s4具体包括以下步骤:

步骤s41:对所述图像i取中心分界线,其中心分界线所在的行标记为l1;

步骤s42:判断分界线l1的位置,若则后面的数字识别结果全为0,否则后面的数字识别结果全为9。

在本实施例中,所述步骤s41具体包括以下步骤:

步骤s411:所述输入的五张二值图中半字二值图的尺寸为m×n,统计所述半字二值图每行的零元素的个数,记为ai,其中i代表第i行;

步骤s412:当若ai>0且ai+1=0,则判定第i+1行为所述图像i中心分界线的上分界线,记为m1;若ai+1>0且ai=0,则判定第i行为所述图像i中心分界线的下分界线,记为m2;

步骤s413:由步骤s412得到所述图像i的中心分界线的上下分界线,计算出半字中心分界线,若m1+m2为奇数,则若m1+m2为偶数,则

在本实施例中,所述步骤s5具体包括以下步骤:

步骤s51:对所述半字二值图m1取中心分界线,其中心分界线所在的行标记为l2;

步骤s52:获取一双数字模板图像,所述双数字模板图像的中心分界线为l;找到所述半字二值图m1在所述双数字模板图像中的具体位置,并把该位置的图像截取出来;

步骤s53:将所述双数字模板图像与所述待识别的半字图像m1进行基于像素的模板匹配,重复k次,k为双数字模板的个数,距离最小的双数字模板的标签即为初始识别结果;

步骤s54:若则最终识别结果等于初始识别结果加1;若则最终识别结果等于初始识别结果。

在本实施例中,所述步骤s51具体包括以下步骤:

步骤s511:所述输入的五张二值图中半字二值图的尺寸为m×n,统计所述半字二值图每行的零元素的个数,记为bq,其中q代表第q行;

步骤s512:当若bq>0且bq=0,则判定第q+1行为原始图像中心分界线的上分界线,记为n1;若bq+1>0且bq=0,则判定第q行为输入的半字图像m1中心分界线的下分界线,记为n2;

步骤s513:由步骤s512得到半字中心分界线的上下分界线,若n1+n2为奇数,则若n1+n2为偶数,则

在本实施例中,所述步骤s52具体包括以下步骤:

步骤s521:制作双数字模板图像,其中心分界线的行数记为l;

步骤s522:所述待识别的半字图像的中心分界线将图像一分为二,上半部分有l2行,下半部分有n-l2行;所述待识别半字图像在所述双数字模板中的位置是在第l-l2+1行至第l-l2+n行;

步骤s523:将所述双数字模板的l-l2+1~l-l2+n行截取出来。

在本实施例中,所述步骤s521具体包括以下步骤:

步骤s5211:制作0~9十个数字模板;

步骤s5212:根据数字的连贯性,将全字以01、12、23、34、45、56、67、78、89、90这十种方式以上下的顺序组合起来,并保证在同一竖直方向上,记为图像集a;

步骤s5213:将步骤s5212得到的图像集a的中心分界设置在相同的位置,并记中心分界线为l,记为图像集b;

步骤s5214:将步骤s5213得到的图像集b进行左右平移,以图像最左或右端像素值与图像最左或右端边框相切为准,得到双数字模板二值图,其个数为i;

步骤s5215:对得到的所述双数字模板二值图制作标签;

在本实施例中,所述步骤s53具体包括以下步骤:

步骤s531:将所述待识别半字二值图中各个像素点的值按各像素点所在的位置构成一个m×n的矩阵b;

步骤s532:将所述双数字模板二值图中各个像素点的值按各像素点所在的位置构成一个m×n的矩阵c;

步骤s533:将所述矩阵b和所述矩阵c两个矩阵逐点进行异或运算,相同为0,不同为1,将结果存储于一个m×n的矩阵d;

步骤s534:将所述矩阵d的所有值相加,得到所述待识别半字图像m1和双数字模板的距离d;

步骤s535:重复执行k次所述步骤s52~s53,找到最小的距离dmin,其双数字模板的标签即为最初识别结果。

在本实施例中,所述步骤s6具体包括以下步骤:

步骤s61:提供0~9的全字模板,全字模板的个数为k1;

步骤s62:将所述待识别全字二值图m1中各个像素点的值按各像素点所在的位置构成一个m×n的矩阵b1;

步骤s63:将所述全字模板二值图中各个像素点的值按各像素点所在的位置构成一个m×n的矩阵c1;

步骤s64:将所述矩阵b1和所述矩阵c1两个矩阵逐点进行异或运算,相同为0,不同为1,将结果存储于一个m×n的矩阵d1;

步骤s65:将所述矩阵d1的所有值相加,得到所述待识别全字图像n1和全字模板的距离d;

步骤s66:重复执行k1次所述步骤s63至s65,找到最小的距离dmin,其全字模板的标签即为识别结果。

较佳的,本实施例通过寻找输入的按顺序排列且分割好的五张二值图的第一个半字标签所在位置,若第一个半字标签所在位置是5,则说明只有最末尾一位数字发生跳转;若第一个半字标签所在位置小于5,则说明发生了两位或两位以上的多位跳转,这时候将第一个半字进行半字识别,同时输出其中心分界线的横坐标,若中心分界线的横坐标位于该半字的上半部分,则第一位半字后的所有数字识别为9,否则第一位半字后的所有数字识别为0。所述半字识别模块是通过对比半字二值图的中心分界线与双数字模板的中心分界线,找到半字二值图在双数字模板中的具体位置,并进行双数字模板切割,然后将半字二值图与切割后的双数字模板进行模板匹配,即各个像素进行异或运算,统计值为1的个数,即半字二值图与切割好的双数字模板的距离,重复执行i次(i为双数字模板的个数),找到距离最小的双数字模板的标签,即为初始识别结果,再结合半字二值图的中心分界线的位置确定最终识别结果。

特别的,本实施例对带有半字标签的字符进行分析研究,利用双数字模板匹配法对半字数字字符进行识别,并在多位半字跳转中,利用半字数字字符中心分界线的位置确定之后半字数字的数值。

本实施例的双数字模板匹配实质上是基于像素的模板匹配,是将两张同尺寸的二值图一个个相应像素点对应,若相应像素点的值相同,则记为0,不同则记为1,即进行异或运算,遍历整张图后统计1的个数,最终结果即是两张二值图的距离,根据距离的大小来判断两幅图的相似度,距离越大,两幅图的相似度越低。

较佳的,本实施例的具体实施内容如下:步骤s1的输入图像如图2所示,有以下特征:

(1)五张图像已按顺序排列,依次从左往右为1、2、3、4、5顺序;

(2)每张图像均为已经过图像处理,分割好的大小一致的二值图,图像尺寸为32×24(其中,32为输入图像的行数,24为输入图像的列数);

(3)每张图像都带有全字或半字标签,若为半字,则标签为0,若为全字,则标签为1;

在本实施实例中,五个按12345顺序排列的图像所带有的半字全字标签为:11000,经过步骤s2判断,可进入步骤s3,由于第一个半字(即标签为0)在第三位,可进入步骤s4;

如图3所示,在本实施实例中,所述步骤s4主要包括以下步骤

步骤s41:对步骤s3的图像取中心分界线,其中心分界线所在的行标记为l1=21;

步骤s42:判断分界线l1的位置,本实施实例中则图2(4)(5)的识别结果为9,同时该半字的识别跳转到步骤s5;

如图4所示,在本实施实例中,所述步骤s41具体包括以下步骤:

步骤s411:步骤s3输入的半字二值图像的尺寸为32×24,统计s1的半字二值图每行的零元素的个数,记为ai,其中i代表第i行;图2(3)的水平投影如图5所示;

步骤s412:当若若ai>0且ai+1=0,则判定i+1为原始图像中心分界线的上分界线,记为m1,本实施例中m1=19;若ai+1>0且ai=0,则判定第i行为原始图像中心分界线的下分界线,记为m2;本实施例中m2=22;

步骤s413:由步骤s412可知半字中心分界线的上下分界线,本实施例中m1+m2为奇数,

如图6所示,在本实施实例中,所述步骤s5具体包括以下步骤

步骤s51:对半字二值图取中心分界线,其中心分界线的所在行数标记为l2=21,具体操作步骤如s41所示;

步骤s52:根据双数字模板图像的中心分界线l=29与待识别半字图像的中心分界线l2=21找到待识别半字图像在双数字模板图像中的具体位置为第9~40行,并把该位置的图像截取出来,图7为截取后的所有双数字模板图;

步骤s53:将步骤s42得到的图像与待识别的半字图像进行基于像素的模板匹配,重复105次(105为双数字模板的个数),距离最小的双数字模板如图8(2)所示,其标签8即为最初识别结果;

步骤s54:在本实施例中,最终识别结果等于初始识别结果等于8;

在本实施例中,所述步骤s52具体包括以下步骤:

步骤s521:制作双数字模板,其中心分界线的行数记为l=29;

步骤s522:由步骤s51可知,待识别的半字中心分界线将图像一分为二,上半部分有l2=21行、下半部分有32-l2=11行,所以在本实施例中,待识别半字图像在双数字模板中的位置是第9至第40行;

步骤s523:将所有双数字模板的9~40行截取出来;

如图9所示,在本实施例中,所述步骤s521具体包括以下步骤:

步骤s5211:制作0~9十个数字模板,如图10(1)所示,尺寸大小为32×24;

步骤s5212:根据数字的连贯性,将全字以01、12、23、34、45、56、67、78、89、90这十种方式以上下的顺序组合起来,并保证在同一竖直方向上,如图10(2)所示,尺寸大小为64×24;

步骤s5213:观察待识别半字字符的上下分界线的间隔,本实施例中待识别半字的中间空白为3行,将步骤s5212得到的图像的中心分界控制在相同的位置,并记中心分界线为l=29,如图10(3)所示,尺寸大小为57×24;

步骤s5214:将步骤s5213得到的图形进行左右平移,以图像最左/右端像素值与图像最左/右端边框相切为准,得到一系列双数字模板二值图,其个数为105,如图11所示。

步骤s5215:给步骤s5214得到的双数字模板二值图制作标签,因为一个模板中有两个连续数字,所以统一采用较上的数字作为标签,如在01双数字中,取标签为0;

所述步骤s53具体包括以下步骤:

步骤s531:将待识别半字二值图总各个像素点的值提取出来,是构成一个32×24的矩阵b;

步骤s532:将步骤s52得到的切割好的双数字模板二值图中各个像素点的值提取出来,是构成一个32×24的矩阵c;

步骤s533:将b和c两个矩阵逐点进行异或运算,相同为0,不同为1,将结果存储于一个32×24的矩阵d;

步骤s534:将矩阵d的所有值相加,得到待识别半字图像和s3得到的图像的距离d;

步骤s535:重复执行105次(105为双数字模板的个数)s52~s534次,找到最小的距离dmin=71,其双数字模板的标签即为最初识别结果。

所述步骤s6就包括以下步骤:

步骤步骤s61:制作0~9的全字模板,全字模板的个数为10;

步骤s62:以图2(1)的全字待识别二值图为例,将所述二值图中各个像素点的值提取出来,构成一个32×24的矩阵b1;

步骤s63:将所述全字模板二值图中各个像素点的值提取出来,构成一个32×24的矩阵c1;

步骤s64:将所述矩阵b1和所述矩阵c1两个矩阵逐点进行异或运算,相同为0,不同为1,将结果存储于一个32×24的矩阵d1;

步骤s65:将所述矩阵d1的所有值相加,得到图2(1)的待识别全字二值图和全字模板的距离d;

步骤s66:重复执行10次所述步骤s63~s65,找到最小的距离dmin=42,其全字模板的标签0即为识别结果。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1