基于ARM的手指靜脈識(shí)別系統(tǒng)
1 嵌入式系統(tǒng)總體結(jié)構(gòu)
比較完整的手指靜脈識(shí)別系統(tǒng)應(yīng)具備采集和識(shí)別這兩個(gè)基本的功能。首先通過(guò)嵌入式采集裝置獲取使用者的相關(guān)信息,并將該使用者的手指靜脈特征添加到手指靜脈特征數(shù)據(jù)庫(kù);然后根據(jù)數(shù)據(jù)庫(kù)中使用者信息與采集的手指靜脈圖像比對(duì),判定其身份是否正確。為此,將該嵌入式手指靜脈識(shí)別系統(tǒng)分為硬件平臺(tái)、嵌入式操作系統(tǒng)和應(yīng)用軟件三部分。
嵌入式系統(tǒng)硬件主要由嵌入式微處理器S3C6410及其外圍擴(kuò)展電路組成。其中,S3C6410是一款基于ARM11內(nèi)核的微控制器,其主頻達(dá)667 MHz,具有豐富的外圍接口控制器,可以滿足圖像識(shí)別所需性能要求。嵌入式操作系統(tǒng)采用 WinCE6.0,其模塊化設(shè)計(jì)使得嵌入式系統(tǒng)和應(yīng)用程序開(kāi)發(fā)者能夠方便地根據(jù)需求定制產(chǎn)品,同時(shí)還具有100%開(kāi)放WinCE 6.0內(nèi)核源代碼。采用微軟的多媒體DirectShow技術(shù),在Visual Studio 2005環(huán)境下開(kāi)發(fā)圖像采集應(yīng)用程序,在PC機(jī)上調(diào)試成功后移植到嵌入式系統(tǒng)平臺(tái)下運(yùn)行并實(shí)現(xiàn)身份識(shí)別。
2 嵌入式系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件設(shè)計(jì)采用模塊化設(shè)計(jì)原則,把嵌入式系統(tǒng)硬件平臺(tái)分為微處理器核心模塊、手指靜脈成像模塊、自動(dòng)調(diào)光控制模塊和輔助操作模塊。其硬件結(jié)構(gòu)如圖1所示。
本設(shè)計(jì)選取S3C6410作為嵌入式微處理器,其上外接DRAM接口、Nand Flash接口以及豐富的總線接口電路。同時(shí)S3C6410還集成了電源電路、復(fù)位電路、RS232接口電路和USB接口電路等部分。其中,DRAM接口用于連接動(dòng)態(tài)存儲(chǔ)器,本設(shè)計(jì)采用Mobile DDR存儲(chǔ)器,用于運(yùn)行操作系統(tǒng)及存取應(yīng)用程序。Nand Flash則用于固化嵌入式操作系統(tǒng)Windows CE內(nèi)核、手指靜脈識(shí)別軟件等,以及儲(chǔ)存采集的圖像等數(shù)據(jù)資料。
手指靜脈成像模塊包括紅外光源、紅外濾光片和圖像傳感器。本設(shè)計(jì)選用微型OV9650圖像傳感器模組,它由30針的CMOS圖像傳感器和手動(dòng)微調(diào)鏡頭組成,需要為其提供必須的電源。攝像頭電源電路如圖2所示。通過(guò)S3C6410的攝像頭接口從S3C6410獲取+5 V電源,分別轉(zhuǎn)換為3路電壓值為攝像頭電路供電。
本文通過(guò)轉(zhuǎn)接板來(lái)實(shí)現(xiàn)攝像頭模組與S3C6410的連接,其接口電路如圖3所示。其中,J1用于 S3C6410攝像頭接口與轉(zhuǎn)接板的連接,U10則是攝像頭模組與轉(zhuǎn)接板的接口。
對(duì)于近紅外光源,選用波長(zhǎng)為850 nm、型號(hào)為T(mén)SHG5210的高速紅外發(fā)光二極管,設(shè)計(jì)中排成直線形陣列。由于環(huán)境不同,可見(jiàn)光對(duì)手指靜脈成像影響也有所不同,因此,在鏡頭前放置型號(hào)為IR780的近紅外濾光片來(lái)濾除可見(jiàn)光。
自動(dòng)調(diào)光控制模塊使紅外光源能夠根據(jù)被采集對(duì)象手指的不同粗細(xì)進(jìn)行自動(dòng)調(diào)光,使攝像頭接收到的光強(qiáng)不變,采集到的圖像亮度適中。本設(shè)計(jì)在原來(lái)研制的積分調(diào)節(jié)電路[2]基礎(chǔ)上改進(jìn)為帶PID控制器的紅外光強(qiáng)自動(dòng)調(diào)節(jié)電路。當(dāng)采用PID電路進(jìn)行串聯(lián)校正時(shí),可以使得系統(tǒng)型別提高一級(jí);同時(shí)還為系統(tǒng)提供兩個(gè)負(fù)實(shí)零點(diǎn),進(jìn)行調(diào)節(jié)時(shí),可進(jìn)一步提高系統(tǒng)穩(wěn)定性,改善系統(tǒng)動(dòng)態(tài)性能。PID控制器電路圖如圖4所示。
輔助操作模塊包括LCD、USB鼠標(biāo)和8×8矩陣鍵盤(pán)等,用于對(duì)嵌入式系統(tǒng)進(jìn)行控制。
3 嵌入式識(shí)別系統(tǒng)應(yīng)用軟件開(kāi)發(fā)
本文采用多媒體DirectShow技術(shù)來(lái)設(shè)計(jì)攝像頭圖像采集應(yīng)用程序。為了完成對(duì)圖像數(shù)據(jù)的處理,創(chuàng)建多個(gè)過(guò)濾器并連接,數(shù)據(jù)流從源過(guò)濾器經(jīng)過(guò)中間過(guò)濾器移動(dòng)到渲染過(guò)濾器,最終提供給用戶。在這個(gè)過(guò)程中完成對(duì)數(shù)據(jù)的讀取、解碼、將數(shù)據(jù)輸出到相應(yīng)設(shè)備上。本文將視頻預(yù)覽和視頻捕捉封裝成視頻采集過(guò)濾器,如圖5所示。其中,“智能Tee”是為了調(diào)節(jié)PCI總線分流數(shù)據(jù)。
通過(guò)Visual Studio 2005開(kāi)發(fā)環(huán)境的MFC智能設(shè)備應(yīng)用程序向?qū)?chuàng)建一個(gè)基于對(duì)話框的應(yīng)用程序;然后創(chuàng)建類(lèi)、設(shè)計(jì)采集界面以及編寫(xiě)程序,實(shí)現(xiàn)視頻采集與預(yù)覽、圖像保存等功能。所用到的主要函數(shù)如下:
GetFirstCameraDriver():獲取系統(tǒng)中注冊(cè)的第一個(gè)視頻捕捉設(shè)備名。
FreeDShow():釋放創(chuàng)建DirectShow接口對(duì)象。
PreviewCamera():用于預(yù)覽視頻,同時(shí)負(fù)責(zé)DirectShow接口的初始化工作。
SnapPicture():抓拍視頻中的一幅圖片,并以文件形式保存。
此外,把手指靜脈識(shí)別算法加入到應(yīng)用程序中,并移植到WinCE 6.0操作系統(tǒng)下。該軟件功能包括:錄入手指靜脈圖像并保存所有相關(guān)信息至數(shù)據(jù)庫(kù)中,測(cè)試當(dāng)前采集手指靜脈圖像與數(shù)據(jù)庫(kù)中圖像是否匹配;調(diào)取數(shù)據(jù)庫(kù)中手指靜脈圖像進(jìn)行算法研究。
當(dāng)需要用本系統(tǒng)進(jìn)行手指靜脈識(shí)別時(shí),先啟動(dòng)操作系統(tǒng),用戶從可視化界面輸入相應(yīng)信息,開(kāi)始采集圖像。
4 手指靜脈識(shí)別算法
手指靜脈識(shí)別算法是本系統(tǒng)軟件的核心部分,目前該算法在計(jì)算機(jī)上已達(dá)到較高水平。但將其移植到嵌入式系統(tǒng)時(shí),由于受嵌入式處理器硬件性能的限制,達(dá)不到預(yù)期的效果。因此,本文采用了一種適合于嵌入式系統(tǒng)的手指靜脈識(shí)別算法。
4.1 圖像預(yù)處理
(1)格式轉(zhuǎn)換與灰度歸一化。本文中通過(guò)圖像采集裝置采集的手指靜脈圖像是24 bit JPG格式的真彩圖像,采用Imaging技術(shù)[3]循環(huán)解碼將其轉(zhuǎn)化為24 bit BMP格式的圖像。
通過(guò)改變各個(gè)分量(R,G,B)的權(quán)重,把三個(gè)點(diǎn)合成一個(gè)點(diǎn)就可以將24 bit BMP圖像轉(zhuǎn)換成256色的灰度圖像。本設(shè)計(jì)采用加權(quán)平均值法可以得到較合理的灰度圖像,即:
(4)濾波與去噪。在經(jīng)過(guò)前面圖像分割后的特征圖像中存在許多孤立點(diǎn)、塊狀噪聲以及一些細(xì)小空洞。為了便于以后處理,必須填充這些細(xì)小空洞和除去噪聲。首先采用中值濾波法,消除圖像中的高斯噪聲和脈沖干擾信號(hào),接著進(jìn)行面積去噪,以消去孤立的噪聲。
(5)紋路細(xì)化。經(jīng)過(guò)一系列處理后的圖像靜脈紋路很粗,所以采用改進(jìn)的條件細(xì)化算法進(jìn)行處理,即在條件細(xì)化后的靜脈圖像上,加入模板算法去掉分叉點(diǎn)處冗余的像素。目的是通過(guò)連續(xù)剝離圖像最外層元素直到獲得單像素的連通線,去掉冗余信息,且保留紋路的拓?fù)?/strong>連接關(guān)系,以利于后續(xù)的特征提取。
其中,Np為點(diǎn)集P中元素的個(gè)數(shù)。
5 實(shí)驗(yàn)結(jié)果
把在PC機(jī)開(kāi)發(fā)的應(yīng)用軟件移植到ARM11板,上電開(kāi)啟操作系統(tǒng)運(yùn)行該軟件,開(kāi)始采集和測(cè)試手指靜脈圖像的效果圖如圖7所示。
本軟件把圖像采集、預(yù)處理等一系列過(guò)程合成到一起進(jìn)行操作,實(shí)現(xiàn)一鍵完成,使其更加接近產(chǎn)品化。錄入用戶圖像信息時(shí),圖像處理達(dá)到了每次約0.5 s的速度,令人滿意。實(shí)驗(yàn)測(cè)試中,采集50個(gè)手指的靜脈圖像,每個(gè)手指采集4次,一共采集了200幅靜脈圖像,構(gòu)成手指靜脈數(shù)據(jù)庫(kù)。根據(jù)本文的方法,來(lái)驗(yàn)證算法的匹配識(shí)別效果。測(cè)試1:1匹配識(shí)別,將每個(gè)手指的1個(gè)樣本分別與其他3個(gè)樣本進(jìn)行比對(duì)完成識(shí)別,每次識(shí)別過(guò)程達(dá)到約0.4 s的速度,得到的結(jié)果如表1所示,達(dá)到了預(yù)期的效果。
本文構(gòu)建了一種基于ARM技術(shù)的嵌入式手指靜脈識(shí)別系統(tǒng)。設(shè)計(jì)的硬件平臺(tái)穩(wěn)定性好、集成度高;采用的WinCE 6.0界面友好、畫(huà)面清晰;開(kāi)發(fā)的識(shí)別應(yīng)用軟件可以開(kāi)機(jī)啟動(dòng),便于操作,使本識(shí)別系統(tǒng)具有很好的人機(jī)交互特性。同時(shí)針對(duì)嵌入式系統(tǒng)采用一套合適的手指靜脈識(shí)別算法。實(shí)驗(yàn)表明,該手指靜脈識(shí)別系統(tǒng)可以實(shí)現(xiàn)快速圖像處理和識(shí)別,與基于PC機(jī)的識(shí)別系統(tǒng)相比,具有體積小、重量輕、易于移動(dòng)與操作、易于集成等優(yōu)點(diǎn)。
評(píng)論