贾建忠
(乌鲁木齐职业大学信息工程学院,新疆 乌鲁木齐 830001)
手写签名真伪鉴别是司法鉴定方面的一个重要应用。自1965年A. J. Manceri提出通过计算机算法识别手写签名并进行身份鉴别的可行性报告后,手写签名鉴别伴随着人工智能、机器学习等技术的发展,不断取得进展。但时至今日,手写签名鉴别仍然主要以相关专家人工鉴别为主。中文笔迹学专家韩进将汉字笔迹特征分为篇、字、偏旁、笔画、局部等5个方面。计算机离线签名鉴别技术特征提取方法主要有2类:
1)基于文字全局特征的傅里叶变换、投影变换、小波变换和笔画密度特征等,特点是直接对签名图像进行无分割的、基于像素的全面特征提取分析[1]。近期的研究方面,使用小波分析方法是一个热点。文献[1]中采用离散小波高频部分系数矩阵作为笔迹特征进行提取,其结果证实了小波分析对于文字特征提取的有效性和可行性。网格特征提取也是当前手写文字全局特征提取的一个典型方法,文献[2]中采用6×6弹性网格划分文字字符,计算每个网格笔划像素密度特征,实验结果表明此特征提取方法十分适合印刷体和书写较为规范的手写体文字识别,但不利于文字笔划的细节特征提取。卷积神经网络作为近年来图像识别领域的重要技术手段,其优势是既可以用于特征提取也可用于分类器设计,且图像特征提取细致全面,图像分割准确性高,缺点是特征提取算法复杂,用于文字识别时因特征点过多常需要简化处理,网络训练量大。文献[3]先使用滑动窗口进行文字行分割,后采用深度卷积神经网络提取笔迹特征并使用fisher vectors算法进行特征编码,最后使用卷积神经网络分类器进行训练并识别,取得了汉语手写笔迹识别正确率90%的实验结果。
2)对手写签名图像的局部笔画、结构、梯度、纹理、轮廓、几何等特征进行提取,特点是首先对待识别文字进行字符级、字母级或部首级的分割,化繁为简,提取能够体现书写习惯的笔画方向、纹理、外形轮廓、连通性等局部特征。文献[4]采用的文字4个方向的笔画曲率特征为一种典型的局部特征提取方法,适用于笔迹原始材料丰富且书写较为规范的情况。文献[2]使用的是中心矩特征提取方法,文献[6]采用的汉子偏旁特征提取方法都是典型局部特征提取方法,适合和其它特征提取方法综合使用,组成混合特征向量,单独使用效果不佳。
同其他离线笔迹鉴别技术相比,手写签名鉴别具有2个特点:1)要面对有意或无意的笔迹模仿、伪造。模仿的签名有些具有很高的相似度,对计算机鉴别带来了额外的难度。2)使用计算机进行自动化签名鉴别不存在文字识别方面的问题,即在鉴别前已确定了待鉴别样本的文字含义,鉴别的目的在于判断真伪。基于以上2点及当前笔迹鉴别领域的技术发展情况,本文采用三级小波变换提取手写签名特征,因为小波变换技术特征提取全面细致且算法成熟,计算量相对于卷积神经网络特征提取方法少且效果类似。采用CPN神经网络分类器进行训练及识别,因为相对于其他神经网络模型来说CPN网络训练量小且效果佳,十分适合于笔迹鉴别这种样本类别复杂繁多的情况。
手写签名样本需要进行预处理以适应后续识别步骤[7]。首先,原始图像样本需要进行滤波处理。本文采用中值滤波算法抑制噪声,调用MATLAB中的medfilt2函数即可实现,此函数有2个参数,第一个参数表示样本像素矩阵,第二个参数用于返回滤波后的图像。第二步是对图像进行二值化处理。本文采用经验值法,计算背景图像背景的平均灰度值Hb,计算笔画像素的灰度平均值Hz,阈值Y=(Hb+Hz)/2。此方法考虑到不同样本纸张背景的情况,适应性较好,见图1。笔的类型和笔尖情况会影响到签名的纹理特性,为降低用笔不同带来的识别偏差,细化处理十分必要。故第三步采用Hilditch串行细化算法实现笔迹细化处理,处理步骤是:首先设置L={1}集合为笔画像素,B={0}为背景像素集合。检索每一个笔画像素8邻域像素网格,设置条件进行减薄处理,满足减薄条件的笔画像素归0,纳入背景像素,实现有序细化。为提高手写签名特征提取的准确度,本文对签名文字实现字符级分割。因为签名鉴别事实上是已经知道了签名汉字的含义及字符个数,也不存在行分割的问题,故先对已知类别签名样本采用垂直像素投影方法记录笔画像素密度波形曲线并标注分割点作为参考,然后将待测样本进行垂直投影,自左至右匹配已知样本分割点的波形特性即可准确进行字符分隔。分割完成后采用“定界法”对每个字符图像进行上、下、左、右4个方向直线逼近,逼近至笔画像素点后进行矩形提取以完成对单个字符图像多余空白区的剔除。最后一步是字符图像的归一化处理。处理方法是采用齐次坐标方式对字符图像进行缩放或膨胀操作,将字符图像映射到归一化点阵[m,n]中。MATLAB的imresize(A,M[mrows,ncols],method)函数可实现缩放,其中A表示原始图像,M为缩放倍数,[mrows,ncols]为归一化像素点阵,方法(method)设置为双线性插值法(bilinear)。
鉴别成功的关键在于如何全面且注重细节地提取签名文字的特征。离散小波变换(DWT)是对文字图像进行多分辨率特征提取的有效工具。设单个字符图像f(x1,x2)∈L2(R2),(x1,x2)为坐标。图像大小为M×N,此处可取M=N=32,字符图像分辨率不宜过大,以降低数据压缩量。对字符图像进行二维小波分解,设ψ(x1,x2)为二维基本小波,二维图像连续小波定义见公式(1),其中ψa,b1,b2(x1,x2)为对基本小波的尺度伸缩和位移[8]。
(1)
为了降低二维分解的复杂性,本文把图像信号按照行和列进行一维分解,还要将一维小波分解继续推广到二维[8]。设φ(x1,x2)=φ(x1)φ(x2)为图像的二维尺度函数,φ(x1)、φ(x2)为一维尺度函数,ψ(x1,x2)为二维小波,ψ(x)为一维小波,则二维小波和一维小波的可分性关系可表示为:
ψH(x1,x2)=ψ(x1)φ(x2)
(2)
ψV(x1,x2)=φ(x1)ψ(x2)
(3)
ψD(x1,x2)=ψ(x1)ψ(x2)
(4)
公式(2)~公式(4)中的二维小波分别为水平、垂直、对角小波。二维字符图像的每一层小波变换,图像都将被分为4个1/4大小的子图像,如图2所示[6]。在此每一步分解都是在以上3个方向上采用高通滤波的方法实现多分辨率的分解并得到3幅字图像HL、LH、HH。第4幅字图像LL则是使用低通滤波卷积算法得到的近似图像,如图2所示。由于高频滤波可以提取字符图像的水平、垂直、对角方向细节特征,故本文提取这3幅分解图像的小波系数作为待提取特征。使用MATLAB中的wavedec2函数进行多分辨率二维小波分解,分解结构工具det coef2可以提取高频分解系数向量[9]。调用命令如下:
[C,S]=wavedec2(X,N,′wname′)
(5)
其中,X代表图像信号,N为分解层数,C是一个各层分解系数行向量,S为分解系数长度。wname为待选小波基,本文小波基采用Daubechies小波,其尺度函数见公式(6),小波函数也可用尺度函数的线性组合表示为公式(7)。
(6)
(7)
其中,(a0,a1,…,aN-1)为调整系数,(c0,c1,…,cM-1)为小波系数,且满足ci=(-1)iaN-1-i。在公式(5)中,设置N=3,wname=db3进行三级小波分解,每次分解得到3个高频系数矩阵,分别表示横向、纵向、对角方向的变换[10]。三级分解共得到9个详细系数矩阵,因为各层分解的详细系数矩阵大小不一,难以以统一尺度提取字符特征,故提取系数矩阵的均值和标准差作为字符特征进行提取。在MATLAB中标准差B=stb2(A),均值V=mean2(A),A为系数矩阵。这样9个系数矩阵提取共18个特征值。在手写签名中每个可分字符18个特征值,汉语签名一般为2到4个字符,特征空间长度为36~72。
图2 多分辨率三级分解示意图
通过小波分解提取特征向量的签名识别并非是一个线性问题[11],故非线性分类器的使用就是一个必然。神经网络分类器可以对非线性问题的特征空间进行复杂和准确的划分,十分适合作为文字识别类应用的分类器[12]。当然,识别效果和训练样本的数量及学习次数有很大关系[13]。对向传播神经网络(CPN)分类器结合了无导师分类和有导师分类的优点且训练时间较短,适合特征向量维数较大的识别情况,也是本文采用此分类器的原因。CPN网络结构如图3所示[14]。
图3 CPN网络示意图
输入层到竞争层构成无导师的竞争型网络,按照SOM竞争学习规则,产生竞争层获胜神经元,并调整输入层到竞争层的内连接权向量[15]。完成内连接权向量调整后,按照基本竞争型网络学习规则及有导师误差校正方法,修正竞争层到输出层的外连接权向量,并得到各输出神经元的输出值。按照预先设定的学习速率和训练次数进行反复训练。
采集k个人书写的手写签名样本,每个人书写本人的姓名和其他k-1个人的姓名若干,组成待训练样本集合M。对每个样本进行7500次训练,完成所有训练,达到CPN网络签名识别正确率90%以上的目标。如所有训练结束未达到识别目标则增加训练次数直至每个样本训练达到10000次。
CPN网络分类器的训练过程分为如下步骤:
Step1确定训练样本总数M。初始化学习总次数t=1。
Step2按照前述小波特征提取结果,确定输入样本X=[x1,x2,…,xn]T的维数n=36。将X进行归一化处理。公式如下[16]:
(8)
Step3设竞争层有p个神经元。参照输入层有36个神经元,此处p设置为72。输入层到竞争层的连接权向量wj=[wj1,wj2,…,wjn]T,j=1,2,…,p。竞争层到输出层连接权值向量为vk=[vk1,vk2,…,vkp]T,k=1,2,…,q。此处q为输出层神经元个数,设为36。初始化wj每个元素为0.55,初始化vk每个元素为0.45。按照公式(9)将wj进行归一化处理[17]。
(9)
Step4按照公式(10)求竞争层神经元的加权输入和,其中p=72。
(10)
Step5按照公式(11)求wj和X距离最近的向量wg,其中p=72。
wg=max (sj),j=1,2,…,p
(11)
Step6将竞争层神经元g的输出设为1,其它神经元输出设为0。
Step7按照公式(12)修正连接权向量wg,设置学习速率α=0.55。
wgi(t+1)=wgi(t)+α(xi-wgi(t)),i=1,2,…,n
(12)
Step8按照公式(13)归一化处理wg。
(13)
Step9按照公式(14)求输出层神经元的实际输出,其中p=72、q=36。
(14)
Step10按照公式(15)修正竞争层获胜的神经元g到输出层神经元的连接权向量vg。设置学习速度β=0.6。
vkg(t+1)=vkg(t)+βbj(yk-ok),k=1,2,…,q
(15)
Step11回到Step2,在M个训练样本中取出下一个样本,设为X′,完成上述九步的训练,直到所有的M个样本均进行一次训练。
Step12令学习次数t=t+1,回到Step2重新训练M个样本,直到t=7500时结束所有训练。
设待鉴定样本为X″,再:1)对其进行归一化处理;2)计算每一个竞争层神经元的加权输出S;3)找到加权输出最大的竞争层神经元,将其输出设置为1,其他神经元输出设置为0;4)按照公式(14)方法计算输出神经元的实际输出数值,并将输出模式转换为十进制类型,得到最终分类结果[18]。
采用本文方法进行鉴别试验,分为6个步骤:
Step1训练样本采集。抽选36人作为训练样本采集者,每人书写自己的姓名样本30个,其中25个样本作为训练样本。另外,每人参考以上采集的“真迹”训练样本模仿书写其他35人的姓名样本5个,其中3个作为待训练的疑似样本。综合上述,共采集训练样本4680个。
Step2待鉴别样本采集。将以上36人书写的样本,除去训练样本后,每人尚有书写自己姓名的样本5个,总共180个组成待检测“真迹”样本集合。另外,每人尚有书写别人姓名的样本2个,总共70个组成待检测“疑似”样本集合。
Step3以每个书写者为中心组成36个训练及鉴别实验组。每个鉴别实验组的样本均为该书写者的姓名样本组成,共130个训练样本,75个待识别样本。
Step4完成每个训练及鉴别实验组130个样本共975000次训练,每个样本7500次。
Step5对75个待识别样本进行分类鉴别。因为书写者为36人,书写的是同一个姓名,故类别数为36。鉴别正确规则如下:不论“真迹”还是“疑似”样本,如待检测样本和同一书写人的训练样本归为同一类别则判定为鉴别正确,否则为鉴别错误。计算75个样本的鉴别正确率。
Step6调用下一个训练及鉴别实验组样本。返回Step1,进行下一个书写者为中心的训练及鉴别实验组实验。直到36个实验组均完成训练及鉴别。
36个组的鉴别实验结果表明本文方法的手写签名鉴别总体正确率为93.48%。具体结果如表1所示。
表1 鉴别结果表
本实验为特征提取方法及分类器使用对比实验。采用不同的3种方法进行对比以验证本文方法的效果。方法1为本文方法;方法2在手写签名经过预处理与字符分割后,每个汉字使用网格法,将字符区域横向、纵向均分6等分,分为36个网格,每个网格提取文字笔画像素(黑像素)和总像素的比作为特征进行提取,即像素密度特征[19],共36个特征值,特征向量元素数等同于方法1,便于后续分类识别。方法3的特征提取方法同于方法1,分类器使用马氏距离测度法,计算各待鉴别样本到各“真迹”样本类中心的距离,距离最小者被识别为该类成员[20]。3种方法的训练样本、待鉴别样本、样本分组方法及实验步骤同于实验1。鉴别结果对照情况如表2所示。
表2 鉴别结果对照表
以上实验结果表明:多尺度小波变换可以有效提取签名字符的整体和局部特征,在使用同样分类器的情况下,鉴别效果显著优于网格像素特征法。原因在于像素密度特征对局部笔画像素的细节提取方面远不如小波系数特征。如增加网格划分数量则又会带来容错性差,鲁棒性降低的结果[21]。在使用同样特征提取方法的情况下,CPN神经网络分类器在对样本进行充分训练(每样本500次以上)的前提下分类准确率优于马氏距离这类线性分类器,付出的代价是对已知样本的训练相对复杂和耗时。DB3小波变换特征和CPN设计网络分类器的使用可有效应用于签名鉴别。
签名真伪鉴别不同于一般笔迹鉴别的独特之处在于并不存在文字意义识别的问题。鉴别的重点是应对伪造签名的情况。目前签名鉴别主要是由专门的鉴定机构依靠专家人工鉴别为主。基于模式识别和机器学习技术的计算机笔迹鉴别可以对人工鉴别起到很好的补充作用[22]。签名鉴别的关键点在于特征提取。小波变换这种多分辨率信号分析的工具可将信号逐步进行多尺度细化提取,十分适合提取文字字符的全面及局部特征,可以很好地应对伪造、模仿签名的情况。通过小波变换在不同尺度下提取的特征值数量相对较大,采用线性分类器效果不佳[23]。采用CPN神经网络分类器对“真迹”笔迹特征进行大量的训练后,可以有效提高鉴别的正确率。对比实验结果也表明了离散多尺度小波特征和CPN网络分类器用于签名鉴别的优势和可行性。