彭烨 李霆
(五邑大学信息工程学院)
随着经济的快速发展,印鉴作为一种认证手段已广泛应用于人们的日常生活中。传统的印鉴识别是通过人工完成的,主要依靠的方法有重迭法、折角法、测量法、剪贴法等。这些人工鉴定的方法存在速度慢、精度低、过程复杂等缺点,并且易受鉴定人员经验、心情等因素的影响。随着各种票据应用的普及,对票据印鉴的识别和验证工作量越来越大,为提高工作效率,需要实现票据印鉴的自动识别。印鉴自动识别就是利用数字图像处理和模式识别技术来对印鉴的真伪进行自动识别,既要求有正确识别假印鉴的能力,又要有容忍真印鉴间较大差异的适应性。加盖印鉴时,由于用力不均、印泥质量等因素的影响,会使得印鉴出现颜色深浅不均、图像模糊等现象,再加上票据本身还有不同灰度、不同颜色底纹和文字,因此印鉴的预处理过程在印鉴识别系统中就变得尤为重要。
从20世纪80年代起,国内外很多学者对印鉴识别系统进行了深入的研究[1],而印鉴预处理作为印鉴识别系统中一个重要环节,也是学者们重点研究的课题。印鉴预处理的目的是对印鉴进行分割和噪声去除,提取单纯的印鉴图像,并尽量多地保留印鉴本身的固有信息,其任务主要有3点:1) 从票据中清晰、完整地分割出印鉴图像,使印鉴和背景分离,得到分割后的二值图像;2) 消除噪声和票据上的其它图像、文字干扰;3) 对印鉴的残缺部分进行必要修复。
基于RGB色度空间的印鉴提取算法采用了阈值法,利用彩色信息分割的思想实现印鉴和杂乱背景的分离。常用的彩色空间模型有RGB和HSI两种[2],基于这两种空间模型的印鉴提取方法有很多,例如文献[3]采用RGB空间模型,文献[1]、[4]采用HSI空间模型。
本文采用常用的RGB彩色模型,见图1、图2[2]。RGB彩色模型属于线性表示系统,在RGB彩色空间中,彩色图像的每个像素都能用彩色立方体中的一个点来表示,比较简单直观。它采用三维直角坐标系,红、绿、蓝为原色,各个原色混合在一起可以产生复合色,如图1所示。RGB颜色模型通常采用图2所示的单位立方体来表示,在正方体的主对角线上,各原色的强度相等,产生由暗到明的白色,也就是不同的灰度值,其中(0,0,0)为黑色,(1,1,1)为白色,正方体的其它六个角点分别为红、黄、绿、青、蓝和品红。
图1 RGB三原色混合效果
图2 RGB立方体图
根据颜色信息,可以将印鉴图像分为3个部分:第1部分为白色或灰色的背景区域;第2部分为红色印鉴代表的目标区域以及干扰噪声;第3部分为黑色或者蓝色的手写签名、印刷文字和底纹[5]。
设图像中每点的红色分量为r,绿色分量为g,蓝色分量为b。考虑到票据图像中红色印鉴的r分量所占的比例要远大于印鉴文字、边框和背景上的r分量比例,通过分析图像红色像素点的各分量,从统计中的数据可以发现,图像中红色印鉴满足条件(mod((r i, j)-g( i, j)),255 ) > n ( , n >0),利用这一点,可得到提取红色印鉴粗略图像的算法其中, h(i, j)为图像中(i, j)点的像素值,这里定义h( i, j)有0、1两种取值,这样转化之后的图像即为二值图像; r( i, j)为图像中(i, j)点对应的红色分量值; g(i, j)为(i, j)点对应的绿色分量值;n是一个可调阈值,并不固定,一般n值可以随机取一正数,然后看提取图像的效果来调整n值的大小,直到提取的图像达到满意的效果为止,这时的n值就是符合所提取图像的阈值。一般来说,如果所选n值太小,满足条件(mo d (r - g),255)> n的像素点会较多,也就是说可以找到所有属于印鉴的像素点,但是也会找到较多不属于印鉴的像素点;如果所选n值太大,满足条件(mo d (r - g),255)> n 的像素点会较少,只能找到部分属于印鉴的像素点,使得到的印鉴图像会有所缺损。由此可知,n值的选择会直接影响到印鉴图像的提取效果,需要通过不断试验,观察图像的提取效果来确定最终的阈值n。
通过上面介绍的算法可以去掉印鉴图像中的背景以及文字干扰,得到一个粗略的印鉴图像,但印鉴的很多细节都不清晰,需要进一步处理。有了印鉴的一个粗略图像,只需要知道印鉴的具体轮廓,就可以将印鉴的具体轮廓图像与印鉴的粗略图像进行“与”操作,得到印鉴的清晰图像。本文通过将原始图像二值化,和得到的印鉴粗略图像进行“与”操作,得到的图像就是一个具有清晰细节的印鉴图像。
应用以上算法对整幅图像进行处理,得到的图像为二值图像,其中白色像素对应于原始图像的红色印鉴。
采集彩色印鉴图像如图3所示,可以看出图像分为灰色背景、红色印章、黑色手写体文字、蓝色印刷文字和表格几部分。
图3 原始图像
利用RGB彩色空间模型颜色信息的特点,运用算法(1)对图3进行处理。基本MATLAB代码如下:
image=imread('C:UsersdDesktop论文印章图片stamp_1.bmp');
r=image(:,:,1);
g=image(:,:,2);
b=image(:,:,3);
exact_red=mod((r-g),255);
bw1=(exact_red>35);
图4是经过算法(1)处理后的二值图像,其中白色像素对应于印鉴图像。由图4可以看出,经过处理后的印鉴图像已从杂乱的背景中分离出来,得到的是印鉴的一个粗略图像,这是由于图像受纸张、光照等因素的影响,在对印鉴图像进行分割时,印鉴像素点与周围一些非印鉴像素点之间并没有一个精确的分离值,对于所选阈值n,一些非印鉴像素点也有可能满足条件(mo d (r - g),255)> n,所以得到的印鉴图像比实际印鉴图像要大一些,并且很多细节都不清晰,图像的视觉效果不好。
图4 通过算法(1)提取的红色印鉴
接下来需要对得到的粗略印鉴图像进行处理。将图4与图5进行“与”操作,可以得到较好的具有清晰细节的印鉴图像,见图6。MATLAB代码如下:
grayimage=rgb2gray(image);
bw2=im2bw(grayimage,0.6);
bw3=imcomplement(bw2);
multiply_bw=immultiply(bw1,bw3)。
比较图4和图6效果,可以知道,通过算法提取出的最终印鉴图像的细节比较清晰,印鉴的视觉效果较好。
图5 原始图像的二值图像
图6 通过算法提取的最终图像
大多数情况下,印鉴图像易受随机噪声、印鉴色彩深度不均、印油量多少、盖印力度大小等因素的影响。为了得到较好的印鉴提取效果,需要采取相应的图像处理方法来消除图像中的噪点。
图7是自适应均值去噪后的图像。通过算法提取出的最终印鉴图像会存在一些噪点,所以提取印鉴图像后,还需要对图像去噪,以得到较好的预处理结果。去噪的方法有很多,需要根据图像中出现噪点的具体情况来确定去噪方法,文献[2]详细讲解了多种去噪方法,这里就不再一一介绍。
由于受纸张、光照、印泥深浅的影响,得到的印鉴可能会出现残缺现象,对于这种情况,需要对得到的印鉴进行必要的修复。一般是采用形态学操作,但是该方法很容易造成欠填充或过填充,因此有学者提出了对称分布填充算法和均匀分布二级填充算法。首先采用对称分布填充算法填充小的空洞,然后采用均匀分布二级填充算法填充大的空洞,最后采用中值滤波来对印鉴进行进一步的修复和噪声去除[1]。本文采用一般的形态学方法进行印鉴的修复,如图8所示,可以看出图8的视觉效果要优于图7。
图7 自适应均值去噪后的图像
图8 腐蚀后的图像
印鉴图像的自动提取是票据自动处理系统中的关键步骤,由于要把提取出的印鉴同预先保留的模板印鉴进行比对,通过求两印鉴的相似性[6]来确定票据的真伪,因此印鉴提取质量的好坏直接影响票据的验证效果。印鉴提取效果好坏的关键在于所选阈值n的大小,这里并没有一个确定的方法来确定阈值,只是根据个人经验,通过更改阈值,观察不同阈值下的图像提取效果,选取提取效果最理想的n值作为阈值。本文算法简单、计算速度较快,并且提取图像的质量较好,可为进一步的印鉴识别提供保证。在接下来的工作中,需要研究如何以最快的速度来确定n值。
[1] 郭磊民.银行验印系统中的印鉴自动识别[D].重庆:重庆大学,2005.
[2] (美)冈萨雷斯,伍兹.数字图像处理[M].阮秋琦,阮宇智,译.北京:电子工业出版社,2001.
[3] 马丽霞,朱秋萍.图像处理技术在印章识别预处理中的应用[J].武汉大学学报 信息科学版,2004,29(8):691-693.
[4] Katsuhiko Ueda and Ken'ichi Matsuo. Automatic Seal Imprint Verification System for Bankcheck Processing[J]. Proceedings of the Third International Conference on Information Technology and Applications.IEEE,2005.
[5] 赵永涛,李志敏,王洪建,等.印章识别中的图像预处理[J].仪器仪表学报,2004,25(增2):401-403.
[6] 山海涛,郭建星,耿则勋.影像匹配中几种相似性测度的分析[J].测绘信息与工程,2003,28(4):11-13.