楊 迪 ,朱 明 ,呂柯巖
(1.中國科學(xué)院航空光學(xué)成像與測量重點實驗室,中國科學(xué)院長春光學(xué)精密機(jī)械與物理研究所,長春 130033;2.中國科學(xué)院研究生院,北京 100039;3.中國科學(xué)院長春光學(xué)精密機(jī)械與物理研究所,長春 130033)
在如今互聯(lián)網(wǎng)飛速發(fā)展的時代中,人們的交流和信息獲取主要通過網(wǎng)絡(luò)實現(xiàn)。在網(wǎng)絡(luò)中進(jìn)行各種操作的前提就是要先進(jìn)行用戶的認(rèn)證。目前網(wǎng)絡(luò)中常用的認(rèn)證方式是“用戶ID+密碼的方式”,然而這種方式存在著不小的安全隱患。網(wǎng)絡(luò)中木馬,病毒橫行,一不小心就會將個人信息泄露出去,輕則被各種垃圾信息騷擾,重則造成財產(chǎn)損失。為提高安全級別,應(yīng)采用體現(xiàn)用戶唯一性特征的認(rèn)證方式。而指紋作為人體的身體特征,具有不可復(fù)制的特點,并且具有唯一性和穩(wěn)定性,不易盜用。采用指紋作為身份驗證的方式不僅降低了用戶信息泄露的風(fēng)險,同時也為用戶省卻記住密碼的麻煩,因此指紋識別擁有很好的實用性。
實現(xiàn)通過指紋進(jìn)行身份認(rèn)證的方式利用自動指紋識別系統(tǒng)[1-2](AFIS)來完成,而指紋采集與預(yù)處理作為指紋識別最重要的環(huán)節(jié)是必不可少的。為能夠?qū)崿F(xiàn)指紋識別的普遍與通用性,我們因此設(shè)計了一款通過USB 進(jìn)行通信的指紋采集系統(tǒng),該系統(tǒng)具有小巧,便攜的特點,即插即用。
達(dá)芬奇技術(shù)[3]是一種基于DSP 的系統(tǒng)解決方案組建的集合,包括基于達(dá)芬奇技術(shù)的處理器、優(yōu)化的應(yīng)用軟件、開發(fā)工具和支持。本系統(tǒng)在具有小巧,便攜特點的同時,為保證圖像處理的高效性,選擇TI 公司具有達(dá)芬奇架構(gòu)的DM6446 處理器對采集的圖像進(jìn)行處理,使用開發(fā)工具實現(xiàn)自己的指紋處理算法。
指紋芯片的好壞直接影響到指紋圖像的質(zhì)量。芯片按照工作原理可分為:光電式、電容式、壓敏式和超聲波式。不同原理的傳感器各有其優(yōu)缺,表1中對各種傳感器的性能進(jìn)行了比較[4]。隨著半導(dǎo)體技術(shù)的進(jìn)步,90年代中期開始出現(xiàn)的半導(dǎo)體電容式傳感器具有價格低,體積小的特點,而采集的圖像質(zhì)量也越來越好,得到了廣泛的應(yīng)用。
表1 傳感器性能比較
考慮到指紋采集芯片的性價比,我們選擇了Verdicom 公司生產(chǎn)的電容式指紋采集芯片F(xiàn)PS200[5],它具有高性能、低電壓、低功耗等優(yōu)點,采用標(biāo)準(zhǔn)CMOS 工藝制作,在1.28 cm×1.50 cm 的指紋檢測區(qū)域,像素矩陣為256×300,產(chǎn)生的圖像分辨率為500 dpi,分辨精度為50μm。該芯片所需的供電電壓為3.3 V~5 V,芯片內(nèi)置8-bit 的數(shù)模轉(zhuǎn)換器并根據(jù)所提供的接口分為3種工作模式,MCU、SPI和USB模式,其中USB模式根據(jù)其功能又分為內(nèi)部ROM和外部ROM兩種。芯片的模式選擇由引腳MODE0和MODE1 的電壓決定,在同一時間芯片只能選擇一種工作模式,模式與MODE[1:0]的關(guān)系如表2所示。
表2 FPS200 接口工作模式
由于USB 總線只是設(shè)備和主控制器之間的通信通道,對它所發(fā)送的數(shù)據(jù)沒有任何特殊的內(nèi)容和結(jié)構(gòu)上的要求,同時具有熱插拔(Hotplug)的能力,使得USB 有很好的便攜性并且成本低廉,同時只要具備驅(qū)動和上層應(yīng)用程序,即可在各種操作系統(tǒng)中實現(xiàn)采集功能,移植方便。而FPS200 內(nèi)部ROM模式能夠很好地實現(xiàn)采集要求,且設(shè)計簡單,故本文選擇USB 的內(nèi)部ROM模式[6-8]。
達(dá)芬奇技術(shù)包含完整的開發(fā)系統(tǒng)、參考設(shè)計和全面的ARM/DSP 系統(tǒng)級集成開發(fā)環(huán)境以加速所有數(shù)字圖像和視頻應(yīng)用的設(shè)計和開發(fā),并且達(dá)芬奇技術(shù)支持實時操作系統(tǒng)Linux 與Window CE,可移植性較好,同時用戶可以通過文件系統(tǒng)接口訪問CF-、SD/MMC、ATA 等存儲器,保存采集的數(shù)據(jù)。因此文中選取支持達(dá)芬奇技術(shù)的TMS320DM6446[9]作為圖像處理器以保證處理的實時性。該處理器是基于ARM+DSP 的系統(tǒng)級芯片(SoC),其中ARM 處理器采用ARM926EJ-S,工作主頻為297 MHZ,DSP 處理器采用TI 的高端DSP 核C64x+,工作主頻為594 MHz,并集成了用于加速處理的協(xié)處理器引擎。其中ARM 負(fù)責(zé)Linux 下的用戶界面,OSD 屏幕菜單顯示和設(shè)備驅(qū)動,DPS 負(fù)責(zé)圖像的處理。圖1 是本文所設(shè)計的指紋采集系統(tǒng)的結(jié)構(gòu)框圖。
圖1 指紋采集系統(tǒng)結(jié)構(gòu)框圖
FPS200 指紋采集芯片將采集到的模擬指紋圖像進(jìn)行A/D 轉(zhuǎn)換,得到數(shù)字圖像后通過USB 接口傳送給TMS320DM6446 處理器,一方面將采集的圖像通過顯示器進(jìn)行顯示,另一方面對圖像進(jìn)行去噪增強(qiáng),并存儲到SD 卡中,便于指紋庫的建立。
采集系統(tǒng)的指紋圖像數(shù)據(jù)輸入是通過USB 接口完成的。在FPS200 芯片工作在USB 內(nèi)部ROM模式時,DP 引腳用做USB 接口的D+數(shù)據(jù)線,DM 引腳用做D-數(shù)據(jù)線。USB 接口的供電電壓為標(biāo)準(zhǔn)的5 V 電壓,而FPS200 芯片的工作電壓為3.3 V~3.6 V,因此選用AMS1117 將5 V 電壓降為3.3 V再接入電路中。ISET 引腳與模擬地之間連接一個200 kΩ 電阻設(shè)置內(nèi)部參考電流,F(xiàn)SET 引腳與數(shù)字地之間接56 kΩ,用于設(shè)置多諧振蕩器和自動指紋檢測的頻率。采集電路僅用到兩根數(shù)據(jù)線與少量電源線,設(shè)計簡單、體積小,極具靈活性,方便攜帶。
TMSDM6446 處理器通過與USB Host 相連的引腳向FPS200 寫寄存器信息,接收指紋芯片發(fā)來的中斷與指紋圖像數(shù)據(jù)。
TMS320DM6446 的MMC/SD 卡控制器提供了一個外部MMC/SD 卡接口,用于實現(xiàn)MMC/SD 卡控制器和MMC/SD 卡協(xié)議。指紋圖像經(jīng)處理后通過此接口保存在SD 卡中。使得采集的指紋數(shù)據(jù)可以構(gòu)建一個移動的指紋庫。其中MMC/SD 控制器的配置圖[10]如圖4所示。
圖2 FPS200 硬件電路圖
其中CMD 管腳用于所連接的卡與控制器之間的雙向通訊;DAT0-3為數(shù)據(jù)傳輸時SD 卡使用的數(shù)據(jù)線,SD 卡可以使用1 根或4 根數(shù)據(jù)線;CLK 用于控制器向存儲卡提供時鐘。
圖3 DM6446 與USB host 連接圖
圖4 MMC/SD 配置圖(4-bit模式)
當(dāng)指紋圖像采集模塊與USB 接口相連時,可以采集指紋圖像到TMS320DM6446 中進(jìn)行處理。為實現(xiàn)指紋圖像的處理,軟件部分我們需要完成兩方面的內(nèi)容:①FPS200 芯片的USB 驅(qū)動開發(fā);②指紋采集處理程序的開發(fā)。
達(dá)芬奇技術(shù)體系中引入了Codec Engine[3],并創(chuàng)建了一整套的應(yīng)用開發(fā)平臺。Codec Engine 是一系列用于表示和運(yùn)行數(shù)字多媒體標(biāo)準(zhǔn)化DSP 算法接口(XDAIS)及算法的API,它定義了4 類編解碼器算法接口標(biāo)準(zhǔn),分別是視頻、圖像、語音、音頻,簡稱VISA。Codec Engine 的特點是:①容易使用,應(yīng)用程序的開發(fā)者制定所要使用的算法,而不是如何運(yùn)行或在什么地方運(yùn)行;②可擴(kuò)展可配置,新的算法可以由任何人使用標(biāo)準(zhǔn)的工具和技術(shù)來添加;③可以轉(zhuǎn)移,API 獨立于目標(biāo)、平臺、甚至是Codec。使用Codec Engine 完成軟件開發(fā),采用標(biāo)準(zhǔn)的API 接口,使軟件更易讀,更易更新和添加新功能。同時,Codec Engine 會協(xié)調(diào)ARM 與DSP 的使用,使處理性能得到最優(yōu)化。本文在Codec Engine 的基礎(chǔ)上實現(xiàn)指紋采集的軟件功能,結(jié)構(gòu)如圖5所示。其中ARM 端完成FPS200 芯片的驅(qū)動程序,并通過USB 接口與芯片進(jìn)行通信。同時,ARM 通過TI 的Codec Engine 機(jī)制調(diào)用DSP 側(cè)的Codec,在DSP 端對采集的指紋圖像進(jìn)行處理。
圖5 軟件工作結(jié)構(gòu)圖
TMS320DM6446 提供Linux 操作系統(tǒng),因此USB 驅(qū)動的設(shè)計是基于Linux 操作系統(tǒng)完成的。FPS200 的USB 驅(qū)動程序的工作[11-14]主要分為4 部分:識別驅(qū)動程序支持的設(shè)備,注冊和注銷驅(qū)動程序,探測和斷開,傳輸數(shù)據(jù)。
系統(tǒng)根據(jù)設(shè)備的廠商和ID 調(diào)用相應(yīng)的探測函數(shù),在驅(qū)動程序中需要將FPS200 芯片的VENDOR_ID和PRODUCT_ID 以模塊形式加入系統(tǒng)的設(shè)備表中以便查找:
USB 驅(qū)動程序首先要向Linux 內(nèi)核注冊自己,并告訴系統(tǒng)它所支持的設(shè)備類型以及它所支持的操作。這些信息通過一個usb_driver 結(jié)構(gòu)來傳遞。當(dāng)系統(tǒng)找到設(shè)備后,會調(diào)用FPS200 指紋芯片的probe函數(shù),為其數(shù)據(jù)輸入端點和中斷端點分配地址,并通過struct_class_driver 從USB 核心得到次設(shè)備號并將設(shè)備注冊到devfs和驅(qū)動程序核心中,系統(tǒng)在/dev下創(chuàng)建名為fps200usb 的設(shè)備文件。驅(qū)動程序與上層應(yīng)用程序通過file_operations 結(jié)構(gòu)相連。
應(yīng)用程序以文件的方式調(diào)用open 函數(shù)打開設(shè)備,read 函數(shù)從FPS200 芯片采集指紋圖像數(shù)據(jù)傳輸?shù)教幚砥髦?。?dāng)完成采集模塊的使用與系統(tǒng)斷開時調(diào)用disconnect 函數(shù)完成設(shè)備的斷開,注銷USB 設(shè)備。
系統(tǒng)在指紋采集處理程序中主要完成指紋采集芯片F(xiàn)PS200 的打開和數(shù)據(jù)讀取與存儲。
在指紋采集處理程序中我們的設(shè)計需要符合xDM(xDAIS(eXpress DSP Algorithm Interface Standard)for Digital Media)標(biāo)準(zhǔn)。算法執(zhí)行的流程如圖6所示。
圖6 指紋采集處理算法
代碼示意如下:
FPS200 指紋芯片所采集指紋圖像的質(zhì)量與DTR,DCR,PGC 寄存器有關(guān)[5]。DTR 作為電容放電時間控制寄存器,對圖片背景有很大的影響,過小則會使得背景區(qū)域過暗;DCR 作為控制電容放電電流寄存器,對圖片背景區(qū)和前景區(qū)有很大影響;PGC是可編程增益寄存器,對圖片的前景有很大影響。另外THR 門限值寄存器收到溫度、濕度的影響,若設(shè)置不當(dāng),當(dāng)沒有手指按下是也會產(chǎn)生中斷。經(jīng)實驗證明,當(dāng)DTR=0x40,DCR=0x01,PGC=0x0b,THR=0x2a 時圖像質(zhì)量較好。
由FPS200 芯片采集得到的指紋圖像因手指的干濕程序,按下的輕重,使得圖像存在斷裂和粘連的問題。傳統(tǒng)的濾波算法如中值濾波[15-16]可以較好地去除噪聲影響,但是卻會使邊緣模糊。指紋圖像具有明顯的紋理特征,邊緣模糊直接影響到指紋識別中特征點的獲得,本文采用偏微分進(jìn)行圖像的去噪增強(qiáng)[17-18]。利用偏微分方程進(jìn)行圖像處理有以下優(yōu)點:
①具有堅實的數(shù)學(xué)理論基礎(chǔ),如偏微分方程的數(shù)值解法等
②能夠很好地結(jié)合尺度分析的理論,利用偏微分方程進(jìn)行圖像處理一般滿足歐式變換不變性等;
③可以很容易的將各種圖像特征引入到模型中去,如方向信息。
利用散度形式的相關(guān)擴(kuò)散方程增強(qiáng)指紋圖像最早由德國科學(xué)家Joachim Weickert 提出,主要思想是將擴(kuò)散限制在沿紋路變化的方向上進(jìn)行,可表示成如下方程:
式中:u為圖像,div為散度算子,D為2×2 的正定二維舉證,稱為擴(kuò)散向量,它反映了圖像局部的方向信息??梢员硎緸?
根據(jù)上述方法對采集的指紋圖像進(jìn)行處理(圖7)。
圖7 指紋圖像處理對比
以上3 圖均由FPS200 芯片采集得到,因手指按壓的力度不同,手指表面的清潔度不同而有所區(qū)別。在圖像采集的過程中,并未出現(xiàn)指紋圖像中存在明顯信息丟失等問題,說明系統(tǒng)工作穩(wěn)定。
從指紋芯片F(xiàn)PS200 采集得到的圖像存在斷裂和對比度低的問題,利用中值濾波的方法可以在一定程度上修補(bǔ)斷裂,但同時造成了邊緣模糊,而使用偏微分的方法可以較好地修補(bǔ)圖像中的斷裂,同時保證指紋邊緣的清晰度,而且圖像更加平滑,可以更好地為指紋識別提供方便。
作為一套指紋采集系統(tǒng),實時性尤為重要,需要保證采集與處理同步進(jìn)行,而不會因處理速度過慢增加采集的時間間隔。FPS00 指紋芯片在USB模式下的傳輸速度為13 幀/s,平均采集一幅圖像的時間小于0.3 s,可以保證傳輸速度的高效性。在圖像處理方面DM6446 中DSP 算法的執(zhí)行時間是7 000 次/s,即應(yīng)用程序可以使用Codec Engine 來運(yùn)行或控制算法7 000 次/s。在實際的圖像處理過程中,本文算法處理256×300 的指紋圖像時,運(yùn)行時間在0.7 s 左右,采集和處理的總體時間少于1 s,足以保證系統(tǒng)工作的實時性。
文中所設(shè)計的指紋采集系統(tǒng)首次在采用達(dá)芬奇技術(shù)的硬件平臺上實現(xiàn),同時完成了Linux 下的設(shè)備驅(qū)動程序開發(fā)。TMS320DM6446 處理器由ARM+DSP雙核架構(gòu)組成并配備協(xié)處理器,在圖像處理方面性能強(qiáng)勁。本文所設(shè)計的系統(tǒng)具有很快的采集處理速度,同時采集和存儲分別選擇USB 方式和SD 卡,具有很好的便攜性。達(dá)芬奇技術(shù)的Codec Engine 提供了一個算法規(guī)范化的標(biāo)準(zhǔn),使得程序的閱讀、后續(xù)人員對程序的完善改進(jìn)變得更加方便。目前本系統(tǒng)只是完成了采集系統(tǒng)的開發(fā),在后續(xù)的工作中,系統(tǒng)可以繼續(xù)在程序中添加指紋圖像的識別功能。
[1]黃鴻,李見為,王瑋.基于FPS200 自動指紋識別系統(tǒng)[J].SensorWorld,2005:33-36.
[2]田捷,楊鑫.生物特征識別技術(shù)理論與應(yīng)用[M].北京:電子工業(yè)出版社,2005:2-3.
[3]彭啟琮.達(dá)芬奇技術(shù)[M].北京:電子工業(yè)出版社,2008:5-7.
[4]陳娟利.嵌入式指紋采集系統(tǒng)的設(shè)計及其預(yù)處理算法研究[D].西安:西安理工大學(xué),2008:7-11.
[5]Veridicom.FPS200 Solid-State Fingerprint Sensor[DB/OL].http://www.verdicom.com,2000-5-27.
[6]耿國慶.基于USB 接口的指紋圖像采集與處理的研究[D].北京:首都師范大學(xué),2004:20-23.
[7]項希.基于ARM 的指紋采集系統(tǒng)研究[D].武漢:武漢理工大學(xué),2007:14-16.
[8]彭壽星.基于USB 接口的指紋采集與識別系統(tǒng)的設(shè)計[D].南京:南京理工大學(xué),2006:10-15.
[9]合眾達(dá)電子.SEED-DVS6446 實驗手冊[DB/OL].http://www.seeddsp.com.2008.
[10]合眾達(dá)電子.SEED-DVS6446 用戶指南[DB/OL].http://www.seeddsp.com.2008.
[11]Jonathan C,Alessandro R,Greg Kroah H.LINUX 設(shè)備驅(qū)動程序[M].北京:中國電力出版社,2006:324-342.
[12]張平,何向陽.基于嵌入式指紋采集器USB 驅(qū)動程序研究[J].通信技術(shù),2009,42(5):210-212.
[13]金鑫,孫松林,景曉軍.Linux 下有中斷端點的USB 設(shè)備驅(qū)動的實現(xiàn)[J].計算機(jī)工程與設(shè)計,2010,31(7):1576-1579.
[14]Sreekrishnan Venkateswaran.精 通Linux 設(shè) 備 驅(qū) 動 程 序 開 發(fā)[M].人民郵電出版社,2010:225-233.
[15]肖蕾,何坤,周激流,等.改進(jìn)自適應(yīng)中值濾波的圖像去噪[J].激光雜志,2009,30(2):44-46.
[16]隋雪莉,梅園.基于中值濾波的指紋增強(qiáng)算法[J].現(xiàn)代電子技術(shù),2009,32(10):107-109,115.
[17]蘇永利,張博,張書玲.基于各向同性逆擴(kuò)散方程的指紋圖像增強(qiáng)方法[J].西北大學(xué)學(xué)報(自然科學(xué)版),2009,39(1):9-12.
[18]徐葉雷,黃青華,方勇.一種基于偏微分方程的車輛加速度信號自適應(yīng)降噪方法[J].傳感技術(shù)學(xué)報,2009,22(11):1606-1611.