基于自動調光功能的手指靜脈圖像采集系統
作為第二代生物認證技術,手指靜脈識別技術是通過人體手指中靜脈特征對人體身份進行鑒別的技術,具有很高的防偽性[1]。手指靜脈識別的原理是:當近紅外光線透過人體組織時,靜脈血管中的血紅蛋白對近紅外光線有非常明顯的吸收效果,從而使靜脈血管以不同的灰度值表征在圖像中。由于靜脈血管分布的隨機性,即使是雙胞胎的手指靜脈分布特征也不相同,因此可以將手指靜脈識別技術作為身份認證技術。與指紋識別技術相比,手指靜脈識別技術具有不受手指外界環境影響和安全性更高的優點。
日立公司已率先研制出用于身份驗證的手指靜脈識別系列產品。國內一些科研團隊也已經先后設計出手指靜脈采集的實驗裝置[2-3]。然而從這些文獻中發現了一些不足: (1)成像設備直接采用成品的網路攝像頭或高清CCD攝像機,不能由上位機采集軟件直接且有效地控制成像效果和下位機硬件電路工作狀態。(2)由于不同手指厚度不一致,當紅外光以固定光強照射手指時,會形成一組亮度不均衡、甚至丟失靜脈紋路的圖像,為身份識別造成不必要的麻煩。為此,本文設計了一種成本較低、帶有自動調光模塊、基于USB2.0芯片與CMOS圖像傳感器的手指靜脈圖像采集系統。
1 采集系統硬件設計
為降低成本,沒有采用FPGA或CPLD等可編程器件,但設計出結構更加簡潔的圖像采集硬件電路,主要部分由CMOS圖像傳感器模塊、USB2.0控制器模塊、自動調光模塊、E2PROM和電源模塊組成,如圖1所示。
CMOS圖像傳感器與CCD圖像傳感器相比,具有成本低、功耗低、集成度高等優點。本設計選用擁有130 萬像素的圖像傳感芯片OV9620。OV9620能自動提供幀同步信號VSYNC、行同步信號HREF和像素時鐘PCLK[4]。為保證圖像采集與上位機圖像處理的實時性,設計中采用VGA 640×480模式,可以保證每秒30幀的動態圖像。實際設計電路如圖2所示。
EZ-USB FX2芯片CY7C68013是USB2.0控制器,擁有增強型8051內核,集成了智能串行接口引擎(SIE)、片上RAM、4 KB FIFO存儲器,可獨立于MCU,由硬件自動完成480 Mb/s高速數據傳輸功能[5]。既可以采用I2C總線把固件程序從E2PROM中下載到自身的RAM中執行,又可以讀寫OV9620寄存器,實現攝像頭的自動曝光、增益控制及白平衡控制等功能。
設計中,采用波長為850 nm的近紅外光源從手背一側照射手指,靜脈血液中的血紅蛋白因吸收紅外線而導致靜脈部分的紅外光透射較少,最終在手指另一側的CMOS圖像傳感器上產生手指靜脈紋路圖案。當紅外陣列光源的發光強度一定時,由于不同人、甚至每個人的不同手指的粗細都不一致,會導致透射紅外光的強弱不同。例如,針對較粗手指形成較好的靜脈圖像(如圖3(a))的光源,對較細手指卻產生透射光過強的成像效果(如圖3(b))。
針對這種情況,設計出如圖4所示的紅外發射光強自動調節電路模塊,這是負反饋閉環控制系統。其實現過程為:先通過觀察上位機圖像處理軟件實時接收到的圖像,調節用于初始化設定的電位器旋鈕,直到確認手指靜脈圖像達到最好效果時停止,系統將該電位器輸出電壓值作為標準值(Uin)。當不同的手指進行采集時,紅外光接收電路將采集到的電流轉換為電壓值作為反饋值(U1),將反饋值與標準值比較,得到偏差電壓值(Ue),通過積分調節器輸出電壓(Uout)控制紅外光源,若偏差值小于0(反饋值大于標準值),則自動調高輸出電壓Uout直至透射光強達到穩態;若偏差值大于0,則自動調低輸出電壓Uout直至透射光強達到穩態。使紅外發射光強隨手指的厚度動態變化,讓透射光始終保持在一個相對穩定的光強值,以保證成像效果均衡。
紅外光強自動調節電路工作原理:紅外接收傳感器Q0的電流隨接收的透射光強變化而變化,并作為三極管Q1基極電流,進而引起流經電阻R13的電流變化,因此UR13電壓隨接收光強電流變化而變化。
這樣紅外發射光強的電流就會隨著接收光強而變化。通過多次實驗,此光強自動調節電路能很好地對透過手指的紅外光強度進行調節,并可獲得清晰、質量穩定的手指靜脈紋路圖像(如圖8所示)。
2 采集系統軟件設計
采集系統的軟件設計主要分為USB固件程序、USB驅動程序和上位機圖像處理軟件。
(1)固件程序采用標準的EZ-USB程序框架。根據需求,本系統固件的基本功能如下:
①通過IFCONFIG=0x43設置Slave FIFO模式,同步方式下SLWR作為IFCLK時鐘引腳的使能信號,以保證行同步信號HREF有效時,才能接收圖像的像素數據。
②配合硬件電路,通過設置EP2CFG=0xE0設置 EP2端口為BULK傳輸模式的IN端點,四重緩沖,每包字節數為1 024。并通過EP2FIFOCFG=0x08設置端口2為8位數據總線模式。
③在圖像幀接收中斷INT0處理函數中,為每一幀圖像前加上特定的幀頭[4],以便上位機應用程序可以準確和完整地分離出每一幀圖像數據。在手指觸發按鍵中斷INT1處理函數中,設定手指觸發的標識位,以便上位機程序在發送Vendor指令時,通過讀取該標識位來決定是否自動保存采集的手指靜脈圖片。
(2)USB驅動程序直接利用EZ-USB開發包自帶的驅動程序ezusbsys.c。為滿足圖像數據的實時接收需求,減少在應用程序中重復調用數據讀取函數的時間開銷,需要修改驅動程序的讀取緩存設定值。本文設計如下:
#define TRANSSIZE 2048
…
for(j=0;jinterfaceList[0].InterfaceDescriptor-> bNumEndpoints; j++)
interfaceObject->Pipes[j].MaximumTransferSize= (TRANSSIZE * 1024) - 1;
修改完USB驅動程序文件后,需要使用類似Windows XP DDK的軟件重新編譯ezusb.sys文件,執行命令build-c -z即可生成測試版本或發布版本。
另外將驅動程序的配置文件中生產商/銷售商(PID/VID)代碼和設備名更改為用戶的設定。
(3)上位機圖像處理軟件接收到的圖像數據是Bayer格式,如圖5所示。要將Bayer格式數據顯示為24位RGB彩色圖像,顏色插值算法是關鍵技術。考慮到圖像采集的實時性和靜脈紋路特點,選擇最鄰近法、雙線性算法、邊緣導向法和適應性顏色層法[6]等四種插值算法進行對比研究。
從圖6中可以看出,最鄰近法因運算簡單,只復制了鄰近的相關顏色,所以導致邊緣馬賽克現象非常明顯。雙線性法明顯優于最鄰近法,采用了對相鄰像素取平均的方法,但沒有利用不同彩色分量之間的關系,所以導致圖像的邊緣引進大量的錯誤數據造成圖像邊緣模糊現象。邊緣導向法僅是對人眼較敏感的G分量進行了沿邊緣的插值方法,效果優于最鄰近法,但邊緣模糊現象也比較嚴重。而適應性顏色層法對R、G、B等三種顏色分量都進行了沿邊緣的插值方法,恢復的圖像效果最好,銳化了圖像邊緣,提高了視覺質量。因此本系統采用適應性顏色層法采集手指靜脈的紋路圖像。
3 實驗結果
本文設計的手指靜脈采集系統的上位機圖像處理軟件如圖7所示。在自動調光功能條件下,采集的手指靜脈圖像如圖8所示。
本文介紹了帶有自動調光模塊,并基于EZ-USB FX2和CMOS圖像傳感器的手指靜脈系統,不僅能夠實現針對不同厚度手指,動態調整紅外發射光強度,以保證手指靜脈圖像質量穩定,避免了曝光過強或過弱現象,而且通過采用適應性顏色層插值算法還原圖像數據,保證了手指靜脈圖像紋路清晰,而且在VGA(分辨率640×480)模式下能夠以30幀/s的視頻形式顯示。
評論