摘要:介紹了一種基于筆勁識別的身份驗(yàn)證系統(tǒng)。該系統(tǒng)采用觸摸屏控制芯片AD7879 采集書寫者的筆勁信息,,通過8051 單片機(jī)將數(shù)據(jù)傳輸給LabVIEW 上位機(jī)程序進(jìn)行界面顯示和數(shù)據(jù)處理,較好地實(shí)現(xiàn)了身份認(rèn)證的功能,,構(gòu)建了安全,、高效、難以模仿的身份驗(yàn)證系統(tǒng),。本系統(tǒng)外圍結(jié)構(gòu)簡單,、可移植性強(qiáng),、應(yīng)用前景廣泛,。
在當(dāng)今信息社會,個人隱私,、商業(yè)機(jī)密和國家安全等越來越受到人們的重視,,信息既需要能被方便的讀取,,又需要得到可靠地保護(hù)。然而,,現(xiàn)今的一些身份認(rèn)證方案很難盡善盡美,,即使是被認(rèn)為不可復(fù)制的虹膜和指紋識別,在犯罪分子獲取當(dāng)事人的眼球或手指等身體器官的極端情況下也會被冒充,。由于成年人的書寫習(xí)慣包括書寫的字形,、速度、力度和角度等,,在較長一段時間內(nèi)是固定不變的,,長期以來都以簽名的字形作為認(rèn)證身份的依據(jù)。特別是漢字,,由于其特征較為明顯,,經(jīng)常被用來作為身份鑒定。但字形是直觀的形態(tài),,比較容易被模仿,,相比之下書寫的勁道難以察覺,幾乎是不可復(fù)制和模仿的,。而電阻觸摸屏由于其自身的構(gòu)造,,可以使用專用觸摸屏控制芯片采集筆跡及筆勁信息,故本文提出一種新的認(rèn)證身份的方式---基于書寫筆勁識別的驗(yàn)證系統(tǒng),。
另外,,可以將筆勁轉(zhuǎn)化為第三維度的信息,使用現(xiàn)在已經(jīng)相當(dāng)成熟的圖像識別算法進(jìn)行處理,。本系統(tǒng)結(jié)合筆跡識別技術(shù)與書寫勁道的認(rèn)證,,提高了身份認(rèn)證的準(zhǔn)確性。本系統(tǒng)使用嵌入式平臺基本實(shí)現(xiàn)了基于書寫筆勁的身份認(rèn)證,,便于移植,,在移動設(shè)備逐漸流行而個人隱私日益關(guān)注的今天,這種方案很可能會被廣泛采用,。
1 系統(tǒng)總體方案設(shè)計(jì)
本系統(tǒng)通過信號采集模塊完成采集用戶簽名的筆跡,、筆勁信息的任務(wù),然后由LabVIEW 實(shí)現(xiàn)軟件開發(fā),,進(jìn)行筆勁信息數(shù)據(jù)庫的建立,,且最終通過匹配比對算法完成用戶的認(rèn)證。
本系統(tǒng)的目標(biāo)和實(shí)現(xiàn)的功能是: 建立一個擁有高度安全性,、難以冒充復(fù)制的,、能廣泛應(yīng)用于各種身份認(rèn)證的簽名系統(tǒng)。它在整體上采用模塊化設(shè)計(jì)如圖1所示,,通過AD7879 芯片,、單片機(jī)和觸摸屏共同完成筆勁數(shù)據(jù)信息采集,,再通過串口完成與計(jì)算機(jī)的數(shù)據(jù)通信,將筆勁信息數(shù)據(jù)交與上位機(jī),; 上位機(jī)利用LabVIEW構(gòu)建出友好的用戶界面,,然后程序主體將所得的數(shù)據(jù)轉(zhuǎn)換,經(jīng)過加密存儲后,,按照一定的規(guī)律顯示在屏幕上,,同時,后臺將完成提取特征值,,與現(xiàn)有數(shù)據(jù)進(jìn)行匹配,,并將結(jié)果通過對話框的形式顯示給用戶。
圖1 系統(tǒng)框架圖
2 系統(tǒng)硬件設(shè)計(jì)
2. 1 壓力測量原理
通過分析電阻式觸摸屏的結(jié)構(gòu)可以知道,,在按下觸摸屏的時候,,兩層的金屬膜之間肯定會有接觸電阻,如圖2 所示,,而觸摸電阻值越大,,則表示觸摸壓力越小,所以這里就可以得到一種測量觸摸壓力的方案,。
圖2 壓力測量原理圖
具體測量方法如下,,將參考電壓接在Y + 和X -上,分別測量X + 端的電壓得出Z1和Y - 端的電壓得出Z2.則接觸電阻的計(jì)算公式為:
公式中RTOUCH表示接觸電阻,,RX表示X 方向的總電阻,,其與實(shí)際觸摸壓力相關(guān),XPOS為接觸點(diǎn)處X方向電壓采樣值,,N 為采樣深度,。本項(xiàng)目中只關(guān)心壓力的相對大小,所以無需知道RX的具體值,,這保證了軟件的可移植性,。
2. 2 觸摸屏控制器AD7879 芯片工作原理
AD7879 芯片是專用的四線電阻觸摸屏驅(qū)動芯片,支持1. 6 ~ 3. 6 V 的單電源供電,,其主要的模塊有電壓切換和通道選擇電路,,內(nèi)部2. 5 V 參考電壓,12位逐次逼近型模數(shù)轉(zhuǎn)換器,,數(shù)據(jù)預(yù)處理模塊,,串行數(shù)字接口和數(shù)字控制邏輯。AD7879 芯片的電壓切換和通道選擇電路,,可以方便的切換觸摸屏上的參考電壓接入端和ADC 采樣端,,得到需要的X、Y 及Z1、Z2的值,。為了降低來自LCD 噪聲以及其他噪聲源的影響,AD7879 還內(nèi)置預(yù)處理模塊,,預(yù)處理功能包括中值濾波器及均值濾波器,。AD7879 與單片機(jī)的接口為標(biāo)準(zhǔn)SPI 串行接口或I2C 接口( 與具體型號有關(guān))。芯片還有一個中斷使能端口,,當(dāng)觸摸屏上有壓力時,,中斷使能端立即產(chǎn)生一個中斷信號到MCU,開始采集坐標(biāo),。
2. 3 AD7879 與單片機(jī)接口
AD7879 芯片的外部接口電路相當(dāng)簡單,,只需要簡單的接入觸摸屏和電源即可工作,再將AD7879 的串行接口( SPI 或I2C) 與MCU 相連,,如圖3所示,,可以獲得位置坐標(biāo)以及壓力信息。
圖3 AD7879 典型接口電路
3 系統(tǒng)軟件設(shè)計(jì)
3. 1 下位機(jī)軟件設(shè)計(jì)
下位機(jī)為80C51 的單片機(jī),,主要控制AD7879 芯片采集觸摸屏上的字形和壓力信息,,并把坐標(biāo)和壓力信息發(fā)送給上位機(jī)程序。如圖4 所示下位機(jī)程序流程圖,,首先由單片機(jī)對AD7879 的芯片初始化,,然后等待外部中斷觸發(fā),中斷觸發(fā)后開啟中斷定時器,,并發(fā)送開始碼告知上位機(jī)程序書寫開始,,之后進(jìn)入循環(huán)等待定時器中斷。進(jìn)入定時器中斷后立即讀取觸摸屏上的書寫位置和壓力,,并發(fā)送給上位機(jī)程序,,當(dāng)觸摸屏上無壓力時認(rèn)為書寫完成,然后關(guān)閉定時器,,發(fā)送結(jié)束符并退出外部中斷,。使用定時器中斷保證了每兩次采樣的時間間隔是一樣的。
圖4 下位機(jī)程序流程圖
3. 2 上位機(jī)程序
上位機(jī)程序是使用LabVIEW 編寫的程序,。
LabVIEW是美國國家儀器公司推出的圖形化的編程平臺,,引入了虛擬儀器的概念,以框圖的形式編寫代碼,,高度的模塊化和智能化為軟件設(shè)計(jì)提供了便利,。
為簡化開發(fā),本系統(tǒng)使用LabVIEW 進(jìn)行界面開發(fā)以及算法處理,。
本系統(tǒng)實(shí)現(xiàn)身份認(rèn)證功能主要包含兩個環(huán)節(jié),,第一步是創(chuàng)建簽名,即將允許進(jìn)入系統(tǒng)的用戶書寫特征記錄到系統(tǒng)中; 第二步是驗(yàn)證簽名,,即驗(yàn)證輸入的簽名的用戶是否有進(jìn)入系統(tǒng)的權(quán)限,,系統(tǒng)框圖如圖5所示。
圖5 上位機(jī)程序流程圖
系統(tǒng)首先進(jìn)行初始化,,用戶選擇“創(chuàng)建簽名”,,然后開始在觸摸屏上書寫簽名。系統(tǒng)接收下位機(jī)傳送的數(shù)據(jù),,先進(jìn)行存儲,,收到的數(shù)據(jù)從起始碼到結(jié)束碼之間是有效的。因?yàn)锳D7879 內(nèi)部為12 位ADC,,且每個采樣點(diǎn)需要采集四次數(shù)據(jù)( X,、Y、Z1,、Z2) ,,所以每個采樣點(diǎn)對應(yīng)8 Byte 的信息。上位機(jī)程序可以順次讀出所有有效點(diǎn),,循環(huán)讀取各個采樣點(diǎn),,并逐點(diǎn)描繪在空白圖片上,就可以得到書寫的字形顯示圖片,。為形象表現(xiàn)顯示效果,,設(shè)計(jì)中把壓力特征映射成了像素點(diǎn)的顏色信息,深顏色表示壓力大,,淺顏色表示壓力小,。
創(chuàng)建簽名之后可以進(jìn)行驗(yàn)證簽名,用戶選擇驗(yàn)證簽名,,并開始在觸摸屏上書寫,,之后數(shù)據(jù)采集和處理的過程與創(chuàng)建簽名的方法相同,得到圖片B.然后,,將輸入的簽名與初始創(chuàng)建的簽名進(jìn)行對比,,對比的過程如下。
?。?1) 消除誤差點(diǎn),。實(shí)驗(yàn)發(fā)現(xiàn),觸摸屏采集到的數(shù)據(jù)中,,有些采樣點(diǎn)是由系統(tǒng)隨機(jī)誤差造成的,,其在屏幕上顯示為一些雜散的孤點(diǎn),在驗(yàn)證之前需要消除這些誤差點(diǎn),。
?。?2) 對正,,對齊字形。首先將書寫的字跡比劃對應(yīng)起來,,這主要是尋找書寫筆跡中的特征點(diǎn),,包括提筆點(diǎn)、落筆點(diǎn)和轉(zhuǎn)折點(diǎn),,并形成特征標(biāo)記,。
( 3) 分割字符,。根據(jù)上一步所做的標(biāo)記,以特征點(diǎn)為間隔,,把字跡分為若干段,,將之與創(chuàng)建的原始簽名數(shù)據(jù)進(jìn)行對比。如果段數(shù)不同,,則驗(yàn)證失敗,,發(fā)送重新驗(yàn)證提示。否則,,進(jìn)行下一步對比,。
( 4) 壓力對比,。求出每個特征點(diǎn)附近的平均壓力之差,。每個轉(zhuǎn)折點(diǎn)處的曲率之和以及每段采樣點(diǎn)序列的均方差,若這些結(jié)果均沒有超過設(shè)定的閾值,,則認(rèn)證通過,,否則認(rèn)證失敗。這些閾值都是通過實(shí)驗(yàn)中反復(fù)對比得到,。這個閾值也可以根據(jù)用戶需求設(shè)定,。用戶所需的安全等級越高,那么設(shè)定的閾值就越高,。
4 結(jié)果與討論
通過本系統(tǒng)的硬件平臺,,采集了書寫的壓力信息,可以分析出不同的人書寫的壓力有明顯的區(qū)別,。
如圖6 中是書寫“梅”字的筆勁變化情況,。因?yàn)槊看翁峁P的時候壓力會變得很小,所以在圖中可以看到波形中有11 個尖峰,,對應(yīng)的是書寫的11 次提筆,,可以根據(jù)尖峰把書寫的比劃分割出來。每次書寫時的速度不完全,,所以每一筆的采樣數(shù)也不一樣,,經(jīng)過插值算法將每一筆的采樣數(shù)歸一化到相同,才能在圖像中看到采樣點(diǎn)一一對應(yīng)的效果。
圖6 筆勁變化曲線
圖中灰線為同一個人書寫時采集到的壓力變化,,深灰線和黑線為另外兩個人書寫的壓力變化,,同一個人的書寫壓力變化趨勢和壓力的絕對大小都很接近,能夠與不同人的書寫區(qū)分開來,,說明本系統(tǒng)的設(shè)計(jì)思路是合理的,。
5 結(jié)束語
本文介紹了一種基于筆勁識別的身份驗(yàn)證系統(tǒng),重點(diǎn)在于對以往單純以書寫的字形來識別身份的方式的改進(jìn),,在相對成熟的筆跡識別技術(shù)基礎(chǔ)上,,輔以對書寫筆勁的對比,可以更加精確地識別用戶的身份,,而且書寫的筆勁在外觀上是很難察覺的,,故很難被模仿。本系統(tǒng)使用LabVIEW 編寫上位機(jī),,充分簡化了開發(fā)流程,。另外本文中的書寫筆勁的采集是直接基于觸摸屏的,不用外加任何傳感器和特殊的壓力采集設(shè)備,,簡單易行,,只要稍加改裝,此方案可以被廣泛使用在其他以觸摸屏為主的設(shè)備上,。經(jīng)過實(shí)際測試,,本系統(tǒng)對特定用戶的識別率較高,但是存在一定的拒絕認(rèn)證率,。這就需要進(jìn)一步改進(jìn)算法,,以進(jìn)一步提高準(zhǔn)確率。在實(shí)際應(yīng)用中,,本方法應(yīng)結(jié)合筆跡識別,,提高認(rèn)證的準(zhǔn)確度。