一种高效DSP纸币冠字号识别方法技术领域
本发明属于数字图像处理领域,尤其涉及一种高效DSP(digitalsignal
processing,数字信号处理)纸币冠字号识别方法。
背景技术
纸币作为流通币,在人们的日常生活中起着举足轻重的作用。为了方便统一
管理以及防止假钞的流通,每张纸币都印制了独一无二的编号,即冠字号。由
于纸币的发行数量大,使用频率快,通过人工的方法去进行记录和处理是不现
实的。纸币冠字号识别要求识别结果准确,运行效率高,有实时性方面的要求。
随着DSP技术的发展,可以通过DSP平台,集合计算机视觉技术和图像处理技
术进行纸币冠字号的识别。
目前国内外纸币冠字号识别的方法有:有的通过USB将纸币图像传至上位机
进行处理,由于受限于USB传输速度,实时性效果差;有的通过DSP平台进行
纸币冠字号识别,但由于纸币图像的寻边、面向朝向的识别、冠字号区域的定
位分割以及冠字号的识别采用了低效率的方法,导致识别效果及软件的健壮性
较差。例如在纸币图像的寻边,没有进行异常点的去除,导致寻找的纸币边缘
不准确,影响纸币冠字号的定位和识别。又如纸币的面向朝向识别,采用了粗
网格特征,严重影响了程序的效率。
这些方法最主要的缺点就是效率低下,识别效果差,冠字号识别率不高。
发明内容
针对现有技术的不足,本发明提供一种高效DSP纸币冠字号识别方法,对
冠字号能够精确定位,识别效率高,效果更好。
本发明解决其技术问题所采用的技术方案如下,
一种高效DSP纸币冠字号识别方法,包括以下步骤:
a)采集纸币图像,寻找纸币的边缘点;
b)将找到的纸币边缘点中的异常边缘点排除,并拟合边直线,得到纸币上、下、
左、右四条边的斜率和截距;
c)对纸币的面向以及朝向进行识别;
d)对纸币上的冠字号进行定位;
e)对最后得到的精确定位的冠字号图像进行冠字号分割;
f)通过神经网络算法对冠字号进行识别。
进一步的,所述步骤a采集纸币图像,寻找纸币的边缘点,具体为:
a1)对纸币进行图像采集,选择采集到的图像的中心列,从该列的最上端的像
素点开始向下查找,找到第一个灰度值大于阈值T的像素点的坐标,此点即为
查找到的纸币上边缘的第一个点,记作Pm,设其坐标为(xm,ym),其中xm表示起
始点Pm的横坐标,ym表示起始点的纵坐标;
a2)以Pm为基准点向右查找纸币上边缘的边缘点:选取Pm向右位移delta处,纵
坐标为[ym-range/2,ym+range/2]这一列,其中,delta>0,range表示纵坐标方向
的搜索范围,并从该列从上到下依次查找第一个灰度值大于阈值T的像素点,
该点即为上边缘的Pm点的右边点Pm+1,再以Pm+1为基准点,以同样的方式查找Pm+2
点,Pm+3点,……,直到无法找到灰度值大于阈值T的像素点,则搜索停止,设
最后一个找到的点为Pm+b;
a3)以Pm为基准点向左查找纸币上边缘的边缘点:选取Pm向左位移delta处,纵
坐标为[ym-range/2,ym+range/2]这一列,其中,delta>0,range表示纵坐标方向
的搜索范围,并从该列从上到下依次查找第一个灰度值大于阈值T的像素点,
该点即为上边缘的Pm点的左边点Pm-1,再以Pm-1为基准点,以同样的方式查找Pm-2
点,Pm-3点,……,直到无法找到灰度值大于阈值T的像素点,则搜索停止,设
最后一个找到的点为Pm-f;
a4)最终找到纸币上边缘的点集为Pm-f,…Pm,…Pm+b,并将此点集记为Eu;
a5)基于步骤a1)-a4)同样的原理查找纸币下边缘的点集、左边缘的点集和右
边缘的点集,并将其分别记作Ed,El,Er。
进一步的,所述步骤b)将找到的纸币边缘点中的异常边缘点排除,并拟合
边直线,得到纸币上、下、左、右四条边的斜率和截距具体为:
b1)计算Eu点集中点的相关系数、斜率以及截距,分别记做Cu、ku和bu,计算Ed
点集中点的相关系数、斜率以及截距,分别记做Cd、kd和bd;
b2)比较Cu与Cd,若Cu<Cd,则转至步骤b3),若Cu>Cd,则转至步骤b6);
b3)首先处理Ed,若Cd小于阈值CT,则去除Ed中离直线y=kdx+bd距离最大的一
个点,并计算新的点集的Cd、kd和bd,重复该步骤,直到Cd≥CT;
b4)其次处理Eu,若Cu<CT,则进入步骤b5),若Cu≥CT则比较Cu与Cd,若此时
Cu<Cd则结束处理,若Cu>Cd则进入步骤b6);
b5)计算Eu的点集中前后两点的斜率,若其与kd的差的绝对值大于阈值kT,则
在点集Eu中去除相应的两点,用Eu剩下的点重新计算ku和bu,然后再比较Cu与
Cd,若Cu<Cd则结束处理,若Cu>Cd则进入步骤b6);
b6)首先处理Eu,若Cu小于阀值CT,则去除Eu中直线y=kux+bu距离最大的一
个点,并计算新的点集的Cu、ku和bu,重复该步骤,直到Cu≥CT;
b7)其次处理Ed,若Cd<CT,则进入步骤b8),若Cd≥CT则比较Cu与Cd,若此时
Cu>Cd则结束处理,若Cu<Cd则进入步骤b3);
b8)计算Ed的点集中前后两点的斜率,若其与ku的差的绝对值大于阀值kT,则在
点集Ed中去除相应的两点,用Ed剩下的点重新计算kd和bd;
b9)基于步骤b1)-b8)同样的原理处理El和Er,从而得到左、右边缘的斜率和截
距kl和bl以及kr和br。
进一步的,所述步骤c)对纸币的面向以及朝向进行识别具体包括:
c1)选取纸币图像的中心w×h像素区域,其中,w为中心区域的宽,h为中心区
域的高,并计算该区域特征;
c2)设定决策面方程
g
(
w
0
,
w
1
,
w
2
,
w
3
)
=
w
0
+
Σ
i
=
1
3
w
i
·
f
i
-
-
-
(
1
)
]]>
(w0,w1,w2,w3)为权值,(f1,f2,f3)为特征,此处特征为该区域的全局平均值、行平均
值的标准差以及左、右半图标准差中的较小值;
c3)将判断面向的训练参数代入(w0,w1,w2,w3),若g(w0,w1,w2,w3)≥0,则说明当前
处理的第一张图像即为正面图像;若g(w0,w1,w2,w3)<0,则说明处理的第二张图
像为正面图像;
c4)选择正面图像作为接下来要处理的对象;
c5)抠取区域为(x',y',w',h')的左下角矩形区域R,其中,x'和y'表示R的左上角
的横坐标和纵坐标,w'和h'表示R的宽度和高度;此时,如果纸币是正置的,则
选到的图像为一片空白区域,如果纸币是倒置的,则选择到的图像为带有纹理
的区域,计算该区域的全局平均值、行平均值的标准差以及左、右半图标准差
中的较小值作为特征;
c6)根据式(1),将判断朝向的训练参数代入(w0,w1,w2,w3),若g(w0,w1,w2,w3)≥0,
则说明纸币为正置的,冠字号在左下角区域;若g(w0,w1,w2,w3)<0,则说明纸币
为倒置的,冠字号在右上角区域。
进一步的,所述步骤d)对纸币上的冠字号进行定位具体如下:
d1)设冠字号区域上、下、左、右边缘的斜率和截距分别为kgu,bgu;kgd,bgd;
kgl,bgl;kgr,bgr;若纸币是正置的,则有:kgu=kd,bgu=bd-p0,kgd=kd,bgd=bd-p1,
kgl=kl,bgl=bl+p2,kgr=kl,bgr=bl+p3,若纸币是倒置的,则有:kgu=ku,bgu=bu+p0,
kgd=ku,bgd=bu+p1,kgl=kr,bgl=br-p2,kgr=kr,bgr=br-p3,其中,p0、p1、p2、
p3分别为为上、下、左、右边缘的参数;
d2)由于此时的冠字号图像是倾斜的,因此通过确定的冠字号区域的斜率截距
参数即可以将冠字号图像仿射变换至宽为wg,高为hg的正置的冠字号图像中;
称此图像为粗定位的冠字号图像,记为Ig_c;
d3)首先计算Ig_c中每隔两行的水平投影,结果为一向量,如式(2)所示
[
p
0
,
p
3
,
...
,
p
h
g
-
1
]
-
-
-
(
2
)
,
]]>
其中hg-1表示第hg-1行;
d4)然后计算投影结果中每相邻三项的和,找到和的最小值所对应的三个下标
值,取中间的坐标数作为精确定位的冠字码区域的中心行数,以此行数为中心,
分别向上向下取n行,最后组成的图像即为精确定位的冠字号图像。
进一步的,所述步骤e)对最后得到的精确定位的冠字号图像中的冠字号进
行冠字号分割具体为:e1)对精确定位的冠字号图像进行自适应二值化,从而
得到相应的二值图BW,其中黑色为背景,白色为前景;
e2)BW第一行的设置:从左到右扫描,当遇到一段连续的前景(以下称为前景
段),就赋予其新的标号,标号为一个数字,用于标记不同的连通域,并且将当
前段的尺寸属性作为新的标号的初始尺寸属性,即连通域的上、下、左、右坐
标;
e3)BW第i行的设置:从左到右扫描,当遇到前景段时,查看该前景段的上一
行是否也有前景段,若无,则赋予当前前景段新的标号,并且将当前段的尺寸
属性作为新的标号的初始尺寸属性,若上一行有一个或多个前景段,则跳转至
e4);
e4)将上一行所有前景段对应的标号记录下来,找到其中最小的标号,将当前
前景段赋予该标号,并且找到记录的标号所指向的最底层标号中的最小标号,
接下来,将记录的标号全部指向该最小标号,同时,更新该最小标号中的四项
尺寸属性(即连通域的上、下、左、右坐标);
e5)遍历当前所有标号,将所有不重复的最底层标号的四项尺寸属性作为最终
外接矩形的属性;
e6)将高度大于阀值hT像素的矩形全部排除;
e7)判断外接矩形的个数ns是否大于10,若大于10,则计算所有外接矩形质心
的纵坐标的平均值,并去除质心纵坐标距平均值偏移量最大的ns-10个外接矩
形,最后根据外接矩形的起始横坐标对所有外接矩形从小到大排序,最终完成
对冠字号的分割。
再进一步的,所述步骤f)通过神经网络算法对冠字号进行识别具体包括:
f1)将分割的字符进行灰度归一化,即统计分割出的字符的灰度直方图,获得
由黑到白的第20%处像素对应的灰度值T1和由白到黑的第20%处像素对应的灰度
值T2,从而将原图中像素值范围在[T1,T2]的像素线性映射到[0,255],并将小于T1的
像素值映射为0,将大于T2的像素值映射为255;
f2)大小归一化,即将灰度归一化后的字符缩放为wc×hc大小,其中,wc为归一
化后的字符宽度,hc为归一化后的字符高度,归一化后的wc×hc的像素值即作为
后续神经网络的输入特征;
f3)根据训练好的参数和神经网络模型计算神经网络中各个节点的参数;
f4)在神经网络实际输出的34个节点中找到最大的那个值,其对应的字母或者
数字即为输入图像的识别结果;
f5)按顺序将分割好的10个字符依次输入神经网络,即可得到冠字号识别的最
终结果。
本发明的有益效果是:能够对冠字号进行精确定位,并且对冠字号的识别
效率和效果都有大幅提高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施
例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述
中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付
出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的总体流程示意图;
图2为本发明的寻找纸币边缘算法流程示意图;
图3为本发明的排除异常点并拟合直线算法流程示意图;
图4为本发明的纸币面向和朝向识别算法流程示意图;
图5为本发明的冠字号定位算法流程示意图;
图6为本发明的冠字号分割算法流程示意图;
图7为本发明的冠字号的神经网络识别算法流程示意图。
具体实施方式
下面结合附图对本发明的优选实施例进行详细阐述,以使本发明的优点和
特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚
明确的界定。
如图1-图7所示,一种高效DSP纸币冠字号识别方法,包括以下步骤:
a)采集纸币图像,寻找纸币的边缘点,具体为:
a1)对纸币进行图像采集,选择采集到的图像的中心列,从该列的最上端的像
素点开始向下查找,找到第一个灰度值大于阈值T的像素点的坐标,此点即为
查找到的纸币上边缘的第一个点,记作Pm,设其坐标为(xm,ym),其中xm表示起
始点Pm的横坐标,ym表示起始点的纵坐标;
a2)以Pm为基准点向右查找纸币上边缘的边缘点:选取Pm向右位移delta处,纵
坐标为[ym-range/2,ym+range/2]这一列,其中,delta>0,range表示纵坐标方向
的搜索范围,并从该列从上到下依次查找第一个灰度值大于阈值T的像素点,
该点即为上边缘的Pm点的右边点Pm+1,再以Pm+1为基准点,以同样的方式查找Pm+2
点,Pm+3点,……,直到无法找到灰度值大于阈值T的像素点,则搜索停止,设
最后一个找到的点为Pm+b;
a3)以Pm为基准点向左查找纸币上边缘的边缘点:选取Pm向左位移delta处,纵
坐标为[ym-range/2,ym+range/2]这一列,其中,delta>0,range表示纵坐标方向
的搜索范围,并从该列从上到下依次查找第一个灰度值大于阈值T的像素点,
该点即为上边缘的Pm点的左边点Pm-1,再以Pm-1为基准点,以同样的方式查找Pm-2
点,Pm-3点,……,直到无法找到灰度值大于阈值T的像素点,则搜索停止,设
最后一个找到的点为Pm-f;
a4)最终找到纸币上边缘的点集为Pm-f,…Pm,…Pm+b,并将此点集记为Eu;
a5)基于步骤a1)-a4)同样的原理查找纸币下边缘的点集、左边缘的点集和右
边缘的点集,并将其分别记作Ed,El,Er。例如,在寻找下边缘点的时候,在步
骤a1)中从最下端的像素点开始向上查找;在步骤a2)中则选取Pm向左位移delta
处,纵坐标为[ym-range/2,ym+range/2]这一列,并且从下到上查找第一个灰度值
大于阈值T的像素点,该点即为下边缘的Pm点的左边点Pm+1;在步骤a3)中以Pm
为基准点向右查找纸币下边缘的边缘点:选取Pm向右位移delta处,纵坐标为
[ym-range/2,ym+range/2]这一列,并从该列从下到上依次查找第一个灰度值大于
阈值T的像素点,该点即为下边缘的Pm点的右边点Pm-1。
b)将找到的纸币边缘点中的异常边缘点排除,并拟合边缘直线,得到纸币上、
下、左、右四条边的斜率和截距,具体为:
b1)计算Eu点集中点的相关系数、斜率以及截距,分别记做Cu、ku和bu,计算Ed
点集中点的相关系数、斜率以及截距,分别记做Cd、kd和bd;
b2)比较Cu与Cd,若Cu<Cd,则转至步骤b3),若Cu>Cd,则转至步骤b6);
b3)首先处理Ed,若Cd小于阈值CT,则去除Ed中离直线y=kdx+bd距离最大的一
个点,并计算新的点集的Cd、kd和bd,重复该步骤,直到Cd≥CT;
b4)其次处理Eu,若Cu<CT,则进入步骤b5),若Cu≥CT则比较Cu与Cd,若此时
Cu<Cd则结束处理,若Cu>Cd则进入步骤b6);
b5)计算Eu的点集中前后两点的斜率,若其与kd的差的绝对值大于阈值kT,则
在点集Eu中去除相应的两点,用Eu剩下的点重新计算ku和bu,然后再比较Cu与
Cd,若Cu<Cd则结束处理,若Cu>Cd则进入步骤b6);
b6)首先处理Eu,若Cu小于阀值CT,则去除Eu中直线y=kux+bu距离最大的一
个点,并计算新的点集的Cu、ku和bu,重复该步骤,直到Cu≥CT;
b7)其次处理Ed,若Cd<CT,则进入步骤b8),若Cd≥CT则比较Cu与Cd,若此时
Cu>Cd则结束处理,若Cu<Cd则进入步骤b3);
b8)计算Ed的点集中前后两点的斜率,若其与ku的差的绝对值大于阀值kT,则在
点集Ed中去除相应的两点,用Ed剩下的点重新计算kd和bd;
b9)基于步骤b1)-b8)同样的原理处理El和Er,从而得到左、右边缘的斜率和截
距kl和bl以及kr和br。
c)对纸币的面向以及朝向进行识别,具体为:
c1)选取纸币图像的中心w×h像素区域,其中,w为中心区域的宽,h为中心区
域的高,并计算该区域特征;
c2)设定决策面方程
g
(
w
0
,
w
1
,
w
2
,
w
3
)
=
w
0
+
Σ
i
=
1
3
w
i
·
f
i
-
-
-
(
1
)
]]>
(w0,w1,w2,w3)为权值,(f1,f2,f3)为特征,此处特征为该区域的全局平均值、行平均
值的标准差以及左、右半图标准差中的较小值;
c3)将判断面向的训练参数代入(w0,w1,w2,w3),该训练参数通logistic
regression方法训练得出,若g(w0,w1,w2,w3)≥0,则说明当前处理的第一张图像
即为正面图像;若g(w0,w1,w2,w3)<0,则说明处理的第二张图像为正面图像;
c4)选择正面图像作为接下来要处理的对象;
c5)抠取区域为(x',y',w',h')的左下角矩形区域R,其中,x'和y'表示R的左上角
的横坐标和纵坐标,w'和h'表示R的宽度和高度;此时,如果纸币是正置的,则
选到的图像为一片空白区域,如果纸币是倒置的,则选择到的图像为带有纹理
的区域,计算该区域的全局平均值、行平均值的标准差以及左、右半图标准差
中的较小值(即左半图标准差和右半图标准差中较小的那一个)作为特征;
c6)根据式(1),将判断朝向的训练参数代入(w0,w1,w2,w3),该训练参数通logistic
regression方法训练得出,若g(w0,w1,w2,w3)≥0,则说明纸币为正置的,冠字号
在左下角区域;若g(w0,w1,w2,w3)<0,则说明纸币为倒置的,冠字号在右上角区
域;
d)对纸币上的冠字号进行定位,具体为:
d1)设冠字号区域上、下、左、右边缘的斜率和截距分别为kgu,bgu;kgd,bgd;
kgl,bgl;kgr,bgr;若纸币是正置的,则有:kgu=kd,bgu=bd-p0,kgd=kd,bgd=bd-p1,
kgl=kl,bgl=bl+p2,kgr=kl,bgr=bl+p3,若纸币是倒置的,则有:kgu=ku,bgu=bu+p0,
kgd=ku,bgd=bu+p1,kgl=kr,bgl=br-p2,kgr=kr,bgr=br-p3,其中,p0、p1、p2、
p3分别为为上、下、左、右边缘的参数;
d2)由于此时的冠字号图像是倾斜的,因此通过确定的冠字号区域的斜率截距
参数即可以将冠字号图像仿射变换至宽为wg,高为hg的正置的冠字号图像中;
称此图像为粗定位的冠字号图像,记为Ig_c;
d3)首先计算Ig_c中每隔两行的水平投影(即每隔两行后的那一行的水平投影),
结果为一向量,如式(2)所示
[
p
0
,
p
3
,
...
,
p
h
g
-
1
]
-
-
-
(
2
)
,
]]>
其中hg-1表示第hg-1行;
d4)然后计算投影结果中每相邻三项的和,找到和的最小值所对应的三个下标
值,取中间的坐标数作为精确定位的冠字码区域的中心行数,以此行数为中心,
分别向上向下取n行,最后组成的图像即为精确定位的冠字号图像。
e)对最后得到的精确定位的冠字号图像进行冠字号分割,具体为:
具体为:e1)对精确定位的冠字号图像进行自适应二值化,从而得到相应的二
值图BW,其中黑色为背景,白色为前景;
e2)BW第一行的设置:从左到右扫描,当遇到一段连续的前景(以下称为前景
段),就赋予其新的标号,标号为一个数字,用于标记不同的连通域,并且将当
前段的尺寸属性作为新的标号的初始尺寸属性,即连通域的上、下、左、右坐
标;
e3)BW第i行的设置(i为第二行至最后一行的任意行):从左到右扫描,当遇
到前景段时,查看该前景段的上一行是否也有前景段,若无,则赋予当前前景
段新的标号,并且将当前段的尺寸属性作为新的标号的初始尺寸属性,若上一
行有一个或多个前景段,则跳转至e4);
e4)将上一行所有前景段对应的标号记录下来,找到其中最小的标号,将当前
前景段赋予该标号,并且找到记录的标号所指向的最底层标号中的最小标号,
接下来,将记录的标号全部指向该最小标号,同时,更新该最小标号中的四项
尺寸属性(即连通域的上、下、左、右坐标);
e5)遍历当前所有标号,将所有不重复的最底层标号的四项尺寸属性作为最终
外接矩形的属性;
e6)将高度大于阀值hT像素的矩形全部排除这里hT取12,由于真实的冠字号中
的单个字符在纵向80dpi的情况下,高度不大于12像素,因此将高度大于12
像素的矩形全部排除;
e7)判断外接矩形的个数ns是否大于10,若大于10,则计算所有外接矩形质心
的纵坐标的平均值,并去除质心纵坐标距平均值偏移量最大的ns-10个外接矩
形,最后根据外接矩形的起始横坐标对所有外接矩形从小到大排序,最终完成
对冠字号的分割。
f)通过神经网络算法对冠字号进行识别,具体为:
f1)将分割的字符进行灰度归一化,即统计分割出的字符的灰度直方图,获得
由黑到白的第20%处像素对应的灰度值T1和由白到黑的第20%处像素对应的灰度
值T2,从而将原图中像素值范围在[T1,T2]的像素线性映射到[0,255],并将小于T1的
像素值映射为0,将大于T2的像素值映射为255;
f2)大小归一化,即将灰度归一化后的字符缩放为wc×hc大小,其中,wc为归一
化后的字符宽度,hc为归一化后的字符高度,归一化后的wc×hc的像素值即作为
后续神经网络的输入特征;
f3)根据训练好的参数和神经网络模型计算神经网络中各个节点的参数;
f4)在神经网络实际输出的34个节点中找到最大的那个值,其对应的字母或者
数字即为输入图像的识别结果;
f5)按顺序将分割好的10个字符依次输入神经网络,即可得到冠字号识别的最
终结果。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于
此,任何不经过创造性劳动想到的变化或替换,都应涵盖在本发明的保护范围
之内。因此,本发明的保护范围应该以权利要求书所限定的保护范围为准。