"); //-->
另外,可以将笔劲转化为第三维度的信息,使用现在已经相当成熟的图像识别算法进行处理。本系统结合笔迹识别技术与书写劲道的认证,提高了身份认证的准确性。本系统使用嵌入式平台基本实现了基于书写笔劲的身份认证,便于移植,在移动设备逐渐流行而个人隐私日益关注的今天,这种方案很可能会被广泛采用。
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 编写的程序。
LabVIEW是美国国家仪器公司推出的图形化的编程平台,引入了虚拟仪器的概念,以框图的形式编写代码,高度的模块化和智能化为软件设计提供了便利。
为简化开发,本系统使用LabVIEW 进行界面开发以及算法处理。
本系统实现身份认证功能主要包含两个环节,第一步是创建签名,即将允许进入系统的用户书写特征记录到系统中; 第二步是验证签名,即验证输入的签名的用户是否有进入系统的权限,系统框图如图5所示。
图5 上位机程序流程图
系统首先进行初始化,用户选择"创建签名",然后开始在触摸屏上书写签名。系统接收下位机传送的数据,先进行存储,收到的数据从起始码到结束码之间是有效的。因为AD7879内部为12 位ADC,且每个采样点需要采集四次数据( X、Y、Z1、Z2) ,所以每个采样点对应8 Byte的信息。上位机程序可以顺次读出所有有效点,循环读取各个采样点,并逐点描绘在空白图片上,就可以得到书写的字形显示图片。为形象表现显示效果,设计中把压力特征映射成了像素点的颜色信息,深颜色表示压力大,浅颜色表示压力小。
创建签名之后可以进行验证签名,用户选择验证签名,并开始在触摸屏上书写,之后数据采集和处理的过程与创建签名的方法相同,得到图片B.然后,将输入的签名与初始创建的签名进行对比,对比的过程如下。
( 1) 消除误差点。实验发现,触摸屏采集到的数据中,有些采样点是由系统随机误差造成的,其在屏幕上显示为一些杂散的孤点,在验证之前需要消除这些误差点。
( 2) 对正,对齐字形。首先将书写的字迹比划对应起来,这主要是寻找书写笔迹中的特征点,包括提笔点、落笔点和转折点,并形成特征标记。
( 3) 分割字符。根据上一步所做的标记,以特征点为间隔,把字迹分为若干段,将之与创建的原始签名数据进行对比。如果段数不同,则验证失败,发送重新验证提示。否则,进行下一步对比。
( 4) 压力对比。求出每个特征点附近的平均压力之差。每个转折点处的曲率之和以及每段采样点序列的均方差,若这些结果均没有超过设定的阈值,则认证通过,否则认证失败。这些阈值都是通过实验中反复对比得到。这个阈值也可以根据用户需求设定。用户所需的安全等级越高,那么设定的阈值就越高。
4 结果与讨论
通过本系统的硬件平台,采集了书写的压力信息,可以分析出不同
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。