一种简单快捷的离线签名认证方法
2018-07-19曾晓云江兆银曹慧慧沈明睿
曾晓云 江兆银 曹慧慧 沈明睿
摘 要 计算机生物认证是指根据人类自身特征进行身份识别的过程。生物识别技术是计算机科学中的一种身份认证和访问控制,是保持人类隐私的最安全方法之一。生物认证可分为两类:行为(签名验证,击键动力学等)和生理(虹膜特征、指纹等)。手写签名认证是在计算机问世前使用的第一批生物识别技术之一。离线签名验证是一种利用人的手写签名度量的动态性分析签名的物理活动的认证方法。签名生物识别系统的核心是行为,在文章中,我们提出了一种采用像素匹配技术的离线签名验证系统。所提出的方法的性能已经与现有SVM(支持向量机)加权Fisher线性分类器技术相比较过。
关键词 签名;像素匹配技术;生物自动识别
中图分类号 TP3 文献标识码 A 文章编号 1674-6708(2018)214-0092-03
1 概述
签名是由特殊字符组成,用于将一个人与其他人分别开来。在此认证过程中,获取的签名以图像文件的形式存储在计算机中,主要工作就是是将用户签名与数据库中的样本签名进行比较。
签名认证是一个非常重要的过程,它已应用在许多领域,如银行业,房地产交易等。签名验证包括两个方面:离线签名验证,签名样本扫描成图像表示;在线签名验证,从数字化板中收集签名样本,能够捕获写作过程中笔的运动特征。在这篇文章中我们的工作是验证数据库中的离线签名。
2 相关工作
本系统分为两个主要阶段:1)預处理;2)认证阶段。
预处理:1)获取签名;2)去除噪声和颜色;3)调整扫描签名的属性。
在签名框中找到确切的签名图像。调整签名图像的角度和大小都与样本签名一致。图1中给出了本系统的框架图。
3 本系统方法介绍
3.1 获取签名图像
本系统通过扫描仪来获取图像,然后对扫描仪获取的签名进行验证。因为在扫描图像过程中可能有许多其它不相关的文字和图案,所以对鉴定签名造成一定的困难。因此需要设置一个签名区域来确定扫描图像中的签名的确切边界。如果签名区域被确定(用户认可他们的签名)界与边框颜色(如rgb-239,228,176)将有助于识别签名在扫描图像中的精确位置。
使用下列算法扫描包含用户签名的图像:
获取矩形签名区域的算法1:
步骤1:设置st=0,sl=0,sh=0,sw=0(sl是签名左边位置,st是上边位置,sh是高度和sw是宽度);
步骤2:设置x= 0;步骤3:设置y= 0;步骤4:从扫描获取的图像中扫描其颜色,并将其值存储在pixelcolor;
步骤5:如果pixelcolor的值是RGB-239,228,176,则执行步骤6,否则执行步骤8;
步骤6:如果sw=0,则设置sl=x;如果sh=0,则设置st=y;
步骤7:设置sw=x;sh=y;y=y+1;
步骤8:如果y<图像高度-1,则重复步骤4到步骤7;
步骤9:设置x=x+1;
步骤10:如果x<图像宽度–1,则重复步骤3到步骤9;
步骤11:结束。
3.2 消除噪声,归一化颜色值
颜色和噪声去除是非常重要的,因为签名可能由多种颜色组成,并可能在扫描时带来噪声。因此,必须消除整个签名区域的所有噪声以获得确切的签名。消除噪声后,图像被转换成黑白图像。这样就可以作为示例签名存储在数据库中,也可以用来与示例数据库签名进行比较。它的优点是缩少了图像的大小,只需要比较两种颜色值即可。
为了解决这些问题,提出了以下几种方法。
3.2.1 颜色归一化方法
要使矩形区域黑白化,需要使用下面的算法扫描所有矩形区域,并查找每个像素的颜色。如果颜色是(RGB (239,228,176))就将它变成白色,如果颜色是白色就不考虑了;否则将像素颜色改为黑色。这是即简单又快速的得到黑白图像的方法,这种方法用算法2表示如下:
步骤1:从扫描图像中扫描颜色并将其颜色值存储在pixelcolor;
步骤2:如果pixelcolor=rgb(239,228,176),则设置pixelcolor=255(白色);
步骤3:如果pixelcolor=255(白色)则执行步骤4;否则设置pixelcolor=0(黑色);
步骤4:重复执行步骤1到步骤3直到扫描图像完成;
步骤5:结束。
3.2.2 噪声去除方法
签名图像二值化完成后是去除噪声。在这个阶段要去除扫描仪获取图像时所产生的噪声。在扫描签名并对其颜色进行二值化后,会发现一些黑色的单个小像素,这些像素并不是签名的一部分,因此需要将其去除掉。所采用方法如下:
噪音去除算法3:
步骤1:扫描签名图像的颜色值并将其值存在pixelcolor中;
步骤2:如果pixelcolor 是黑色的,则执行步骤3;否则执行步骤4;
步骤3:如果 pixelcolor 和相邻的pixelcolor 不同,则设置pixelcolor为255(白色),并执行步骤1;否则执行步骤4;
步骤4:重复执行步骤1到步骤3直到扫描图像完成;
步骤5:结束。
3.3 调整图像属性
经过上述处理之后得到二值图像,接下来需要在二值图像中找到签名的确切位置来进行签名验证,签名可以从不同的角度和大小签署在矩形区域内的任何位置。
接下来第一步是从矩形边界区域找到签名的确切位置,第二步是确定签名的角度和大小。
接下来第一步是从矩形边界区域找到签名的确切位置,第二步是确定签名的角度和大小。
1)在签名图像框中找到签名的确切位置。本方法是基于签名框中签名的边缘来扫描矩形区域,使用算法1从顶部、底部、左、右来提取实际签名区域。
2)角度归一化方法。用户书写签名的角度会随时发生改变也就是签名可以从不同的角度来书写。为了比较存储在数据库中的不同角度的签名,就须要归一化这些签名的角度,以便它可以与样本数据库签名进行比较。有时相同的签名可以从不同角度来写(图3.a原始图像,图3.b角度图像),可以用以下数学公式来解决角度 问题。
为了准确测量角度,角度θ扩大100倍,然后图像旋转θ角使其与X轴水平。
3)归一化图像大小。旋转后的签名图像被扩大了,因此在比较签名图像与数据库中签名之前需要将二者大小调整 一致。
3.4 签名图像与数据库中签名的比较
本文在将签名与数据库中样本签名进行比较中提出了一种基于像素匹配概念的简单算法,这个算法很容易实现并且计算也不太复杂。
算法4用来扫描签名图像和数据库中样本图像的每个像素值。从左到右扫描两个图像,比较其像素值。如果像素点是黑色,则表示它是签名的一部分,将它与样本图像中相应的像素点进行比较。如果两个图像中对应像素点的值是相同的,则计数器(M)加1,如果不相同则另一个计数器(n)加1,扫描每一个黑色像素点后计数器(P)也 加1。
两个签名的相似程度可以由以下公式计算 得到:
签名图像与样本数据库中签名的比较算法4:
步骤1:设置m=0,n=0,p=0;
步骤2:扫描数据库中签名图像的颜色,并将其值存放在pixcelcolor中;
步骤3:扫面被鉴定签名图像的颜色,并将其值存放在color;
步骤4:如果pixelcolor=color(black)则执行步骤5;否则执行步驟7;
步骤5:如果pixelcolor=color则设置m=m+1;否则设置n=n+1;
步骤6:设置p=p+1;
步骤7:重复步骤2直到扫面图像完成;
步骤8:设置p=m/(n+p)*100;
步骤9:显示p的值。
4 与另两种方法的比较
在这个系统中,每个人有8个真签名和8个伪造签名用来测试。在测试中有以下几种情况:错误拒绝率(FRR),错误接受率(FAR),平均错误率(ARR)。
该系统的验证结果和采用SVM和加权Fisher线性分类器的结果在表1中给出。
从上述结果可以看出,文章所提出的方法的性能与现有的方案相媲美。但新技术的优点是它非常简单并且容易实现,可以应用于大多数需要离线签名身份验证的应用程序。
5 结论
签名认证的实施为生物识别行为安全系统提供了一个简单,安全,快速的方法。文章通过使用一些简单的坐标几何方程使得本方法比其他方法更快,颜色匹配技术更安全。
参考文献
[1]曾晓云.基于多尺度小波变换和加权Fisher线性分类器的离线签名认证[J].漯河职业技术学院学报,2015,14(5):17-19.
[2]曾晓云.基于SVM的离线签名认证[J].兰州工业高等专科学校学报,2009,16(4):8-1.