摘要:針對門禁、安防系統(tǒng)的安全性和報警的實時性需求,設計了一種基于指紋識別技術(shù)和MMS無線信息傳輸技術(shù)的指紋識別報警系統(tǒng)。系統(tǒng)以LabVIEW為平臺,以ActiveX為控件技術(shù),實現(xiàn)了對指紋采集儀的二次開發(fā)應用,結(jié)合攝像頭和和彩信模塊實現(xiàn)了指紋采集、識別和危險情況下圖像采集和彩信報警等功能。實驗結(jié)果表明,系統(tǒng)反應靈敏,工作穩(wěn)定可靠。
關鍵詞:虛擬儀器; 指紋識別; Biokey算法; MMS彩信
中圖分類號:TN91134; TP31文獻標識碼:A文章編號:1004373X(2012)04018804
Fingerprint identification and alarm system based on LabVIEW virtual instrument
LIU Chang, LI Xiaodong, BI Yunfeng
(School of Mechanical, Electrical Information Engineering, Shandong University, Weihai 264209, China)
Abstract: For the requirements of security and realtime for the access control and security alarm system, a fingerprint identification and alarm system is designed, based on technologies of fingerprint indentification and MMS wireless information transmission. LabVIEW is taken as a platform in the system. The second time development and application of fingerprint instrument were realized with ActiveX technology. The functions of fingerprint acquisition and identification, as well as image acquisition and MMS alarm in dangerous situations were achieved in combination with camera and MMS module. The experiment results show that the system responds sensitively and works steady.
Keywords: virtual intrument; fingerprint identification; Biokey algorithm; multimedia messaging service
收稿日期:20110817
基金項目:山東大學威海分校教研基金資助項目
(1050511420004)0引言
目前常見的門禁系統(tǒng)多采用機械式鑰匙或射頻IC卡作為身份識別方式,由于他們具有易遺失,可偽造的缺點,已不能很好地滿足人們對其安全性能的要求。而為大多數(shù)安防報警系統(tǒng)所采用的聲、光報警方式也不能實時記錄下非法入侵者的圖像,并即時發(fā)送給業(yè)主。針對上述安全性和實時性的不足,本文以LabVIEW軟件為開發(fā)平臺設計的指紋識別報警系統(tǒng)能夠?qū)崿F(xiàn)身份識別準入,危險情況下的拍照取證,彩信報警的功能,較好地解決了以上問題。
1系統(tǒng)總體方案設計
該系統(tǒng)由指紋采集儀、攝像頭、GPRS彩信模塊、計算機和動作執(zhí)行機構(gòu)等部分構(gòu)成。
指紋采集儀選用美國DP公司的URU4000B指紋采集儀。該采集儀采集指紋圖像,支持Biokey算法。Biokey算法是一種快速、準確的1∶1和1∶N指紋識別算法,面向軟件開發(fā)商和系統(tǒng)集成商全面開放,在使用Biokey進行指紋識別時(2 000~6 000枚指紋),不需要對指紋通過姓名、PIN等預先分類就可以快速輕松完成。
圖1系統(tǒng)總體結(jié)構(gòu)框圖彩信模塊采用SIMCOM公司的SIM300。SIM300是一款三頻段GSM/GPRS 模塊,可在全球范圍內(nèi)的EGSM 900 MHz,DCS 1 800 MHz,PCS 1 900 MHz 三種頻率下工作, 支持數(shù)字、語音、短消息、彩信等功能, 支持并且有完善的AT 命令。通過RS 232串口與計算機相連接, 用AT指令實現(xiàn)與計算機的數(shù)據(jù)收發(fā)。
計算機是系統(tǒng)的核心處理、控制單元。系統(tǒng)工作時先由指紋采集儀采集允許的指紋圖像形成指紋庫,完成指紋登記,然后采集外來指紋。若該指紋與計算機中已登記的指紋匹配,則發(fā)送開關量,觸發(fā)執(zhí)行機構(gòu);若指紋不匹配,則立刻通過攝像頭采集當前非法入侵者的圖像,并通過GSM/GPRS模塊發(fā)送彩信到指定的手機號碼中,實現(xiàn)對危險情況的及時報警。因此,系統(tǒng)的主要工作就是在計算機平臺上實現(xiàn)指紋采集比對、圖像采集和報警信息發(fā)送。
2系統(tǒng)在LabVIEW軟件平臺的實現(xiàn)
系統(tǒng)在LabVIEW編程環(huán)境下設計實現(xiàn)。LabVIEW是由美國NI公司研制開發(fā)的一種專門面向測控領域的圖形化編輯語言,直觀易學,編程效率高。系統(tǒng)的軟件編程主要分為指紋識別和彩信報警兩個功能模塊。其中,指紋識別模塊實現(xiàn)指紋在計算機上的采集登記和比對,以攝像頭和彩信報警模塊實現(xiàn)圖像的采集和發(fā)送。
2.1指紋采集和識別
URU4000B指紋采集儀提供了可供二次開發(fā)用的軟件開發(fā)包Biokey SDK,它以ActiveX控件方式存在。本文利用LabVIEW調(diào)用ActiveX控件,實現(xiàn)指紋的登記和比對。
2.1.1ActiveX控件的注冊和調(diào)用
ActiveX控件是ActiveX技術(shù)的一種,它是以控件形式發(fā)布的一種軟件模塊。ActiveX控件主要包含的函數(shù)節(jié)點有屬性、方法和事件,使用前需要將URU4000B的控件文件Biokey.ocx復制到c:\windows\system32系統(tǒng)目錄中。點擊Window系統(tǒng)下的“開始運行”在對話框中輸入命令“regsvr32 Biokey.ocx”,即完成對控件的注冊。
在LabVIEW中調(diào)用Biokey.ocx控件的步驟是:首先在前面板中創(chuàng)建“ActiveX容器”,創(chuàng)建好后在上面單擊右鍵選擇“插入ActiveX對象”,在彈出對話框的下拉列表中選擇需要的Biokey.ocx控件即可完成操作。
2.1.2指紋登記
在LabVIEW平臺上完成對ActiveX控件的調(diào)用后就需進行指紋的登記和比對。登記指紋的目的在于將以后允許通過的指紋模板登記在計算機中。登記指紋的流程圖如圖2所示。
首先調(diào)用InitEngine()方法函數(shù)初始化控件,調(diào)用CreateFPCacheDB()方法函數(shù)創(chuàng)建內(nèi)存高速緩沖區(qū);然后開始登記,登記環(huán)節(jié)主要包含一個方法函數(shù)BeginEnroll()和三個事件函數(shù)。對事件函數(shù)的設計是框圖程序的關鍵。事件在LabVIEW中以“事件回調(diào)注冊”形式存在,同時還需要創(chuàng)建一個回調(diào)子VI來處理控件事件,當事件被觸發(fā)時將運行回調(diào)VI。子VI的創(chuàng)建方法是右鍵單擊“事件回調(diào)注冊”節(jié)點的“VI引用”分支,然后選擇“創(chuàng)建回調(diào)VI”。
圖2指紋登記流程圖回調(diào)子VI中包含需要傳遞出來的“事件數(shù)據(jù)”,需要把這些數(shù)據(jù)傳遞出來,關于回調(diào)事件數(shù)據(jù)的方法有很多,本文選擇利用全局變量傳遞回調(diào)事件數(shù)據(jù)的方法。指紋登記涉及到的三個事件函數(shù)分別是:OnImageReceived()為當指紋儀取到指紋圖像時調(diào)用該事件;OnFeatureInfo()為取得指紋初始特征,該函數(shù)的傳遞參數(shù)Quality表示該指紋特征的質(zhì)量,它有三個可能值,0表示好的指紋特征,1表示特征點不夠,2表示其他原因?qū)е虏荒苋〉街讣y特征;OnEnroll()為用戶登記指紋結(jié)束時調(diào)用該事件,當該函數(shù)的傳遞參數(shù)ActionResult =true時,表示成功登記。利用這三個事件函數(shù)及其各自回調(diào)子VI編寫的程序如圖3所示。這里采用循環(huán)結(jié)構(gòu)的原因在于當前面板上“登記指紋”按鈕被觸發(fā)后,需要通知程序循環(huán)運行等待按壓指紋。當上述三個事件均被成功觸發(fā)后屬性函數(shù)IsRegister函數(shù)值自動變?yōu)?,經(jīng)過取反操作后變?yōu)?,即可停止循環(huán)。
圖3指紋登記主要框圖程序循環(huán)結(jié)構(gòu)停止后,數(shù)據(jù)流流出循環(huán)結(jié)構(gòu)進入下一步操作。接著調(diào)用GetTemplate()方法函數(shù)提取登記到的指紋模板;調(diào)用SaveTemplate()方法函數(shù)保存指紋模板;調(diào)用AddRegTemplateToFPCahceDB()方法函數(shù)將提取到得指紋模板添加到已創(chuàng)建的內(nèi)存緩沖區(qū)。其中fpcHandle為內(nèi)存緩沖區(qū)的句柄,由之前創(chuàng)建的內(nèi)存緩沖區(qū)的全局變量得到。到此為止即完成了指紋登記。這部分程序見圖4。
圖4添加登記的指紋模板到內(nèi)存緩沖區(qū)2.1.3指紋的比對
指紋比對的目的在于采集當前指紋,與已登記的指紋模板做比對,即實現(xiàn)系統(tǒng)的身份識別,并發(fā)送開關量驅(qū)動后續(xù)功能模塊。流程圖如圖5所示。
圖5指紋比對流程圖首先將已登記的所有指紋模板添加到內(nèi)存緩沖區(qū)內(nèi)。因為在登記環(huán)節(jié)是按照工序號命名保存的指紋模板,所以在添加時可以用一個for循環(huán)結(jié)構(gòu),循環(huán)N次(N為登記保存的模板個數(shù))將所有模板全部添加進內(nèi)存高速緩沖區(qū)。然后利用指紋儀采集當前指紋,此處步驟與指紋登記相差不大,同樣是包含一個方法函數(shù)BeginCapture()和三個事件函數(shù),只不過最后一個事件函數(shù)由OnEnroll()變成了OnCapture()。再調(diào)用IdentificationInFPCacheDB()方法函數(shù),將當前指紋模板與指紋識別高速緩沖空間fpcHandle中所有登記模板進行特征點比對,在比對識別過程中如果比對分數(shù)大于等于設定閾值Threshold,則認為比對成功,不再和緩沖空間中剩余的指紋登記模板進行比對,如果比對失敗即指紋不匹配,則返回-1。
本文在程序指紋識別成功時(即IdentificationInFPCacheDB()函數(shù)返回值大于-1)通過串口向執(zhí)行機構(gòu)發(fā)送一個開關量00,驅(qū)動后續(xù)動作。LabVIEW程序是利用VISA節(jié)點進行串口通信的,因為在LabVIEW中實現(xiàn)串口通信很簡單,故在此不再詳細說明,串口通信的程序框圖見圖6。
圖6串口通訊程序框圖2.2攝像頭圖像采集
若當達到規(guī)定的指紋識別次數(shù)(比如3次)時指紋比對仍然失敗,則觸發(fā)系統(tǒng)報警。系統(tǒng)彩信報警需要先通過攝像頭采集非法入侵者的圖像,即計算機調(diào)用攝像頭拍照。
系統(tǒng)報警模塊被觸發(fā)時,名為“結(jié)果”的布爾量值產(chǎn)生改變,于是觸發(fā)“報警”的事件結(jié)構(gòu),開始進入報警階段。在這一階段,首先通過LabVIEW調(diào)用Ovfw.dll的函數(shù)方法節(jié)點:“CaptureToBitmapFile”,調(diào)用攝像頭拍照,并將圖像保存為bmp格式,其程序框圖見圖7。
圖7攝像頭圖像采集程序框圖2.3彩信發(fā)送
這一部分完成圖像和文字信息的打包,將彩信報警內(nèi)容發(fā)送到指定的手機號碼中。該部分通過RS 232串口經(jīng)計算機傳送到SIM300模塊中,再經(jīng)該模塊將報警信息實時發(fā)送出去。
計算機采集到圖像后還需將圖像轉(zhuǎn)換成8位無符號整數(shù)類型(U8)的一維數(shù)組才能被彩信模塊接收到。這部分功能同樣需要在LabVIEW軟件上實現(xiàn)。因此首先在程序中調(diào)用“讀取二進制文件”節(jié)點,以二進制方式讀取圖片,讀取出來的圖片數(shù)據(jù)存放在一個一維數(shù)組里面,其程序框圖如圖8所示。最后將圖片數(shù)據(jù)從一維數(shù)組里面讀取出來,連同報警的文字內(nèi)容,以AT指令形式通過串口傳送給彩信收發(fā)模塊,即完成彩信報警。
3系統(tǒng)測試
為檢驗指紋識別通過時系統(tǒng)發(fā)出的信號,以51單片機控制繼電器作為執(zhí)行機構(gòu),當指紋識別成功,單片機接收到計算機發(fā)出的開關量00時,驅(qū)動繼電器吸合。
將指紋采集儀通過USB口和計算機相連,并通過串口分別將SIM300彩信模塊和單片機與計算機相連。打開LabVIEW程序,注冊登記6個不同的指紋,然后用不同的手指作指紋識別測試。分別觀察指紋比對成功時執(zhí)行機構(gòu)的動作,以及指紋比對失敗時彩信接受設備是否接收到報警彩信。一共測試50次,系統(tǒng)測試結(jié)果如表1所示。
圖8二進制方式讀圖片表1系統(tǒng)測試結(jié)果表次
指紋比對成功指紋比對失敗數(shù)量2822攝像頭拍照022彩信接收022繼電器吸合280
4結(jié)語
本文采用常見的指紋采集儀,結(jié)合MMS無線信息傳送技術(shù),利用LabVIEW虛擬儀器技術(shù)設計實現(xiàn)了具有安全性、實時性的指紋識別報警系統(tǒng)。測試結(jié)果表明,系統(tǒng)運行良好,能夠進行可靠安全的指紋識別和實時快速的彩信報警。本文的創(chuàng)新點是將指紋識別技術(shù)與MMS信息傳輸技術(shù)結(jié)合在一起,應用于安防報警系統(tǒng)中,解決了傳統(tǒng)安防報警系統(tǒng)安全性和實時性不足的缺陷;基于LabVIEW軟件平臺以圖形化編程語言實現(xiàn)對Biokey SDK的二次開發(fā),以及圖片文件的數(shù)字化傳輸,提出了一種全新的編程思路。
參考文獻
[1]姚慶君,單佳佳,楊宜霖,等.汽車指紋識別門鎖軟硬件設計[J].微計算機信息,2010,26(2):161162.
[2]畢云峰,曹樂,孫日明.基于LabVIEW虛擬儀器技術(shù)的分布式速度檢測系統(tǒng)[J].現(xiàn)代電子技術(shù),2009,32(4):166168.
[3]楊樂平.LabVIEW高級程序設計\\[M\\].北京:清華大學出版社,2003.
[4]阮奇楨.我和LabVIEW:一個NI工程師的十年編程經(jīng)驗\\[M\\].北京:北京航空航天大學出版社,2009.
[5]趙鑫,蔣亮.MMS彩信開發(fā)與應用\\[M\\].北京:北京郵電大學出版社,2003.
[6]趙亮,龔鳴敏.基于指紋識別的身份認證技術(shù)研究[J].微計算機信息,2006,22(25):301304.
[7]基于LabVIEW和OVFW控件的通用視頻捕捉程序[D].石家莊:石家莊理工職業(yè)學院,2008.
[8]王定遠,胡吉朝,李援,等.基于Mscomm32和LabVIEW的串口通信技術(shù)[J].國外電子測量技術(shù),2006(4):6164.