基于TMS320DM6437的虹膜采集和識(shí)別系統(tǒng)設(shè)計(jì)
摘要:虹膜識(shí)別技術(shù)被認(rèn)為是最有前途的生物認(rèn)證技術(shù)之一,并且已經(jīng)廣泛應(yīng)用于金融、電子商務(wù)、國(guó)防等領(lǐng)域。本課題基于TI公司的TMS320仁)M64.37設(shè)計(jì)了一款實(shí)時(shí)的虹膜采集和識(shí)別平臺(tái),介紹了系統(tǒng)的框架,并分析了相關(guān)的軟件設(shè)計(jì),如Codec Engine軟件框架和網(wǎng)絡(luò)傳輸。該平臺(tái)也可以應(yīng)用于不同的圖像識(shí)別領(lǐng)域。
本文引用地址:http://www.ex-cimer.com/article/201610/309279.htm引言
虹膜識(shí)別技術(shù)被認(rèn)為是最有前途的生物認(rèn)證技術(shù)之一,依靠虹膜進(jìn)行身份識(shí)別具有以下明顯的優(yōu)勢(shì):
①唯一性。虹膜具有豐富的紋理信息,不同人的虹膜的細(xì)節(jié)特征是絕不相同的,這是利用虹膜識(shí)別的最根本前提條件。
②穩(wěn)定性。虹膜受到眼皮、角膜等其他人體器官的保護(hù),不易受到外界物質(zhì)的傷害,虹膜本身也沒(méi)有生理上的病變因素。因此相比指紋、掌紋等其他部位具有更高的穩(wěn)定性。
③天然防偽性。虹膜包圍的瞳孔會(huì)因?yàn)榧±w維不停地震顫而規(guī)律性地變化,瞳孔還會(huì)因?yàn)楣饩€強(qiáng)弱而收縮或擴(kuò)張,通過(guò)對(duì)虹膜的內(nèi)邊緣進(jìn)行定位,也就是對(duì)瞳孔大小的實(shí)時(shí)監(jiān)測(cè),就可以輕易分辨虹膜的生物學(xué)真?zhèn)巍?/p>
④無(wú)侵犯性。虹膜識(shí)別過(guò)程中不需要用戶進(jìn)行任何物理形式的接觸,因此更容易被接受。所以,虹膜識(shí)別是目前身份認(rèn)證中最有發(fā)展前途的認(rèn)證技術(shù),有著廣泛的市場(chǎng)前景和科學(xué)研究?jī)r(jià)值。
隨著計(jì)算機(jī)和信息技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理(Digital Signal Processing)技術(shù)應(yīng)運(yùn)而生并得到迅速的發(fā)展。它是一種通過(guò)使用數(shù)學(xué)技巧執(zhí)行轉(zhuǎn)換或提取信息,來(lái)處理現(xiàn)實(shí)信號(hào)的方法,這些信號(hào)由數(shù)字序列表示。其工作原理是接收模擬信號(hào),轉(zhuǎn)換為0或1的數(shù)字信號(hào),再對(duì)數(shù)字信號(hào)進(jìn)行修改、刪除、強(qiáng)化,并在其他系統(tǒng)芯片中把數(shù)字、數(shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。在過(guò)去的二十多年時(shí)間里,數(shù)字信號(hào)處理已經(jīng)在各個(gè)領(lǐng)域得到極為廣泛的應(yīng)用。TI、Freescale等半導(dǎo)體廠商開(kāi)發(fā)的一系列DSP芯片可以很好地對(duì)采集、提取、歸一化后的虹膜信息進(jìn)行處理和識(shí)別。國(guó)外相當(dāng)數(shù)量的公司正在試圖采用虹膜識(shí)別取代人們手中的各種身份驗(yàn)證卡和密碼,并且很多機(jī)場(chǎng)、銀行的電子設(shè)備上進(jìn)行了實(shí)際應(yīng)用。
在國(guó)內(nèi),主要偏重于虹膜識(shí)別的理論研究。目前主要有以下兩種:
①采用Gabor濾波和小波變換提取特征,匹配采用方差加權(quán)歐式距離方法;
②用Hough變換找出虹膜中心和半徑,利用半徑求比例因子,用相關(guān)系數(shù)測(cè)度匹配結(jié)果的方法。
綜上所述,從世界范圍來(lái)看,國(guó)外的虹膜市場(chǎng)比國(guó)內(nèi)要成熟,并已經(jīng)在金融系統(tǒng)、飛機(jī)場(chǎng)等小范圍試運(yùn)行??梢灶A(yù)計(jì)未來(lái)幾年,我國(guó)將大規(guī)模利用DSP深化虹膜識(shí)別技術(shù)應(yīng)用到某些領(lǐng)域。在硬件上,我國(guó)和發(fā)達(dá)國(guó)家的差距是比較大的。為此,本文提出了基于TMS320DM6437的虹膜識(shí)別系統(tǒng)設(shè)計(jì)。
1 系統(tǒng)整體簡(jiǎn)介
該系統(tǒng)通過(guò)CMOS攝像頭采集人眼虹膜圖像,對(duì)信息進(jìn)行解碼后交由TMS320DM6437進(jìn)行處理,然后圖像處理子系統(tǒng)調(diào)用算法處理,繼而把處理結(jié)果傳輸給PC。擬定系統(tǒng)主要由4個(gè)部分組成:虹膜圖像采集、虹膜圖像處理、存儲(chǔ)器,以及數(shù)據(jù)傳輸部分。CMOS圖像傳感器負(fù)責(zé)采集虹膜圖像,采集的數(shù)據(jù)由CPLD分配地址存儲(chǔ)在RAM中;當(dāng)一幀圖像采集完畢后,CPLD產(chǎn)生外部中斷信號(hào),將存儲(chǔ)在SRAM中的字節(jié)位圖拷貝至SDR AM等待DSP處理,采用閃存存儲(chǔ)程序代碼和虹膜特征庫(kù)。整個(gè)系統(tǒng)中,DSP要完成數(shù)字圖像處理工作以及控制其他外部設(shè)備。CPLD主要是來(lái)實(shí)現(xiàn)系統(tǒng)的控制邏輯。系統(tǒng)框架如圖1所示。
2 主要硬件簡(jiǎn)介
2.1 核心處理器
系統(tǒng)采用TMS320DM6437數(shù)字信號(hào)處理器作為核心處理器,它是TI公司推出的專門(mén)為高性能、低成本視頻應(yīng)用開(kāi)發(fā)的,主頻為600 MHz,基于32位定點(diǎn)DSP達(dá)芬奇技術(shù)的處理器。它采用2級(jí)Cache存儲(chǔ)器體系結(jié)構(gòu),片上具有64通道增強(qiáng)型DMA控制器EDMA,支持復(fù)雜的數(shù)據(jù)類型的傳輸,有利于圖像數(shù)據(jù)的高效傳輸和格式變換。它有8個(gè)并行處理單元,采用甚長(zhǎng)指令字(CLIW)結(jié)構(gòu)體系,有強(qiáng)大的處理能力。它還集成了一些外設(shè)接口,包括圖像處理子系統(tǒng)、以太網(wǎng)接口、I2C總線接口、DDR2接口和EMIF接口等.其中,VPSS上提供了一個(gè)輸入接口和一個(gè)輸出接口,輸入接口VPFE用來(lái)連接前端外部設(shè)備圖像傳感器,它由5部分組成,分別是CCDC、IPIPE、H3A、Resizer和Histogram。輸出接口VPBE可以連接顯示設(shè)備,如analogy SDTV顯示器、數(shù)字LCD面板等,它包含On-Screen Display模塊、帶數(shù)字LCD和模擬DAC接口的VENC(用以生成模擬式輸出)。DLCD控制器產(chǎn)生數(shù)字RGB/YCBCR,輸出時(shí)間信號(hào)和數(shù)據(jù)。
2.2 網(wǎng)絡(luò)模塊
根據(jù)7層OSI網(wǎng)絡(luò)模型的定義,網(wǎng)絡(luò)接口工作在其物理層和數(shù)據(jù)鏈路層。在TMS320DM6437芯片上帶有EMAC/MDIO接口,即提供數(shù)據(jù)鏈路層控制,所以選擇網(wǎng)卡芯片時(shí)只需要有物理層相關(guān)功能即可滿足需要。
2.3 存儲(chǔ)器模塊
系統(tǒng)存儲(chǔ)主要依靠DDR2存儲(chǔ)器,它擁有兩倍于DDR內(nèi)存的預(yù)讀取能力,也就是DDR2內(nèi)存每個(gè)時(shí)鐘能夠以4倍于外部總線的速度讀/寫(xiě)數(shù)據(jù),并且能以內(nèi)部控制總線4倍的速度運(yùn)行。采用了專用的DDR2存儲(chǔ)控制器接口拓展了64 MB的DDR2 SDRAM,為圖像處理應(yīng)用提供了高吞吐率、高容量存儲(chǔ)帶寬,而且可以繼續(xù)根據(jù)需要擴(kuò)展到256 MB。此外,還有256MB的Nor Flash為圖像處理應(yīng)用程序脫機(jī)使用提供了充足的容量保證。
2.4 硬件預(yù)設(shè)
在運(yùn)行整個(gè)視頻采集系統(tǒng)之前,需要對(duì)芯片的引腳進(jìn)行定義,根據(jù)需求來(lái)決定芯片各引腳的作用和輸出的信號(hào)類型。芯片引腳定義通過(guò)設(shè)置芯片內(nèi)部PINMUX1、PINMUX2寄存器來(lái)確定,所以首先需要運(yùn)行芯片初始化函數(shù)。然后進(jìn)行前端處理,用來(lái)配置CCDC為10位Raw Bayer模式接口,接收來(lái)自數(shù)字?jǐn)z像頭的裸數(shù)據(jù),同時(shí)定義了虹膜圖像的分辨率為720×576。接著設(shè)置CCDC的視頻輸出分辨率以及數(shù)據(jù)路徑流向預(yù)覽器。設(shè)置接口接收來(lái)自CC—DC的10位Raw Bayer模式圖像數(shù)據(jù),在緩沖器接口模塊中選擇圖像數(shù)據(jù)流為外部存儲(chǔ)器DDR2,指定圖像存儲(chǔ)地址和偏移地址。繼而通過(guò)I2C總線來(lái)配置CMOS攝像頭,需要對(duì)PLL設(shè)置寄存器進(jìn)行配置,設(shè)置好的時(shí)鐘信號(hào)則作為像素輸出時(shí)鐘使用。還需要設(shè)置圖像格式寄存器和一些控制寄存器,用于模擬信號(hào)和數(shù)字信號(hào)的增益、黑電平校正和數(shù)字偏移的更正。這些寄存器的設(shè)置可以使我們得到更理想的圖像。
最后進(jìn)行后端處理,用來(lái)配置視頻處理后端(VPBE)。VPBE中的圖像存儲(chǔ)器讀取地址就是VPFE中的圖像存儲(chǔ)地址。設(shè)置輸出信號(hào)為NTSC制的復(fù)合視頻信號(hào)(CVBS信號(hào))。在虹膜采集系統(tǒng)中對(duì)攝像頭的分辨率設(shè)置為720×576,觀察采集到的圖像,幀數(shù)穩(wěn)定、色彩均衡,能夠滿足要求。當(dāng)需要改變分辨率的時(shí)候,只需改變程序中相應(yīng)的寄存器設(shè)置,硬件無(wú)需變更,降低了開(kāi)發(fā)成本。
3 系統(tǒng)軟件設(shè)計(jì)
在本系統(tǒng)中,片上的軟件有:圖像采集驅(qū)動(dòng)程序、Codec Engine應(yīng)用軟件和網(wǎng)絡(luò)模塊(NDK)軟件程序。總體框架圖如圖2所示。
在DSP/BIOS實(shí)時(shí)操作系統(tǒng)下,先將系統(tǒng)上電執(zhí)行初始化,從程序入口點(diǎn)運(yùn)行到main函數(shù),然后對(duì)相關(guān)寄存器的復(fù)用引腳和外設(shè)接口等進(jìn)行配置。芯片工作后根據(jù)main函數(shù)的設(shè)置啟動(dòng)任務(wù)線程。main函數(shù)返回后,由DSP/BIOS對(duì)程序控制進(jìn)程進(jìn)行調(diào)度,包括內(nèi)存管理、中斷處理和任務(wù)管理等。本系統(tǒng)包括PreviewTask和TskNdkStackTest兩個(gè)靜態(tài)配置的任務(wù)線程,前者負(fù)責(zé)對(duì)圖像處理驅(qū)動(dòng)模塊和Codec Engine框架進(jìn)行初始化,實(shí)時(shí)獲取虹膜圖像、執(zhí)行處理算法以及輸出最終結(jié)果,是整個(gè)系統(tǒng)的主線程;后者負(fù)責(zé)網(wǎng)絡(luò)模塊的運(yùn)行。
3.1 圖像采集驅(qū)動(dòng)程序
驅(qū)動(dòng)程序是軟件和硬件之間的橋梁,是軟件設(shè)計(jì)中不可或缺的一部分。該驅(qū)動(dòng)程序主要是用于前端的圖像采集端,后端則將處理結(jié)果通過(guò)網(wǎng)絡(luò)傳輸至PC。TI公司開(kāi)發(fā)了專門(mén)的驅(qū)動(dòng)接口函數(shù),函數(shù)名均以“FVID”為默認(rèn)字頭,它由GIO的APIS按需再次封裝得到。所用到的主要函數(shù)如表1所列。
緊接上文步驟,DSP/BIOS啟動(dòng)圖像處理主線程,然后主線程使用FVID的API函數(shù)獲取傳感器發(fā)來(lái)的圖像。接著用FVID_crcat函數(shù)創(chuàng)建通道,返回句柄,將其作為函數(shù)FVID_control的參數(shù),根據(jù)不同的命令字符串對(duì)接口進(jìn)行配置。下一步使用FVID_alloc和FVID_queue兩個(gè)函數(shù)向驅(qū)動(dòng)申請(qǐng)3個(gè)數(shù)據(jù)幀,編入buffer隊(duì)列。然后用FVID_dequeue函數(shù)釋放隊(duì)列中的首個(gè)buffer,作為FVID_exchange函數(shù)的起始參數(shù)。之后進(jìn)入while循環(huán),利用FVID_exchange函數(shù)實(shí)現(xiàn)圖像數(shù)據(jù)的實(shí)時(shí)更新。
3.2 Codec Engine應(yīng)用軟件
Codec Engine軟件是TI公司專門(mén)為達(dá)芬奇系列DSP設(shè)計(jì)推出的一個(gè)標(biāo)準(zhǔn)軟件框架,能夠極大地簡(jiǎn)輕軟件人員的工作量。它是介于應(yīng)用層和信號(hào)處理層之間的軟件模塊,需要和以下軟件模塊、工具配合使用:
Framework ComponentS 1.20.02 xDAIS 5.21/XDC Tools 2.93.01/C6x Code Generation Tools version 6.0.8/DSP/BIOS 5.31.05/MontaVista Linux v4.0/Red Hat Enterprise Linux 3 (SMP)
使用Codec Engine軟件,首先需要使用初始化函數(shù)CERuntime_init(),然后采用Core Engine APIs創(chuàng)建Engine對(duì)象并調(diào)試。繼而通過(guò)VISA接口創(chuàng)建算法對(duì)象,并通過(guò)不同的數(shù)據(jù)模式和接口函數(shù)調(diào)用符合XDM標(biāo)準(zhǔn)的算法庫(kù)。該軟件的實(shí)現(xiàn)流程圖如圖3所示。
3.3 網(wǎng)絡(luò)模塊軟件程序
本系統(tǒng)采用C6000系列DSP的官方網(wǎng)絡(luò)開(kāi)發(fā)套件NDK。它基于TCP/IP協(xié)議,網(wǎng)絡(luò)接口較為豐富,使用靈活方便。各部分模塊名稱以及功能如表2所列。
NDK由5大模塊組成,其各種網(wǎng)絡(luò)功能的實(shí)現(xiàn)都利用了Socket接口。在本系統(tǒng)中,Socket服務(wù)器端就是DSP端,系統(tǒng)創(chuàng)建多個(gè)Socket對(duì)象,分別負(fù)責(zé)數(shù)據(jù)的收發(fā)操作。同步執(zhí)行的操作是并行而互不影響的。
具體實(shí)現(xiàn)過(guò)程是這樣的:網(wǎng)絡(luò)工具模塊程序利用NDK為系統(tǒng)設(shè)置一個(gè)IP地址,然后在網(wǎng)頁(yè)窗口輸入DSP的網(wǎng)口IP地址,進(jìn)入DSP端的HTTP服務(wù)器,從而實(shí)現(xiàn)遠(yuǎn)程實(shí)時(shí)監(jiān)控。此外,利用Socket編程,可以與PC端編寫(xiě)的軟件進(jìn)行通信,于是用戶可以通過(guò)PC端的軟件給DSP發(fā)送控制指令來(lái)實(shí)現(xiàn)不同操作。
模塊中共包含1個(gè)主線程和3個(gè)子線程,主線程TskNdkStackTest已經(jīng)根據(jù)DSP/BIOS的.tcf配置文件進(jìn)行了靜態(tài)的配置。3個(gè)子線程分別是sendTsk、receiveTsk和cmdparseTsk,分別用于發(fā)送數(shù)據(jù)、接收數(shù)據(jù)和解析PC端軟件的控制命令。每個(gè)子線程中都必須創(chuàng)建一個(gè)Socket。
結(jié)語(yǔ)
本文研究了基于TMS320DM6437的虹膜識(shí)別系統(tǒng)的軟硬件框架設(shè)計(jì)方法。系統(tǒng)對(duì)核心處理器以及主要硬件器件作了介紹,并針對(duì)所用到的軟件框架進(jìn)行了詳細(xì)的分析,對(duì)虹膜采集和識(shí)別平臺(tái)的設(shè)計(jì)具有一定的參考價(jià)值。
評(píng)論