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