基于笔劲识别的身份验证系统设计与实现
摘要:介绍了一种基于笔劲识别的身份验证系统。该系统采用触摸屏控制芯片AD7879 采集书写者的笔劲信息,通过8051 单片机将数据传输给LabVIEW 上位机程序进行界面显示和数据处理,较好地实现了身份认证的功能,构建了安全、高效、难以模仿的身份验证系统。本系统外围结构简单、可移植性强、应用前景广泛。 在当今信息社会,个人隐私、商业机密和国家安全等越来越受到人们的重视,信息既需要能被方便的读取,又需要得到可靠地保护。然而,现今的一些身份认证方案很难尽善尽美,即使是被认为不可复制的虹膜和指纹识别,在犯罪分子获取当事人的眼球或手指等身体器官的极端情况下也会被冒充。由于成年人的书写习惯包括书写的字形、速度、力度和角度等,在较长一段时间内是固定不变的,长期以来都以签名的字形作为认证身份的依据。特别是汉字,由于其特征较为明显,经常被用来作为身份鉴定。但字形是直观的形态,比较容易被模仿,相比之下书写的劲道难以察觉,几乎是不可复制和模仿的。而电阻触摸屏由于其自身的构造,可以使用专用触摸屏控制芯片采集笔迹及笔劲信息,故本文提出一种新的认证身份的方式---基于书写笔劲识别的验证系统。 另外,可以将笔劲转化为第三维度的信息,使用现在已经相当成熟的图像识别算法进行处理。本系统结合笔迹识别技术与书写劲道的认证,提高了身份认证的准确性。本系统使用嵌入式平台基本实现了基于书写笔劲的身份认证,便于移植,在移动设备逐渐流行而个人隐私日益关注的今天,这种方案很可能会被广泛采用。 1 系统总体方案设计 本系统通过信号采集模块完成采集用户签名的笔迹、笔劲信息的任务,然后由LabVIEW 实现软件开发,进行笔劲信息数据库的建立,且最终通过匹配比对算法完成用户的认证。 本系统的目标和实现的功能是: 建立一个拥有高度安全性、难以冒充复制的、能广泛应用于各种身份认证的签名系统。它在整体上采用模块化设计如图1所示,通过AD7879 芯片、单片机和触摸屏共同完成笔劲数据信息采集,再通过串口完成与计算机的数据通信,将笔劲信息数据交与上位机; 上位机利用LabVIEW构建出友好的用户界面,然后程序主体将所得的数据转换,经过加密存储后,按照一定的规律显示在屏幕上,同时,后台将完成提取特征值,与现有数据进行匹配,并将结果通过对话框的形式显示给用户。
图1 系统框架图
2 系统硬件设计 2. 1 压力测量原理 通过分析电阻式触摸屏的结构可以知道,在按下触摸屏的时候,两层的金属膜之间肯定会有接触电阻,如图2 所示,而触摸电阻值越大,则表示触摸压力越小,所以这里就可以得到一种测量触摸压力的方案。
图2 压力测量原理图 具体测量方法如下,将参考电压接在Y + 和X -上,分别测量X + 端的电压得出Z1和Y - 端的电压得出Z2.则接触电阻的计算公式为: 公式中RTOUCH表示接触电阻,RX表示X 方向的总电阻,其与实际触摸压力相关,XPOS为接触点处X方向电压采样值,N 为采样深度。本项目中只关心压力的相对大小,所以无需知道RX的具体值,这保证了软件的可移植性。 2. 2 触摸屏控制器AD7879 芯片工作原理 AD7879 芯片是专用的四线电阻触摸屏驱动芯片,支持1. 6 ~ 3. 6 V 的单电源供电,其主要的模块有电压切换和通道选择电路,内部2. 5 V 参考电压,12位逐次逼近型模数转换器,数据预处理模块,串行数字接口和数字控制逻辑。AD7879 芯片的电压切换和通道选择电路,可以方便的切换触摸屏上的参考电压接入端和ADC 采样端,得到需要的X、Y 及Z1、Z2的值。为了降低来自LCD 噪声以及其他噪声源的影响,AD7879 还内置预处理模块,预处理功能包括中值滤波器及均值滤波器。AD7879 与单片机的接口为标准SPI 串行接口或I2C 接口( 与具体型号有关)。芯片还有一个中断使能端口,当触摸屏上有压力时,中断使能端立即产生一个中断信号到MCU,开始采集坐标。 2. 3 AD7879 与单片机接口 AD7879 芯片的外部接口电路相当简单,只需要简单的接入触摸屏和电源即可工作,再将AD7879 的串行接口( SPI 或I2C) 与MCU 相连,如图3所示,可以获得位置坐标以及压力信息。
图3 AD7879 典型接口电路
3 系统软件设计 3. 1 下位机软件设计 下位机为80C51 的单片机,主要控制AD7879 芯片采集触摸屏上的字形和压力信息,并把坐标和压力信息发送给上位机程序。如图4 所示下位机程序流程图,首先由单片机对AD7879 的芯片初始化,然后等待外部中断触发,中断触发后开启中断定时器,并发送开始码告知上位机程序书写开始,之后进入循环等待定时器中断。进入定时器中断后立即读取触摸屏上的书写位置和压力,并发送给上位机程序,当触摸屏上无压力时认为书写完成,然后关闭定时器,发送结束符并退出外部中断。使用定时器中断保证了每两次采样的时间间隔是一样的。
图4 下位机程序流程图 3. 2 上位机程序 上位机程序是使用LabVIEW 编写的程序。 本系统实现身份认证功能主要包含两个环节,第一步是创建签名,即将允许进入系统的用户书写特征记录到系统中; 第二步是验证签名,即验证输入的签名的用户是否有进入系统的权限,系统框图如图5所示。
图5 上位机程序流程图 系统首先进行初始化,用户选择“创建签名”,然后开始在触摸屏上书写签名。系统接收下位机传送的数据,先进行存储,收到的数据从起始码到结束码之间是有效的。因为AD7879 内部为12 位ADC,且每个采样点需要采集四次数据( X、Y、Z1、Z2) ,所以每个采样点对应8 Byte 的信息。上位机程序可以顺次读出所有有效点,循环读取各个采样点,并逐点描绘在空白图片上,就可以得到书写的字形显示图片。为形象表现显示效果,设计中把压力特征映射成了像素点的颜色信息,深颜色表示压力大,浅颜色表示压力小。 创建签名之后可以进行验证签名,用户选择验证签名,并开始在触摸屏上书写,之后数据采集和处理的过程与创建签名的方法相同,得到图片B.然后,将输入的签名与初始创建的签名进行对比,对比的过程如下。 ( 1) 消除误差点。实验发现,触摸屏采集到的数据中,有些采样点是由系统随机误差造成的,其在屏幕上显示为一些杂散的孤点,在验证之前需要消除这些误差点。 ( 2) 对正,对齐字形。首先将书写的字迹比划对应起来,这主要是寻找书写笔迹中的特征点,包括提笔点、落笔点和转折点,并形成特征标记。 ( 3) 分割字符。根据上一步所做的标记,以特征点为间隔,把字迹分为若干段,将之与创建的原始签名数据进行对比。如果段数不同,则验证失败,发送重新验证提示。否则,进行下一步对比。 ( 4) 压力对比。求出每个特征点附近的平均压力之差。每个转折点处的曲率之和以及每段采样点序列的均方差,若这些结果均没有超过设定的阈值,则认证通过,否则认证失败。这些阈值都是通过实验中反复对比得到。这个阈值也可以根据用户需求设定。用户所需的安全等级越高,那么设定的阈值就越高。
4 结果与讨论 通过本系统的硬件平台,采集了书写的压力信息,可以分析出不同的人书写的压力有明显的区别。 如图6 中是书写“梅”字的笔劲变化情况。因为每次提笔的时候压力会变得很小,所以在图中可以看到波形中有11 个尖峰,对应的是书写的11 次提笔,可以根据尖峰把书写的比划分割出来。每次书写时的速度不完全,所以每一笔的采样数也不一样,经过插值算法将每一笔的采样数归一化到相同,才能在图像中看到采样点一一对应的效果。
图6 笔劲变化曲线 图中灰线为同一个人书写时采集到的压力变化,深灰线和黑线为另外两个人书写的压力变化,同一个人的书写压力变化趋势和压力的绝对大小都很接近,能够与不同人的书写区分开来,说明本系统的设计思路是合理的。
5 结束语 本文介绍了一种基于笔劲识别的身份验证系统,重点在于对以往单纯以书写的字形来识别身份的方式的改进,在相对成熟的笔迹识别技术基础上,辅以对书写笔劲的对比,可以更加精确地识别用户的身份,而且书写的笔劲在外观上是很难察觉的,故很难被模仿。本系统使用LabVIEW 编写上位机,充分简化了开发流程。另外本文中的书写笔劲的采集是直接基于触摸屏的,不用外加任何传感器和特殊的压力采集设备,简单易行,只要稍加改装,此方案可以被广泛使用在其他以触摸屏为主的设备上。经过实际测试,本系统对特定用户的识别率较高,但是存在一定的拒绝认证率。这就需要进一步改进算法,以进一步提高准确率。在实际应用中,本方法应结合笔迹识别,提高认证的准确度。
|