胡晨茜
(华中师大一附中,湖北 武汉 430223)
纸币图像鉴伪预处理的方法研究
胡晨茜
(华中师大一附中,湖北 武汉 430223)
随着我国经济的高速发展,纸币的发行量和流通量也在逐渐扩大,那么对纸币的鉴伪工作就显得尤为重要。由于纸币污损和点钞机运转的情况不同,鉴伪之前对纸币图像的预处理也是一个不可忽视的步骤。本文正是着眼于此,研究了纸币图像的倾斜校正和大津法二值化算法,编程实现了对纸币源图像的相关图像预处理。实验结果验证了提出的方法的有效性与正确性。
倾斜校正;大津法;图像预处理
对纸币的鉴伪工作,是针对于验钞机内图像采集器采集的图像进行的,而验钞机采集图像信息的同时,也在高速的运转,这样采集器采集到的图像难免会产生一定的形变,所以对图像进行校正处理显得尤为重要。图像变换在很多项目研究和工程应用中被使用到,例如:目标跟踪[1]、图像配准、车牌号码识别等等。图像变换的形式主要有多项式变换、透视变换和仿射变换三种。在对灰度图像预处理中,一般会有二值化处理,常用的方法有大津法和迭代法。迭代法的主要思想是利用循环迭代的方法,逐步逼近最佳阈值,能区分图像的背景和目标,算法比较简单。大津法是一种全局动态二值化算法,这种算法在一定条件下不受图像对比度和亮度变化的影响。经过二值化处理后,才能有效地对纸币上的特征区域进行后续的处理与鉴伪工作。
本文主要利用图像变换中的仿射模型,来对纸币图像进行校正,利用大津法来对图像进行二值化,实现目标图像和背景图像的分割。
1.1大津法(OTSU)
大津算法也称为最大类间差法,简称为OTSU,该算法是由日本学者大津于1979年提出的,是一种自适应的阈值确定的方法。它是按图像的灰度特性,将图像分成背景和目标两个部分。
记M*N图像G在(i,j)点处的灰度值为f(i,j),图像的灰度级为m,不妨假设f(i,j)取值为[0,m-1],记为k的频率,那么:
假设选取灰度值t为阈值来对背景图像和目标进行分割,此时背景与目标分别为:然后求出背景图像和目标图像部分所占的比例以及灰度均值,然后根据大津法算法计算出图像的最佳阈值ThresholdValue[8]
找到灰度图像最佳阈值后,将图像按下面的规则二值化分割:
式(8)中:G(i,j)表示经过二值化分割后的图像。大津算法是一种全局动态二值化算法,不受图像的亮度和对比度的影响。
1.2仿射变换
仿射变换是一种二维坐标之间的线性变换,它具有一些特性,一是图形中的直线经过仿射变换后任然是直线,另一个是变换前后二维图形上的点相对位置保持不变。仿射变换可以通过一系列的平移、翻转、缩放、旋转、错切等复合变换来实现,每个仿射变换可以由一个矩阵A和一个向量b给出,它可以写作A和一个附加的列b。一个仿射变换对应于一个矩阵和一个向量的乘法,而仿射变换的复合对应于普通的矩阵乘法,只要加入一个额外的行到矩阵的底下,这一行全部是0除了最右边是一个1,而列向量的底下要加上一个1。
1.3双线性插值
原始图像经过仿射变换后,像素点发生了偏移,需要通过插值处理来还原原始图像在目标图像中的像素。比较常用的方法如双线性插值。
双线性插值,顾名思义就是两个方向的线性插值复合起来。该算法是利用了需要处理的原始图像像素点周围的四个像素点的相关性,通过双线插值算法计算得出的。对于一个目的坐标,通过图像变换得到其在原始图像的对应的浮点坐标(i+u,j+v),其中i,j均为非负整数,u,v为[0,l]区间的浮点数,则这个像素的值f( i+u,j+v)可由原图像中坐标为(i,j)、(i+1,j)、(i,j +1)、(i+1,j +1)所对应的周围四个像素的值决定,即:
其中f(i,j)表示源图像(i,j)处的像素值,以此类推,这就是双线性内插值法。
2.1纸币的倾斜校正
点钞机内部装有图像传感器,在纸币进出点钞机的同时,图像传感器会采集纸币的扫描图像。并将连续的图像信息转化为数字形式,即对连续图像的离散化,将整个图像划分为微小矩形区域的像素点。本文主要是针对灰度级为256级,格式为“bmp”位图格式,大小为800×411的纸币扫描图像来进行相关图像处理,bmp格式的源图像如下图所示:
图1 纸币源图像
从图中我们可以发现纸币图像并不是“正着”的,而是有一定的倾斜,这是因为通过点钞机图像采集装置获取的纸币图像信息,是在点钞机高速运转下获得的,因此,扫描得到的图像就会有一定的倾斜。
在对纸币图像进行倾斜校正时,需要知道仿射变换的变换矩阵M。因此,在已知最终校正后目标纸币图像顶点坐标的情况下,可以通过检测纸币源图像的边缘直线。检测边缘的方法可以利用纸币图像边缘像素灰度值的跳跃性特点来实现。纸币图像与背景相差很大,背景是黑色,而纸币图像的边缘呈灰白色,因此人民币边缘的像素灰度值过渡急剧,存在明显的灰度差,根据这一差异,可以通过遍历图像中的像素点来找出纸币边缘的特征点。
当找到纸币四个边缘的特征点后,采用直线拟合的方法来拟合出图像边缘的四条直线,然后通过直线的相交来求出纸币图像的四个角点坐标,然后根据这四个角点坐标,联同校正后目标顶点坐标来解方程求出仿射变换的变换矩阵M。最后,对整个图像利用求出来的仿射矩阵M来进行仿射变换,对纸币源图像进行初步地校正。最后,为了避免像素偏差,利用前面提到的双线性插值的方法,对初步校正后的图像像素点进行插值处理,实现纸币图像的倾斜校正。
2.2冠字号的定位提取
纸币经过上一节的校正处理后,为了能够进行冠字号的定位和提取,需要对其进行二值化处理。二值化图像是指整个图像中像素灰度值只有白(灰度值为255)和黑(灰度值为0)。这里利用前面提到的大津法二值化来处理图像。
经过二值化处理后,需要将纸币上含有冠字号的部分图像分割出来,由于纸币的大小固定,那么冠字号的大致区域可以确定,可以首先对冠字号进行粗定位,截取包含冠字号的一小部分图像,然后进行像素点的水平投影和垂直投影方法确定冠字号边界[9],从而实现冠字号的精确定位。
根据纸币校正和冠字号定位提取的方法,在Visual Studio 2013平台上,编程实现了各部分的相关图像处理。对图3.1所示的源图像进行倾斜校正,源图像的灰度级为256,图像大小为800 411×,定义倾斜校正后纸币的顶点坐标为
A(100,50)、B(100,358)、C(700,50)、D(700,358)。
首先通过边缘检测,找出像素跳变的特征点,然后拟合出了纸币的上下左右四条直线:
从拟合得到的直线可以看出,在误差允许范围内,上下、左右的直线是近似平行的,所以利用这些直线可以求得源图像的四个角点为A'(53.57,77.23)、B '(25.10,300.69)、C '(663.65,118.21)、D '(634.81,347.94)。 利用这四个源图像角点坐标和目标图像的四个顶点坐标,可以解方程得到仿射变换矩阵为:
然后利用仿射矩阵M对整幅图像进行倾斜变换,通过插值处理后得到校正后的纸币图像如下图:
图2 倾斜校正后的纸币图像
接下来利用大津法对图像进行二值化处理中,求得的最大阈值为149,即把灰度值大于149的像素点的灰度值置为255,使其显示呈白色,把灰度值小于149的像素点的灰度值置为0,使其显示呈黑色。最后通过水平和垂直投影的方法,定位冠字号所在区域,并提取了二值化后的冠字号图像,如下图所示:
图3 定位后提取的冠字号二值化图像
本文主要围绕纸币倾斜校正、冠字号二值化处理与定位的相关算法进行了研究,对点钞机采集的纸币图像进行了相关的预处理与分析,编程实现了各个算法。实验结果表明本文所使用的利用仿射变换来实现纸币的校正,以及大津法二值化的方法是准确和有效的,为纸币的其他后续处理,例如字符分割与识别奠定了良好的基础。
[1] 李培华,肖莉娟. 基于Mean Shift的相似性变换和仿射变换目标跟踪算法[J]. 中国图像图形学报,2011,02:258-266.
[2]Liu D,Yu J. Otsu Method and K-means[C]// 2009 Ninth International Conference on Hybrid Intelligent Systems. IEEE Computer Society,2009:344-349.
[3] 冼允廷,路小波,施毅,钟琨. 基于投影二分法的车牌字符分割方法[J]. 交通与计算机,2007,05:69-72.
TP391.41
A
1003-5168(2015)11-227-02