发明内容
本发明实施例提供了一种钞票冠字号识别方法,能够解决现有字符识别处理无法很好地识别相似字符的问题。
本发明实施例提供的一种钞票冠字号识别方法,包括:
获取钞票的冠字号图像;
对所述冠字号图像进行字符切割处理,得到多个字符图像;
将所有所述字符图像缩放成预设的同一尺寸;
提取所述字符图像的特征向量;
根据所述特征向量和预先训练的分类器模型对所述字符图像进行字符识别,得到初步识别结果;
判断所述初步识别结果是否落入预设的相似字符组中,若是,则对所述字符图像进行二次识别,若否,则输出所述初步识别结果;
所述对所述字符图像进行二次识别具体包括以下步骤:
根据所述初步识别结果获取所述字符图像的预设特定区域;
根据所述初步识别结果获取所述字符图像的预设笔画模板;
通过所述笔画模板在所述特定区域内进行滑动匹配,将匹配成功的所述字符图像的像素数最大值作为最大匹配值;
根据所述最大匹配值和预设的阈值得到所述字符图像在所述相似字符组中的识别结果,作为二次识别结果;
输出所述二次识别结果。
可选地,通过所述笔画模板在所述特定区域内进行滑动匹配之前还包括:
将所述字符图像进行二值化处理。
可选地,所述笔画模板包括:笔画横、笔画竖以及笔画点。
可选地,与所述初步识别结果对应的所述相似字符组包括第一相似字符和第二相似字符;
所述根据所述最大匹配值和预设的阈值得到所述字符图像在所述相似字符组中的识别结果具体为:
判断所述最大匹配值是否大于或等于预设的阈值,若是,则所述字符图像的识别结果为第一相似字符,若否,则所述字符图像的识别结果为第二相似字符。
可选地,对所述冠字号图像进行字符切割处理之前还包括:
对所说冠字号图像进行图像预处理;
所述对所说冠字号图像进行图像预处理具体包括:
对所述冠字号图像进行去噪处理;
或,对所述冠字号图像进行图像纠偏处理。
可选地,提取所述字符图像的特征向量具体包括:
计算所述字符图像的梯度图,得到梯度矩阵;
在标准八方向分解所述梯度矩阵,得到特征矩阵;
将所述特征矩阵与预设的权重矩阵进行卷积生成第一特征子向量;
根据所述梯度矩阵在标准八方向上分解次数最多的方向及其最大数量,和分解值累加最大的方向及最大累加值,生成第二特征子向量;
将所述第一特征子向量和所述第二特征子向量合成为所述特征向量。
可选地,所述分类器模型由SMO二分类器组成,其包括数字模型、字母模型、以及数字和字母模型;
所述分类器模型与所述字符图像在钞票冠字号上的位置存在对应关系。
可选地,所述钞票为人民币;
所述相似字符组包括第一相似字符组0和D、第二相似字符组8和B、第三相似字符组1和I、第四相似字符组2和Z、或者第五相似字符组O和D;
所述钞票冠字号的第一位与所述字母模型对应,第五位至第十位与所述数字模型对应,第二位至第四位与所述数字和字母模型对应。
可选地,所述判断所述初步识别结果是否落入预设的相似字符组中具体为:
判断所述初步识别结果是否为0、D、8、B、1、I、2、Z或者O。
可选地,将所有所述字符图像缩放成预设的同一尺寸具体为:
根据插值法将所有所述字符图像缩放成同一尺寸的矩形图像。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,首先,获取钞票的冠字号图像;对所述冠字号图像进行字符切割处理,得到多个字符图像;将所有所述字符图像缩放成预设的同一尺寸;然后,提取所述字符图像的特征向量;根据所述特征向量和预先训练的分类器模型对所述字符图像进行字符识别,得到初步识别结果;最后,判断所述初步识别结果是否落入预设的相似字符组中,若是,则对所述字符图像进行二次识别,若否,则输出所述初步识别结果;其中,所述对所述字符图像进行二次识别具体包括以下步骤:根据所述初步识别结果获取所述字符图像的预设特定区域;根据所述初步识别结果获取所述字符图像的预设笔画模板;通过所述笔画模板在所述特定区域内进行滑动匹配,将匹配成功的所述字符图像的像素数最大值作为最大匹配值;根据所述最大匹配值和预设的阈值得到所述字符图像在所述相似字符组中的识别结果,作为二次识别结果;输出所述二次识别结果。在本发明实施例中,根据所述特征向量和预先训练的分类器模型对字符图像进行初步识别,然后对落入相似字符组的字符图像进行二次识别,结合了全局统计特征的分析和局部结构特征分析的特点,可以识别钞票冠字号中的相似字符,极大提升钞票冠字号识别的准确性。
具体实施方式
本发明实施例提供了一种钞票冠字号识别方法,用于解决现有字符识别处理无法很好地识别相似字符的问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例中一种钞票冠字号识别方法一个实施例包括:
101、获取钞票的冠字号图像;
首先,需要获取钞票的冠字号图像。
102、对该冠字号图像进行字符切割处理,得到多个字符图像;
在获取钞票的冠字号图像之后,可以对该冠字号图像进行字符切割处理,得到多个字符图像。
103、将所有该字符图像缩放成预设的同一尺寸;
在得到多个字符图像之后,可以将所有该字符图像缩放成预设的同一尺寸。
104、提取该字符图像的特征向量;
在将所有该字符图像缩放成预设的同一尺寸之后,可以提取该字符图像的特征向量。
105、根据该特征向量和预先训练的分类器模型对该字符图像进行字符识别,得到初步识别结果;
在提取该字符图像的特征向量之后,可以根据该特征向量和预先训练的分类器模型对该字符图像进行字符识别,得到初步识别结果。
106、判断该初步识别结果是否落入预设的相似字符组中,若是,则执行步骤108,若否,则执行步骤107;
在得到初步识别结果之后,可以判断该初步识别结果是否落入预设的相似字符组中,若是,则执行步骤108,若否,则执行步骤107。
107、输出该初步识别结果;
若该初步识别结果未落入预设的相似字符组中,则输出该初步识别结果。
108、根据该初步识别结果获取该字符图像的预设特定区域;
若该初步识别结果落入预设的相似字符组中,则需要对该字符图像进行二次识别,首先,可以根据该初步识别结果获取该字符图像的预设特定区域。
109、根据该初步识别结果获取该字符图像的预设笔画模板;
并且,可以根据该初步识别结果获取该字符图像的预设笔画模板。
110、通过该笔画模板在该特定区域内进行滑动匹配,将匹配成功的该字符图像的像素数最大值作为最大匹配值;
在得到该特定区域和该笔画模板之后,可以通过该笔画模板在该特定区域内进行滑动匹配,将匹配成功的该字符图像的像素数最大值作为最大匹配值。
111、根据该最大匹配值和预设的阈值得到该字符图像在该相似字符组中的识别结果,作为二次识别结果;
在得到该最大匹配值之后,可以根据该最大匹配值和预设的阈值得到该字符图像在该相似字符组中的识别结果,作为二次识别结果。
112、输出该二次识别结果。
最后,输出该二次识别结果。
本实施例中,首先,获取钞票的冠字号图像;对该冠字号图像进行字符切割处理,得到多个字符图像;将所有该字符图像缩放成预设的同一尺寸;然后,提取该字符图像的特征向量;根据该特征向量和预先训练的分类器模型对该字符图像进行字符识别,得到初步识别结果;最后,判断该初步识别结果是否落入预设的相似字符组中,若是,则对该字符图像进行二次识别,若否,则输出该初步识别结果;其中,该对该字符图像进行二次识别具体包括以下步骤:根据该初步识别结果获取该字符图像的预设特定区域;根据该初步识别结果获取该字符图像的预设笔画模板;通过该笔画模板在该特定区域内进行滑动匹配,将匹配成功的该字符图像的像素数最大值作为最大匹配值;根据该最大匹配值和预设的阈值得到该字符图像在该相似字符组中的识别结果,作为二次识别结果;输出该二次识别结果。在本实施例中,根据该特征向量和预先训练的分类器模型对字符图像进行初步识别,然后对落入相似字符组的字符图像进行二次识别,结合了全局统计特征的分析和局部结构特征分析的特点,可以识别钞票冠字号中的相似字符,极大提升钞票冠字号识别的准确性。
为便于理解,下面对本发明实施例中的一种钞票冠字号识别方法进行详细描述,请参阅图2,本发明实施例中一种钞票冠字号识别方法另一个实施例包括:
201、获取钞票的冠字号图像;
首先,可以获取钞票的冠字号图像。可以理解的是,可以通过图像扫描等方式获取需要识别的钞票的冠字号图像。
需要说明的是,本实施例中的冠字号图像可以是白光光源形成的灰度图,也可以是彩色图像的单一通道的灰度图。
202、对所说冠字号图像进行图像预处理;
在获取钞票的冠字号图像之后,可以对所说冠字号图像进行图像预处理。其中,该对所说冠字号图像进行图像预处理具体包括:对该冠字号图像进行去噪处理,或对该冠字号图像进行图像纠偏处理。可以理解的是,经过预处理的冠字号图像可以更好地被切割出字符,避免切割字符出现偏移或者误差而导致识别结果不准确的问题。
203、对该冠字号图像进行字符切割处理,得到多个字符图像;
在对所说冠字号图像进行图像预处理之后,可以对该冠字号图像进行字符切割处理,得到多个字符图像。需要说明的是,可以对二值化后的字符图像进行水平垂直投影,然后切割出每一个字符。
204、将所有该字符图像缩放成预设的同一尺寸;
在得到多个字符图像之后,可以将所有该字符图像缩放成预设的同一尺寸,比如,根据插值法将所有该字符图像缩放成同一尺寸的矩形图像W*H,其中W为字符图像的宽度,H为字符图像的高度。
205、提取该字符图像的特征向量;
在将所有该字符图像缩放成预设的同一尺寸之后,可以提取该字符图像的特征向量。其中,提取该字符图像的特征向量具体可以包括:
A、计算该字符图像的梯度图,得到梯度矩阵;
B、在标准八方向分解该梯度矩阵,得到特征矩阵;
C、将该特征矩阵与预设的权重矩阵进行卷积生成第一特征子向量;
D、根据该梯度矩阵在标准八方向上分解次数最多的方向及其最大数量,和分解值累加最大的方向及最大累加值,生成第二特征子向量;
E、将该第一特征子向量和该第二特征子向量合成为该特征向量。
206、根据该特征向量和预先训练的分类器模型对该字符图像进行字符识别,得到初步识别结果;
在提取该字符图像的特征向量之后,可以根据该特征向量和预先训练的分类器模型对该字符图像进行字符识别,得到初步识别结果。
需要说明的是,该分类器模型由SMO二分类器组成,其包括数字模型和字母模型,该分类器模型与该字符图像在钞票冠字号上的位置存在对应关系。比如,假设该钞票为人民币,则该相似字符组包括第一相似字符组0和D、第二相似字符组8和B、第三相似字符组1和I、第四相似字符组2和Z、或者第五相似字符组O和D;该钞票冠字号的第一位与该字母模型对应,第五位至第十位与该数字模型对应,第二位至第四位与该数字和字母模型对应。
207、判断该初步识别结果是否落入预设的相似字符组中,若是,则执行步骤209,若否,则执行步骤208;
在得到该初步识别结果之后,可以判断该初步识别结果是否落入预设的相似字符组中,若是,则执行步骤209,若否,则执行步骤208。承接上述步骤206的举例,可以知道的是,步骤207相当于判断该初步识别结果是否为0、D、8、B、1、I、2、Z或者O,若是,则执行步骤209,若否,则执行步骤208。
208、输出该初步识别结果;
若该初步识别结果未落入预设的相似字符组中,则可以认为该初步识别结果准确,不存在近似,输出该初步识别结果作为最终的识别结果。
209、将该字符图像进行二值化处理;
若该初步识别结果落入预设的相似字符组中,则可以认为该初步识别结果存疑,可能存在近似,需要进行二次识别。首先,将该字符图像进行二值化处理。
210、根据该初步识别结果获取该字符图像的预设特定区域;
在将该字符图像进行二值化处理之后,可以根据该初步识别结果获取该字符图像的预设特定区域。可以理解的是,该预设特定区域是针对该初步识别结果进行确定的,比如若该初步识别结果为数字1,则该特定区域为“1”的上部位置。
211、根据该初步识别结果获取该字符图像的预设笔画模板;
在根据该初步识别结果获取该字符图像的预设特定区域的同时,还可以根据该初步识别结果获取该字符图像的预设笔画模板。可以理解的是,该笔画模板是根据该初步识别结果来确定的,比如若该初步识别结果为D,由于0与D为相似字符,而D有一竖而0没有,因此此时该笔画模板选择笔画竖。该笔画模板可以包括:笔画横、笔画竖以及笔画点。
212、通过该笔画模板在该特定区域内进行滑动匹配,将匹配成功的该字符图像的像素数最大值作为最大匹配值;
在获取到该初步识别结果对应的特定区域以及笔画模板之后,可以通过该笔画模板在该特定区域内进行滑动匹配,将匹配成功的该字符图像的像素数最大值作为最大匹配值。
213、根据该最大匹配值和预设的阈值得到该字符图像在该相似字符组中的识别结果,作为二次识别结果;
在得到该最大匹配值之后,可以根据该最大匹配值和预设的阈值得到该字符图像在该相似字符组中的识别结果,作为二次识别结果。
需要说明的是,假设与该初步识别结果对应的该相似字符组包括第一相似字符和第二相似字符,那么该根据该最大匹配值和预设的阈值得到该字符图像在该相似字符组中的识别结果具体为:
判断该最大匹配值是否大于或等于预设的预置,若是,则该字符图像的识别结果为第一相似字符,若否,则该字符图像的识别结果为第二相似字符。
214、输出该二次识别结果。
在得到该二次识别结果之后,由于已经排除了相似字符的情况,因此可以认为该二次识别结果是准确可靠的,输出该二次识别结果作为最终的识别结果。
为便于理解,根据图2所描述的实施例,下面以一个实际应用场景对本发明实施例中的钞票冠字号识别方法进行描述,请参阅图3
步骤1:读入冠字号区域的灰度图;
步骤2:对冠字号区域图像去噪、图像旋转纠偏等预处理;
步骤3:对二值化后的字符图像进行水平垂直投影,切割出每一个字符,使用插值法将图像缩放到统一的尺寸W*H。
步骤4:提取特征向量;
步骤4-1:计算字符梯度图,得梯度矩阵;
使用Sobe算子计算归一化后的字符图像的梯度矩阵,
步骤4-2:特征矩阵提取,将梯度矩阵G在标准八方向分解,如图4所示。
得到特征矩阵
其中,pi是(gx,gy)在方向i上的分解值。
步骤4-3:特征矩阵处理,设置权重矩阵wi,j表示特征的权重。本实施例选择即对P的8个方向分别进行均值滤波。
特征矩阵P与权重W的卷积生成特征子向量F1,
计算8个方向上分解次数最多的方向D_max_project,及其最大数量N_max_project,和8个方向的分解值累加最大的方向D_max_grad,和最大累加值V__max_grad,计算方法见式(1)—式(4)。
其中,nd,(i,j)是像素(i,j)的梯度分解到d方向的数量,D_max_project是N_max_project取得最大值的方向。
其中,pd,(i,j)是像素(i,j)的梯度在d方向的分解值。D_max_grad是V_max_grad取得最大值的方向。
D_max_project、N_max_projec、D_max_grad,V_max_grad生成特征子向量F2。F1和F2合成特征向量F。
步骤5:非相似字符和相似字符组识别
该步骤使用的分类器模型是由预先训练的SMO二分类器组成。根据步骤4所述,提取所有数字和字母训练样本的特征。给每个字符加标签,数字的标签根据数值大小依次为0~9,和字母(V除外)根据排序先后,依次为10~35。两个不同的字符训练一个SMO二分类器,二分类器模型包括正负样本标签:pos和neg,阈值b和权重数组A。所有pos和neg均小于10的二分类器组成数字模型;所有pos和neg均大于等于10的二分类器组成字母模型;所有的二分类器组成数字和字母模型。
计算待识别字符的特征向量F和二分类器权重数组A的乘积,并与阈值b加和的值S,S大于0返回正标签pos,否则,返回负标签neg。每个二分类器对返回的标签所代表的字符类别投1票,组成分类器模型的所有二分类器依次对待识别字符投票,最后统计每一个类别得票数量,得票最多的类即为待识别字符的类别。
依据人民币冠字号序列规则,第1位为字母,后6位为数字,第2、3、4位为数字或字母。为了提高识别率和分类速度,根据待识别字符在冠字号序列中的位置选择数字模型、字母模型或者数字和字母模型进行分类。第一位使用字母模型,后6位使用数字模型,第2、3、4位使用数字和字母模型。
对于非相似字符,SMO识别结果即为最终带识别字符的类别。若识别结果为相似字符组中的某一个字符,则需要使用笔画模板匹配再次识别。
步骤6:相似字符识别
当使用数字和字母模型识别的结果为某相似字符组中的一个字符时,使用该组字符对应的笔画模板在匹配区域内进行模板匹配,匹配结果为最终识别结果。该步骤涉及的方法包括;
1、二值化
使用Otsu算法对字符图像进行二值化。
2、构造笔画模板
在钞票冠字号中,相似字符包括O(或者0)和D,8和B,1和I,2和Z等。笔画模板是尺寸与字符的笔画相近的矩形区域,用于区分相似字符中有差异的笔画。比如,在O和D的字符图像中,D有一笔画竖,而O没有,因此可以设定与D的笔画竖尺寸相近的矩形区域为笔画竖的模板。依次类推,可构造笔画横、笔画点的模板。如图5所示。模板1表示笔画横,模板2表示笔画竖,模板3表示笔画点。模板m的尺寸Wm*Hm(m=1,2,3)取决于归一化后字符笔画的尺寸。
3、设定模板匹配区域
根据相似字符有差别的区域的位置和大小,设定每组相似字符的模板匹配区域。O和D,8和B左半边不同,2和Z上半边不同,1和I上半边不同。如图6所示,O和D,8和B的可分域为左半边图像。2和Z的可分域为上方1/3的图像,1和I的可分域为上方中间位置。
4、模板匹配
进行笔画模板匹配时,需根据上文所述字符初次识别结果,选择相似字符所对应的预设笔画模板和匹配区域。假设,识别结果为2和Z,则选择笔画模板1,匹配区域为字符上半边。模板匹配时,笔画模板在该字符对应的匹配区域从左上角到右下角滑动,计算每次滑动的匹配结果,并统计模板m在匹配区域内的最大匹配值max_I,如式(5)所示.
其中,x_Start、x_End,y_Start,y_End为可分域的四个顶点。Max_I表示最大的匹配值。
比较max_I与经验阈值T(m)的大小,判断匹配区域内是否存在模板所表示的笔画,如式(6)。例如,对于字符2和Z,匹配区域内存在笔画横,则认为待识别字符为Z,否则为2。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。