基于TMS320DM6437的虹膜采集和識別系統設計
摘要:虹膜識別技術(shù)被認為是最有前途的生物認證技術(shù)之一,并且已經(jīng)廣泛應用于金融、電子商務(wù)、國防等領(lǐng)域。本課題基于TI公司的TMS320仁)M64.37設計了一款實(shí)時(shí)的虹膜采集和識別平臺,介紹了系統的框架,并分析了相關(guān)的軟件設計,如Codec Engine軟件框架和網(wǎng)絡(luò )傳輸。該平臺也可以應用于不同的圖像識別領(lǐng)域。
本文引用地址:http://dyxdggzs.com/article/201610/309279.htm引言
虹膜識別技術(shù)被認為是最有前途的生物認證技術(shù)之一,依靠虹膜進(jìn)行身份識別具有以下明顯的優(yōu)勢:
①唯一性。虹膜具有豐富的紋理信息,不同人的虹膜的細節特征是絕不相同的,這是利用虹膜識別的最根本前提條件。
②穩定性。虹膜受到眼皮、角膜等其他人體器官的保護,不易受到外界物質(zhì)的傷害,虹膜本身也沒(méi)有生理上的病變因素。因此相比指紋、掌紋等其他部位具有更高的穩定性。
③天然防偽性。虹膜包圍的瞳孔會(huì )因為肌纖維不停地震顫而規律性地變化,瞳孔還會(huì )因為光線(xiàn)強弱而收縮或擴張,通過(guò)對虹膜的內邊緣進(jìn)行定位,也就是對瞳孔大小的實(shí)時(shí)監測,就可以輕易分辨虹膜的生物學(xué)真偽。
④無(wú)侵犯性。虹膜識別過(guò)程中不需要用戶(hù)進(jìn)行任何物理形式的接觸,因此更容易被接受。所以,虹膜識別是目前身份認證中最有發(fā)展前途的認證技術(shù),有著(zhù)廣泛的市場(chǎng)前景和科學(xué)研究?jì)r(jià)值。
隨著(zhù)計算機和信息技術(shù)的飛速發(fā)展,數字信號處理(Digital Signal Processing)技術(shù)應運而生并得到迅速的發(fā)展。它是一種通過(guò)使用數學(xué)技巧執行轉換或提取信息,來(lái)處理現實(shí)信號的方法,這些信號由數字序列表示。其工作原理是接收模擬信號,轉換為0或1的數字信號,再對數字信號進(jìn)行修改、刪除、強化,并在其他系統芯片中把數字、數據解譯回模擬數據或實(shí)際環(huán)境格式。在過(guò)去的二十多年時(shí)間里,數字信號處理已經(jīng)在各個(gè)領(lǐng)域得到極為廣泛的應用。TI、Freescale等半導體廠(chǎng)商開(kāi)發(fā)的一系列DSP芯片可以很好地對采集、提取、歸一化后的虹膜信息進(jìn)行處理和識別。國外相當數量的公司正在試圖采用虹膜識別取代人們手中的各種身份驗證卡和密碼,并且很多機場(chǎng)、銀行的電子設備上進(jìn)行了實(shí)際應用。
在國內,主要偏重于虹膜識別的理論研究。目前主要有以下兩種:
①采用Gabor濾波和小波變換提取特征,匹配采用方差加權歐式距離方法;
②用Hough變換找出虹膜中心和半徑,利用半徑求比例因子,用相關(guān)系數測度匹配結果的方法。
綜上所述,從世界范圍來(lái)看,國外的虹膜市場(chǎng)比國內要成熟,并已經(jīng)在金融系統、飛機場(chǎng)等小范圍試運行??梢灶A計未來(lái)幾年,我國將大規模利用DSP深化虹膜識別技術(shù)應用到某些領(lǐng)域。在硬件上,我國和發(fā)達國家的差距是比較大的。為此,本文提出了基于TMS320DM6437的虹膜識別系統設計。
1 系統整體簡(jiǎn)介
該系統通過(guò)CMOS攝像頭采集人眼虹膜圖像,對信息進(jìn)行解碼后交由TMS320DM6437進(jìn)行處理,然后圖像處理子系統調用算法處理,繼而把處理結果傳輸給PC。擬定系統主要由4個(gè)部分組成:虹膜圖像采集、虹膜圖像處理、存儲器,以及數據傳輸部分。CMOS圖像傳感器負責采集虹膜圖像,采集的數據由CPLD分配地址存儲在RAM中;當一幀圖像采集完畢后,CPLD產(chǎn)生外部中斷信號,將存儲在SRAM中的字節位圖拷貝至SDR AM等待DSP處理,采用閃存存儲程序代碼和虹膜特征庫。整個(gè)系統中,DSP要完成數字圖像處理工作以及控制其他外部設備。CPLD主要是來(lái)實(shí)現系統的控制邏輯。系統框架如圖1所示。

2 主要硬件簡(jiǎn)介
2.1 核心處理器
系統采用TMS320DM6437數字信號處理器作為核心處理器,它是TI公司推出的專(zhuān)門(mén)為高性能、低成本視頻應用開(kāi)發(fā)的,主頻為600 MHz,基于32位定點(diǎn)DSP達芬奇技術(shù)的處理器。它采用2級Cache存儲器體系結構,片上具有64通道增強型DMA控制器EDMA,支持復雜的數據類(lèi)型的傳輸,有利于圖像數據的高效傳輸和格式變換。它有8個(gè)并行處理單元,采用甚長(cháng)指令字(CLIW)結構體系,有強大的處理能力。它還集成了一些外設接口,包括圖像處理子系統、以太網(wǎng)接口、I2C總線(xiàn)接口、DDR2接口和EMIF接口等.其中,VPSS上提供了一個(gè)輸入接口和一個(gè)輸出接口,輸入接口VPFE用來(lái)連接前端外部設備圖像傳感器,它由5部分組成,分別是CCDC、IPIPE、H3A、Resizer和Histogram。輸出接口VPBE可以連接顯示設備,如analogy SDTV顯示器、數字LCD面板等,它包含On-Screen Display模塊、帶數字LCD和模擬DAC接口的VENC(用以生成模擬式輸出)。DLCD控制器產(chǎn)生數字RGB/YCBCR,輸出時(shí)間信號和數據。
2.2 網(wǎng)絡(luò )模塊
根據7層OSI網(wǎng)絡(luò )模型的定義,網(wǎng)絡(luò )接口工作在其物理層和數據鏈路層。在TMS320DM6437芯片上帶有EMAC/MDIO接口,即提供數據鏈路層控制,所以選擇網(wǎng)卡芯片時(shí)只需要有物理層相關(guān)功能即可滿(mǎn)足需要。
2.3 存儲器模塊
系統存儲主要依靠DDR2存儲器,它擁有兩倍于DDR內存的預讀取能力,也就是DDR2內存每個(gè)時(shí)鐘能夠以4倍于外部總線(xiàn)的速度讀/寫(xiě)數據,并且能以?xún)炔靠刂瓶偩€(xiàn)4倍的速度運行。采用了專(zhuān)用的DDR2存儲控制器接口拓展了64 MB的DDR2 SDRAM,為圖像處理應用提供了高吞吐率、高容量存儲帶寬,而且可以繼續根據需要擴展到256 MB。此外,還有256MB的Nor Flash為圖像處理應用程序脫機使用提供了充足的容量保證。
2.4 硬件預設
在運行整個(gè)視頻采集系統之前,需要對芯片的引腳進(jìn)行定義,根據需求來(lái)決定芯片各引腳的作用和輸出的信號類(lèi)型。芯片引腳定義通過(guò)設置芯片內部PINMUX1、PINMUX2寄存器來(lái)確定,所以首先需要運行芯片初始化函數。然后進(jìn)行前端處理,用來(lái)配置CCDC為10位Raw Bayer模式接口,接收來(lái)自數字攝像頭的裸數據,同時(shí)定義了虹膜圖像的分辨率為720×576。接著(zhù)設置CCDC的視頻輸出分辨率以及數據路徑流向預覽器。設置接口接收來(lái)自CC—DC的10位Raw Bayer模式圖像數據,在緩沖器接口模塊中選擇圖像數據流為外部存儲器DDR2,指定圖像存儲地址和偏移地址。繼而通過(guò)I2C總線(xiàn)來(lái)配置CMOS攝像頭,需要對PLL設置寄存器進(jìn)行配置,設置好的時(shí)鐘信號則作為像素輸出時(shí)鐘使用。還需要設置圖像格式寄存器和一些控制寄存器,用于模擬信號和數字信號的增益、黑電平校正和數字偏移的更正。這些寄存器的設置可以使我們得到更理想的圖像。
最后進(jìn)行后端處理,用來(lái)配置視頻處理后端(VPBE)。VPBE中的圖像存儲器讀取地址就是VPFE中的圖像存儲地址。設置輸出信號為NTSC制的復合視頻信號(CVBS信號)。在虹膜采集系統中對攝像頭的分辨率設置為720×576,觀(guān)察采集到的圖像,幀數穩定、色彩均衡,能夠滿(mǎn)足要求。當需要改變分辨率的時(shí)候,只需改變程序中相應的寄存器設置,硬件無(wú)需變更,降低了開(kāi)發(fā)成本。
3 系統軟件設計
在本系統中,片上的軟件有:圖像采集驅動(dòng)程序、Codec Engine應用軟件和網(wǎng)絡(luò )模塊(NDK)軟件程序??傮w框架圖如圖2所示。

在DSP/BIOS實(shí)時(shí)操作系統下,先將系統上電執行初始化,從程序入口點(diǎn)運行到main函數,然后對相關(guān)寄存器的復用引腳和外設接口等進(jìn)行配置。芯片工作后根據main函數的設置啟動(dòng)任務(wù)線(xiàn)程。main函數返回后,由DSP/BIOS對程序控制進(jìn)程進(jìn)行調度,包括內存管理、中斷處理和任務(wù)管理等。本系統包括PreviewTask和TskNdkStackTest兩個(gè)靜態(tài)配置的任務(wù)線(xiàn)程,前者負責對圖像處理驅動(dòng)模塊和Codec Engine框架進(jìn)行初始化,實(shí)時(shí)獲取虹膜圖像、執行處理算法以及輸出最終結果,是整個(gè)系統的主線(xiàn)程;后者負責網(wǎng)絡(luò )模塊的運行。
3.1 圖像采集驅動(dòng)程序
驅動(dòng)程序是軟件和硬件之間的橋梁,是軟件設計中不可或缺的一部分。該驅動(dòng)程序主要是用于前端的圖像采集端,后端則將處理結果通過(guò)網(wǎng)絡(luò )傳輸至PC。TI公司開(kāi)發(fā)了專(zhuān)門(mén)的驅動(dòng)接口函數,函數名均以“FVID”為默認字頭,它由GIO的APIS按需再次封裝得到。所用到的主要函數如表1所列。

緊接上文步驟,DSP/BIOS啟動(dòng)圖像處理主線(xiàn)程,然后主線(xiàn)程使用FVID的API函數獲取傳感器發(fā)來(lái)的圖像。接著(zhù)用FVID_crcat函數創(chuàng )建通道,返回句柄,將其作為函數FVID_control的參數,根據不同的命令字符串對接口進(jìn)行配置。下一步使用FVID_alloc和FVID_queue兩個(gè)函數向驅動(dòng)申請3個(gè)數據幀,編入buffer隊列。然后用FVID_dequeue函數釋放隊列中的首個(gè)buffer,作為FVID_exchange函數的起始參數。之后進(jìn)入while循環(huán),利用FVID_exchange函數實(shí)現圖像數據的實(shí)時(shí)更新。
3.2 Codec Engine應用軟件
Codec Engine軟件是TI公司專(zhuān)門(mén)為達芬奇系列DSP設計推出的一個(gè)標準軟件框架,能夠極大地簡(jiǎn)輕軟件人員的工作量。它是介于應用層和信號處理層之間的軟件模塊,需要和以下軟件模塊、工具配合使用:
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軟件,首先需要使用初始化函數CERuntime_init(),然后采用Core Engine APIs創(chuàng )建Engine對象并調試。繼而通過(guò)VISA接口創(chuàng )建算法對象,并通過(guò)不同的數據模式和接口函數調用符合XDM標準的算法庫。該軟件的實(shí)現流程圖如圖3所示。

3.3 網(wǎng)絡(luò )模塊軟件程序
本系統采用C6000系列DSP的官方網(wǎng)絡(luò )開(kāi)發(fā)套件NDK。它基于TCP/IP協(xié)議,網(wǎng)絡(luò )接口較為豐富,使用靈活方便。各部分模塊名稱(chēng)以及功能如表2所列。

NDK由5大模塊組成,其各種網(wǎng)絡(luò )功能的實(shí)現都利用了Socket接口。在本系統中,Socket服務(wù)器端就是DSP端,系統創(chuàng )建多個(gè)Socket對象,分別負責數據的收發(fā)操作。同步執行的操作是并行而互不影響的。
具體實(shí)現過(guò)程是這樣的:網(wǎng)絡(luò )工具模塊程序利用NDK為系統設置一個(gè)IP地址,然后在網(wǎng)頁(yè)窗口輸入DSP的網(wǎng)口IP地址,進(jìn)入DSP端的HTTP服務(wù)器,從而實(shí)現遠程實(shí)時(shí)監控。此外,利用Socket編程,可以與PC端編寫(xiě)的軟件進(jìn)行通信,于是用戶(hù)可以通過(guò)PC端的軟件給DSP發(fā)送控制指令來(lái)實(shí)現不同操作。
模塊中共包含1個(gè)主線(xiàn)程和3個(gè)子線(xiàn)程,主線(xiàn)程TskNdkStackTest已經(jīng)根據DSP/BIOS的.tcf配置文件進(jìn)行了靜態(tài)的配置。3個(gè)子線(xiàn)程分別是sendTsk、receiveTsk和cmdparseTsk,分別用于發(fā)送數據、接收數據和解析PC端軟件的控制命令。每個(gè)子線(xiàn)程中都必須創(chuàng )建一個(gè)Socket。
結語(yǔ)
本文研究了基于TMS320DM6437的虹膜識別系統的軟硬件框架設計方法。系統對核心處理器以及主要硬件器件作了介紹,并針對所用到的軟件框架進(jìn)行了詳細的分析,對虹膜采集和識別平臺的設計具有一定的參考價(jià)值。
評論