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