嵌入式指紋識別系統(tǒng)開發(fā) 作者: 時間:2007-03-09 來源:網(wǎng)絡(luò) 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對面交流海量資料庫查詢 收藏 摘要:介紹了指紋識別技術(shù)的基本原理,嵌入式操作系統(tǒng)的選擇及定制。計(jì)算機(jī)控制單元的軟件及硬件設(shè)計(jì)包括:指紋并口采集板設(shè)計(jì)及初始化程序,前臺指紋建檔(比對程序,局域網(wǎng)通訊程序,數(shù)據(jù)處理程序等。關(guān)鍵詞:指紋識別 嵌入式 通訊 操作系統(tǒng) 生理測定技術(shù)是當(dāng)前研究的熱點(diǎn)之一。目前,有很多技術(shù)等生物測定技術(shù)可用于身份認(rèn)證,包括:虹膜識別、視網(wǎng)膜識別、面部識別、簽名識別、聲音識別技術(shù)、指紋識別技術(shù)等。其中指紋因具有終生不變性及穩(wěn)定性,是目前應(yīng)用前景較好的生物識別系統(tǒng)。但指紋識別目前在國內(nèi)乃至世界仍未普及的主要原因是:(1)速度慢:目前一般系統(tǒng)辨別需要數(shù)秒鐘甚至更長;(2)性能差:錯誤拒識率(FRR)和錯誤接受率(FAR)過高,目前市場上出現(xiàn)的系統(tǒng)一般FRR<3%,FAR<1/106;(3)價格高:由于目前國內(nèi)主要引用國外成熟的指紋識別技術(shù),并且比對系統(tǒng)采用PC機(jī)處理,體積龐大,不便移動。本系統(tǒng)在對指紋識別技術(shù)優(yōu)化的基礎(chǔ)上,與嵌入式技術(shù)相結(jié)合,可較好地解決上述問題。 1 指紋識別原理 指紋識別的基本原理為:采用細(xì)節(jié)點(diǎn)坐標(biāo)模型來做細(xì)節(jié)匹配,即對指紋的脊線末梢和指紋的脊線分支點(diǎn)提取特征點(diǎn)鑒定指紋。具體的自動指紋識別系統(tǒng)框圖見圖1。指紋圖像的預(yù)處理:目的是去除指紋圖像中的噪音,將其轉(zhuǎn)化為一幅清晰的點(diǎn)線圖,便于提取正確的指紋特征。預(yù)處理影響指紋識別的效果,具有重要的意義。它分四步進(jìn)行,即灰度濾波、二值化、二值去噪、細(xì)化。 對圖像細(xì)化后,采用細(xì)節(jié)點(diǎn)模反提取出指紋圖像的脊線末梢和脊線分支點(diǎn)的位置,將指紋認(rèn)證問題轉(zhuǎn)化成為點(diǎn)模式匹配問題。建檔時將特征位置點(diǎn)坐標(biāo)轉(zhuǎn)化為極坐標(biāo)后存入數(shù)據(jù)庫,作為建檔模板。指紋比對時,采用同樣的方法,得到比對模板。由于要考慮指紋的平移和旋轉(zhuǎn)(對極坐標(biāo)只考慮旋轉(zhuǎn)),對每個關(guān)鍵點(diǎn)A,在指紋圖像上尋找兩個與其最后的關(guān)鍵點(diǎn)R、S,把A、R、S點(diǎn)的類型(末梢或分支點(diǎn))分別紀(jì)錄為nType1、nType2、nType3;把連接點(diǎn)A與點(diǎn)R、點(diǎn)A與點(diǎn)S、點(diǎn)R與點(diǎn)S的3條虛擬線段所跨越的脊線數(shù)分別記為nCrossNum1、nCrossNum2、nCrossNum3。如果這兩點(diǎn)滿足一定茶杯條件,則認(rèn)為點(diǎn)A與點(diǎn)B初匹配成功,如此可選擇出最好的3組對應(yīng)點(diǎn),計(jì)算出比對模板相對建檔模板的旋轉(zhuǎn)角度,將比對模板矯正后,再進(jìn)行細(xì)節(jié)點(diǎn)的精細(xì)匹配,根據(jù)隸屬函數(shù)可計(jì)算兩個指紋的相似度。如大于某個閾值,則認(rèn)為是同一指紋。 2 系統(tǒng)的定制 2.1 選擇嵌入式操作系統(tǒng) 隨著微電子技術(shù)的進(jìn)步,芯片的制造成本和銷售價格都大大降低了,而功能和內(nèi)部支持的端口卻大大擴(kuò)展了,16位和32位嵌入式處理器逐漸成為電子產(chǎn)品設(shè)計(jì)的主流。為了縮短產(chǎn)品設(shè)計(jì)周期和運(yùn)行時間,使工作更穩(wěn)定、更可靠和更高效并實(shí)現(xiàn)需要的復(fù)雜功能,需要運(yùn)行于嵌入式處理器上的嵌入式操作系統(tǒng),才能形成完整的系統(tǒng)平臺。當(dāng)前嵌入式操作系統(tǒng)包括Microsoft Embedded NT 4.0、Microsoft Windows CE、Nucleus PLUS、pSOSystem等。由于指紋識別對系統(tǒng)計(jì)算能力要求較高,需要具有強(qiáng)大的管理功能,并不需要硬實(shí)時功能,在實(shí)際開發(fā)中選用Microsoft Embedded NT 4.0嵌入式操作系統(tǒng),它具有操作系統(tǒng)的完善功能和強(qiáng)大的TCP/IP網(wǎng)絡(luò)功能;開發(fā)環(huán)境可選用Visual C++ 6.0并支持組件對象模型、MFC、ATL等。經(jīng)過實(shí)驗(yàn)驗(yàn)證,可滿足設(shè)計(jì)要求。 2.2 系統(tǒng)硬件選擇及開發(fā) 系統(tǒng)硬件框圖見圖2。(1) 工控主板選用研祥PI6584V工控主板,并配如下部件:CPU(AMD K6-2)、內(nèi)存(168線64MB)、PC 104以太網(wǎng)卡、32MB DOM。該部分采用5V供電,靜態(tài)耗電50μA。峰值耗電量50mA。體積為50mm%26;#215;80mm%26;#215;20mm。工控主板在系統(tǒng)中所起作用:搭載系統(tǒng)應(yīng)用軟件;使用EPP1.9模式,通過并口從并口板讀取指紋圖像數(shù)據(jù);將指紋圖像數(shù)據(jù)通過指紋建檔算法轉(zhuǎn)化為指紋特征值存入DOM中;實(shí)時采集指紋與DOM中指紋特征值進(jìn)行比對;接收鍵盤輸入鍵值并根據(jù)按鍵功能定義進(jìn)行相應(yīng)操作;系統(tǒng)狀態(tài)信息通過串口輸出到控制板中,完成人機(jī)操作界面顯示。 (2) 指紋采集頭組件(COMS板)。COMS板的主要功能為:實(shí)時通過光學(xué)指紋采集儀將指紋圖像折射到采像芯片上,由采像芯片完成模擬量到數(shù)字量的轉(zhuǎn)換,并送往并口板存儲器中暫存。COMS板的核心器件為OV7120和指紋采集儀。OV7120為黑白單元COMS VGA采像器件。指紋采集儀為光光采像頭,型號為ZYZ202A。該型號采像頭為長春方圓定型產(chǎn)品,主要技術(shù)參數(shù):手指接觸面:光學(xué)玻璃;采像有效面積:22mm%26;#215;22mm;成像方式:棱鏡折射式;圖像分辨率:450dpi。 (3) 并口板主要功能為:通過I2C總線對COMS板中采像芯片OV7120設(shè)置有關(guān)參數(shù);從COMS板提取指紋采像數(shù)據(jù)并暫存于存儲器中;每存取一幀圖像數(shù)據(jù)即通過并口(EPP模式)向工控主板發(fā)出請求信號;根據(jù)工控主板發(fā)出的數(shù)據(jù)提取信號將指紋圖像數(shù)據(jù)輸入系統(tǒng)進(jìn)行有關(guān)處理;實(shí)時檢測整機(jī)內(nèi)部環(huán)境溫度并控制相關(guān)排風(fēng)扇的工作。并口板的核心器件為EPM7032、AT89C2051、IS61C1024L。EPM7032為FPGA,其主要作用是完成COMS板指紋圖像數(shù)據(jù)到工控主板的數(shù)據(jù)傳遞。AT89C2051是通用8位單片機(jī)。IS61C1024L為128K%26;#215;8bit高速COMS靜態(tài)存儲器,與并口板之間采用IDC-20P雙排針接口。 (4) 控制板主要功能為:接受外部命令并將對應(yīng)鍵值輸入工控主板以完成相關(guān)操作,通過串口從控主板獲取顯示內(nèi)容并轉(zhuǎn)化為液晶屏顯示所需格式??刂瓢搴?5個銨鍵,為導(dǎo)電膠方式。按鍵包括:Menu、Cancel、OK、0~9、<、>共15個鍵。控制板的核心器件為鍵盤掃描芯片EM83050和標(biāo)準(zhǔn)8位單片機(jī)AT89C2051。與工控主板之間采用TJC3-3P插座;與液晶屏之間采用TJC3-9P插座。 (5) 液晶屏主要用來顯示系統(tǒng)所處狀態(tài)。液晶屏型號為WGM12232H,點(diǎn)陣大小122%26;#215;32。 串口LED顯示采用RS232/485接口與計(jì)算機(jī)通信,通信方式:RS232接口、115200bps、異步8位、1位起始位、8位數(shù)據(jù)位、1位停止位。 發(fā)送數(shù)據(jù)格式如下: 55H AAH XX顯示數(shù)據(jù) 其中,55H AAH為數(shù)據(jù)頭標(biāo)志,XX為背光控制字:48H點(diǎn)亮背光,其余不點(diǎn)亮背光。 通信說明:通信主動方為PC,被動方向LCD。首先PC發(fā)送數(shù)據(jù)頭命令55H、AAH,LCD接收到數(shù)據(jù)頭后,判斷是否正確。若正確則開始接收背光控制字并顯示數(shù)據(jù);否則退出接收狀態(tài)。傳輸數(shù)據(jù)中,當(dāng)LCD端檢測到傳輸中斷超時,即退出接收狀態(tài)。LCD值守狀態(tài)時處于背光熄滅狀態(tài),當(dāng)檢測有鍵按下或有指紋時,上位機(jī)發(fā)送背光控制字(48H)使背光點(diǎn)亮。 完成硬件設(shè)計(jì),通過編寫測試軟件在PC平臺上進(jìn)行測試,基本可滿足系統(tǒng)要求。3 軟件及驅(qū)動編寫 3.1 嵌入式NT系統(tǒng)定制 硬件測試完成后,根據(jù)硬件的中斷號、插槽及系統(tǒng)要求的性能,需要對嵌入式NT進(jìn)行定制。在NT系統(tǒng)裁減器中,主要選擇如下: (1) 選擇Minimal With Network Copy至Minimal With Network; (2) System中Devices選擇Display-NullVga,Serial Ports-com1/com2(中斷號:5/6),Parallel Ports-LPT1; (3) Networks:Network adapters-Novel NE2000 Compatile Adapts,Network Protocol-TCP/IP,Network Services-LAN Manage Workstations、Simple TCP Service、DHCP client Winsock; (4) Share System Component中選擇Display Common、Keyboard driver common、Network Common、Virtual memory mamage; (5) Applications中選擇Shell-command Shell,Utilities-Windows NT Command Prompt。 生成操作系統(tǒng)后,做一張嵌入式NT啟動盤,用啟動盤格式化DOM,鍵入NTBoot>后將操作系統(tǒng)拷貝至DOM,NT操作系統(tǒng)即可運(yùn)行。 3.2 軟件編寫 系統(tǒng)流程圖見圖3。 系統(tǒng)啟動部分主要功能:初始化指紋識別模塊InitFp();初始化串口和刷新液晶LCDInit(int(hWnd));初始化字庫IniFontLib();初始化鍵盤響應(yīng)InitKeySys();初始始化字庫IniFontLib();初始化鍵盤響應(yīng)InitKeySys();初始化并口采像設(shè)備InitParrel();初始化液晶顯示InitDispary();將指紋庫,密碼庫裝入內(nèi)存LoadAll()。系統(tǒng)啟動完成后開始線程ThreadMain(),在線程中進(jìn)入程序死循環(huán),在循環(huán)中主要響應(yīng)按鍵和采集圖像進(jìn)行指紋比對其中按鍵響應(yīng)分三部分; (1) 當(dāng)輸入的按鍵個數(shù)等于設(shè)定個數(shù)(人員代碼長度+密碼長度)時,進(jìn)行密碼考勤; (2) 指紋考勤分為分組考勤(即輸入接鍵的數(shù)字鍵數(shù)目為1時進(jìn)行)、1:1考勤(即輸入按鍵數(shù)目等于人員代碼長度時進(jìn)行); (3) 值守狀態(tài)下,按MENU鍵,輸入正確系統(tǒng)密碼進(jìn)入管理狀態(tài)。 系統(tǒng)菜單包括:值守,指紋建檔,1:1建棣,密碼建檔,指紋刪除,密碼刪除,指紋查詢,指紋分組查詢,密碼查詢,系統(tǒng)日期,系統(tǒng)時間,默認(rèn)組設(shè)置,修改IP地址,語言設(shè)置,代碼長度設(shè)置,系統(tǒng)密碼。 采集圖像進(jìn)行指紋比對:在大循環(huán)中,先讀圖像:ReadImg(Img,50);如果讀圖像成功,進(jìn)行比對:SysMatch(Img);比對成功后,顯示人員代碼、姓名。 3.3 數(shù)據(jù)傳輸部分 定義流水帳結(jié)構(gòu)為:考勤時間:_SYSTEMTIME T;人員代碼:char Code[16];出入標(biāo)志:Byte Inout。網(wǎng)絡(luò)傳輸采用標(biāo)準(zhǔn)TFTP和UDP協(xié)議進(jìn)行通信,詳細(xì)通信協(xié)議如下: 上傳下載采用TFTP協(xié)議,主要完成的功能包括:上載人員名單、備份、下傳流水帳、備份數(shù)據(jù)至主機(jī)。UDP主要負(fù)責(zé)打開、關(guān)閉TFTP服務(wù)。網(wǎng)絡(luò)通信模塊采用標(biāo)準(zhǔn)TFTP協(xié)議: 報頭==0x81 下載 報頭==0x82 上載 傳遞文件只能為流水賬、配置表、指紋數(shù)據(jù)、密碼裝飾。 4 實(shí)驗(yàn)及測試結(jié)果 系統(tǒng)設(shè)計(jì)完成后,可脫機(jī)值守工作。122%26;#215;32點(diǎn)陣LCD實(shí)時顯示時鐘、操作狀態(tài),并具有15鍵操作鍵盤,可獨(dú)立完成建檔及查詢等功能。系統(tǒng)核查指紋1:N、1:1兩種方式兼容,體積小巧,支持桌面及壁掛放置(外形尺寸:255mm%26;#215;176mm%26;#215;100mm),提供RS232/R485、RJ45接口,支持局域網(wǎng)連接。提供識別記錄的標(biāo)準(zhǔn)數(shù)據(jù)格式,可用于二次開發(fā)或與人事工資等管理軟件掛接。指紋登記個數(shù)≥3000枚,數(shù)據(jù)存儲容量≥50萬條記錄。 為驗(yàn)證系統(tǒng)性能,選取1000枚指紋作實(shí)驗(yàn),其中每300枚指紋為一組,實(shí)驗(yàn)結(jié)果如下: (1) 指紋核查通過時間:<2s; (2) 誤識率(FAR):<0.001%; (3) 拒識率(FRR):<1%; (4) 功耗:<60W; (5) 分辨率:450dpi。 上述指紋管理系統(tǒng)已初步通過實(shí)驗(yàn)檢測,運(yùn)行正常,并通過了有關(guān)部分初步驗(yàn)證。本系統(tǒng)將指紋識別與嵌入式技術(shù)結(jié)合在一起,降低了系統(tǒng)成本,可廣泛用于生活小區(qū)物業(yè)管理,學(xué)校的考場管理,軍事、政府部門的身份鑒別。應(yīng)用前景廣闊。 但是,該系統(tǒng)還存在兩個問題:(1)對指紋質(zhì)量比較差的指紋存在建檔較難的問題(FFR過高);(2)算法過于復(fù)雜,影響系統(tǒng)性能。還對應(yīng)算法和操作系統(tǒng)性能進(jìn)一步優(yōu)化。 linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論