楊金鋒,孟凡勝,史玉坤,馬永斌
(中國民航大學天津市智能信號與圖像處理重點實驗室,天津 300300)
?
嵌入式手指多模態特征同步采集系統設計
楊金鋒,孟凡勝,史玉坤,馬永斌
(中國民航大學天津市智能信號與圖像處理重點實驗室,天津300300)
摘要:嵌入式手指多模態特征采集系統對研究基于手指的身份鑒別技術具有重要意義,主要體現在兩個方面:一是為理論研究提供可靠的數據,二是為開發實際的身份識別設備奠定技術基礎。在前期工作中,已實現了W indows CE下的手指靜脈采集系統,但由于W indows CE對高性能硬件系統缺乏完善支持,導致現有單模態系統無法實現功能擴展。面對手指多模態特征采集的實際問題,利用Linux系統開發了嵌入式成像平臺,實現了二路視頻和一個USB指紋模塊的實時成像,從而順利完成了對手指靜脈、指節紋、指紋3個模態的同步采集任務。大量實驗結果表明,該采集系統性能穩定可靠,且成像質量能滿足理論研究的需求。
關鍵詞:手指多模態識別;靜脈圖像采集;嵌入式Linux;多線程;多模同步采集
在生物特征識別領域,多模態特征識別技術具有廣闊的發展前景[1]。首先,人本身就具有多模態生物特性;其次,模態之間本身就呈現信息互補的特點[2]。獲得人體的多模態生物特征信息,必須設計多模態生物特征采集系統,傳統上多采集“人臉”、“虹膜”、“指紋”等人體部位的特征圖像來實現信息模態融合。在實現架構方面,多采用“外設采集+PC機處理”的形式,完全獨立于上位機的嵌入式采集識別系統目前尚少[3]。近些年,作者長期關注并研究手指生物特征識別技術的發展,逐步建立了手指靜脈識別系統的研發平臺[4]。在以前的工作中,完成了基于W indows CE的嵌入式單模態手指靜脈圖像采集系統,但它存在以下缺陷:①由于對成像驅動具有依賴性,W indows CE對現有硬件平臺的支持能力較差,處理能力遠達不到實際要求;②W indows CE開放性不足,缺少有效的開發工具和相關組件、資源,開發難度較大。這些都對進一步擴展開發手指多模態生物特征采集問題造成了很大困難。為了解決實際中面臨的問題,并綜合考慮后續研究,本文選用Linux系統作為新的開發平臺,并提出了新的解決方案。
本文以手指不同部位的指靜脈、指節紋、指紋作為3個獨立的特征單元,設計了嵌入式Linux綜合成像平臺,實現了三者同步的多模態生物特征信息采集系統。經反復測試,系統穩定可靠,采集時刻同步性較好。本系統為數據采集提供了更方便的工具,并且為后續的識別算法移植與優化提供了基礎。
本系統放棄W indows CE 6.0操作系統,采用Linux 3.0.8加Qt 4.5的平臺,這對當前的多模態采集任務和未來的識別算法移植都提供極大的便利,掃除了大量的開發障礙。兩平臺性能對比如表1、表2所示。

表1 Linux系統與原W indows CE系統性能比較Tab.1 Perform ance com parison between Linux OS and previousW indows CE OS

表2 本設計CPU與原CPU性能比較Tab.2 Perform ance com parison between current CPU and previous CPU
通過對比可以看出,現有的Linux系統對高性能CPU的支持以及對攝像頭的支持均優于單模態的W indows CE。在多模態顯示、采集的需求下,采用S5PV210是必要的,而要實現這一切換,并且為以后的識別算法移植打好基礎,就不得不采用Linux操作系統。可見,本設計對Linux系統的嘗試是十分必要的。
系統整體上由主控芯片和外設組成,硬件架構如圖1所示。

圖1 采集系統硬件架構Fig.1 Hardware architecture of collection system
主控芯片選用的是Samsung公司的S5PV210,它采用了ARM CortexTM-A8內核,ARM V7指令集,主頻可達1 GHZ,64/32位內部總線結構,32/32 KB的數據/指令一級緩存,512 KB的二級緩存,可以實現2000 DMIPS(每秒運算2億條指令集)的高性能運算能力[5]。
USB攝像頭用來采集指節紋圖像,它的可選型號范圍較大。應滿足的基本要求包括,完全支持USB Video Class協議,支持MJPEG或YUV2輸出格式,采用內窺鏡頭。USB Video Class(UVC)是Microsoft與另外幾家設備廠商聯合推出的為USB視頻捕獲設備定義的協議標準[6]。目前W indows與Linux均對符合UVC的攝像頭提供了通用驅動程序,所以任何符合UVC的攝像頭插入接口均能被成功驅動,而無需額外安裝驅動程序。
OV3640攝像頭用于采集指靜脈圖像,成像芯片為OmniVision公司的OV3640。這是一款310萬像素的CMOS成像芯片,采用兼容I2C的SCCB接口,支持YUV和RGB格式的輸出。攝像頭采用可手動調焦的廣角鏡頭,并撤去濾光片,增強對紅外光的成像能力。
USB指紋模塊采用的是杭州指安的ZFM206模塊,本實驗僅用到其采集功能。輸出為256×288的bmp格式指紋灰度圖像。
LCD部分采用的是4.3寸電阻觸屏,分辨率為480×272,驅動板通過50pin軟排線與S5PV210的LCD接口通信。LCD完成攝像頭的實時成像、指紋采集結果顯示以及提供用戶交互界面。串口提供到上位機的通信接口,協助實現串口終端,為程序的開發、調試提供有力工具。以太網接口為RJ45接口,完成與服務器端的連接。
3.1軟件開發平臺
平臺架構如圖2所示。

圖2 軟件開發平臺架構Fig.2 Architecture of software developing platform
嵌入式Linux的開發需要同時使用PC機下的W indows平臺和Linux平臺,通常的做法是在W indows下安裝虛擬機軟件,然后在此軟件中新建虛擬機,安裝Linux。
本文使用的PC-Linux發行版為Ubuntu 12.04,實驗已證實在32bitW indows XP虛擬機下運行Ubuntu 12.04效率低下,所以本文使用1臺單獨的PC機安裝Ubuntu 12.04。
3.2交叉開發環境
交叉開發環境如圖3所示。上位機即單獨安裝Linux的PC機,目標板即arm-linux平臺。交叉開發即在上位機編寫并編譯生成可在目標板運行的可執行文件,之后傳輸到目標板執行[7]。

圖3 交叉開發環境Fig.3 Cross-developm ent environm ent
上位機環境為Ubuntu 12.04 LTS,目標板內核版本為3.0.8,兩者通過NFS(網絡文件系統)實現文件共享。根文件系統為支持Qt 4.5的Ext4文件系統,交叉編譯器為arm-none-linux-gnueabi-4.4.6。
3.3與服務器通信
本文實現的僅是三模態的數據采集,后續工作會涉及圖像的特征提取、匹配等步驟。將來隨著客戶終端注冊用戶的增多,原始數據會大量存積,既會影響識別與匹配的效率,又會造成數據安全的隱患。因此本文采用客服端-服務器的架構,客服端完成采集并處理后,將原始圖像數據乃至后續的特征數據均保存到服務器。客戶終端的損壞、故障均不影響數據安全,數據為0的新客戶端通過下載已有用戶數據,即可完成數據同步。
本文服務器為普通PC機,環境為W indows XP系統,與客戶端通過ftp協議通信。ftp server端界面如圖4所示。

圖4 服務器端ftp server應用界面Fig.4 User interface of ftp server
3.4各程序模塊
3.4.1USB攝像頭
Linux下為符合USB Video Class協議的攝像頭提供了通用驅動程序,該驅動程序是建立在USB協議和Video4Linux架構兩方面基礎上的。
Video4Linux(V4L)是Linux內核中為視頻設備提供的驅動程序,它針對市場上的各接口攝像頭、視頻采集卡等設備提供了供應用程序調用的統一接口函數。應用程序最終通過open、read、write、close、ioctl等函數像操作普通字符設備一樣操作攝像頭[8]。
V4L下視頻編程的流程及對應函數如下:
打開設備→查詢并設置設備屬性→設置視頻的制式和幀格式→設置一種輸入輸出方法(內存映射,緩沖區管理)→循環獲取數據→關閉設備
打開設備:int fd=open(″/dev/video0″,O_RDW R);
取得設備的capability,設置視頻的制式和幀格式,向驅動申請幀緩沖,申請物理內存等一系列操作均通過extern int ioctl(int__fd,unsigned long int__request,…)__THROW,這一函數完成。__fd:設備的ID;__ request:具體的命令標志符。
在進行V4L2開發中,一般會用到以下的命令標志符:


這些IO調用,有些是必須的,有些是可選擇的。
3.4.2OV3640攝像頭
OV3640驅動程序調用了i2c和v4l2的接口函數,在二者基礎上完成。最終需要由V4l提供統一的open、read、write、close、ioctl等函數供應用程序完成對攝像頭的所有操作。因此在應用程序下的編程與USB攝像頭較為一致。
3.4.3USB指紋模塊
采用的模塊廠家的SDK。其中的主要函數為:

3.4.4LCD成像
首先用open函數打開framebuffer,然后用ioctl函數分別獲取framebuffer的固定信息和可變信息,據此算出screensize,之后用mmap按照screensize將framebuffer映射進內存,到此framebuffer初始化完畢[9]。
V4L2調用ioctl發送VIDIOC_DQBUF后,獲取一幀數據,經過格式轉換后,將得到的RGB數據直接拷貝到framebuffer映射的內存地址處,屏幕區便出現完整圖像。此過程快速循環,LCD即可呈現活動視頻。
3.4.5ftp通信
用socket函數遵循ftp協議依次實現了ftp_api_ open_srv()(連接服務器)、ftp_api_login_srv()(登陸服務器)、ftp_api_list_srv()(列出服務器文件目錄列表)、ftp_api_locallist()(列出本地文件目錄列表)、ftp_api_ getfile()(下載文件)、ftp_api_putfile()(上傳文件)等接口函數,實現采集端與服務器的文件傳輸。
3.5同步采集架構
手指多模態融合識別涉及指靜脈、指紋、指節紋3個獨立的單元。對這3個單元的融合不是簡單地機械疊加,而是要利用三者內在的相關性。采集的3個模態必須保證姿態統一,如果姿態不同,會導致圖像間失去相關性,致使后面的特征提取與識別算法效果不理想。如果由預處理算法矯正3個模態的姿態,會影響整體算法的效率。所以應該在采集階段保證采集時刻的同步,進而確保采集時3種模態姿態的一致。
為較好地實現采集的同步性,本文采用了如下的多線程結構,經測試,三模態的采集同步性良好,穩定可靠。多線程同步采集架構架如圖5所示。

圖5 多線程同步采集架構Fig.5 Architecture of synchronousm u lti thread collection
線程1和線程5為兩攝像頭循環線程,當檢測到拍照標志getpic_USB或getpic_OV3640為0時,把圖像幀數據直接顯示成像;檢測到為1時,先復制數據并保存到本地,然后向線程2和線程4發送信號,線程2、4共用同一互斥鎖互斥地傳輸本地圖像數據至服務器。
三模塊采集函數先設置getpic_USB及getpic_ OV3640為1,驅動兩攝像頭的拍照過程,然后采集并保存指紋圖像,之后向線程3發送信號,與線程2、4共用一個互斥鎖傳輸圖像數據。
3.6Qt交互界面
Qt交互界面如圖6、圖7所示。

圖6 尚未封裝結構的預覽及采集界面Fig.6 Preview and snap interface of collection system w ithout encapsu lation

圖7 采集系統ftp client界面Fig.7 Ftp client interface of collection system
圖8為三模態采集得到的部分數據。文件名中,FKP表示指節紋,FV表示指靜脈,FP表示指紋,其前面的大寫字母串表示被采集者姓名拼音縮寫。文件名后面的6位數字表示系統開機后直到采集時刻所度過的毫秒數。
以上數據共6組,每次自動采集一組。各組圖像間采集時間差如表3所示,仍有提高的空間。
通過對比可見,三模態采集較好地實現了同時性,該時差已基本滿足處理算法對數據的時間差要求,但仍有提高的空間。

圖8 采集結果示例Fig.8 Exam ples form results of collection

表3 各組圖像采集時刻時間差Tab.3 Collection tim e differences of picture groups
本文研究有兩項重要目的,一是在更高速的硬件平臺下使用Linux平臺完成采集,完成舊的W indows CE平臺向Linux的轉換;二是探究如何在采集時實現
采集時刻良好的同步性。經過大量程序編寫、調試與探究,本文較好地實現了在嵌入式Linux平臺對三模態的同步采集,初步完成了采集設備結構的設計。本課題的工作為實驗數據的便攜采集,以及后續完整的身份識別設備的研發奠定了基礎,提供了重要的參考方案。
當然本課題的成果仍有不足之處,首先是系統CPU為單核架構,多線程運行難免存在時間差,影響了采集的同步性;其次是采集模具結構與光路的設計仍不完善,這兩方面仍需要做出改進。
參考文獻:
[1] FRISCHHOLZ R W,DIECKMANN U.Bioid:amultimodal biometric identification system[J].Computer,2008,33(2):64-68.
[2] HAO Y,SUN Z,TAN T,et al.Multi-spectral Palm Image Fusion for Accurate Contact-free Palmprint Recognition[C]//Intl Conf of Image Processing,2008:281-284.
[3] JAIN A K,ROSS A.Multibiometric systems[J].Communication of the ACM,2004,47(1):34-40.
[4]楊金鋒,呂恩春.多光譜手指靜脈采集系統的優化設計[J].中國民航大學學報,2013,31(2):71-74.
[5]李雪峰.基于指紋與手指靜脈的雙模態識別算法研究[D].哈爾濱:哈爾濱工程大學,2010.
[6]管鳳旭,楊慶國,王科俊,等.基于ARM的手指靜脈識別系統的設計與實現[J].電子技術應用,2011,37(9):39-42.
[7] SLASSA N,SYMESD,W RIGHTC.ARM嵌入式系統開發:軟件設計與優化[M].沈建華,譯.北京:北京航空航天出版社,2005.
[8]韋東山.嵌入式Linux應用開發完全手冊[M].北京:人民郵電出版社,2008.
[9] STEVENSW R,RAGO SA.UNIX環境高級編程[M].3版.尤晉元,張亞榮,戚正偉,譯.北京:人民郵電出版社,2014.
(責任編輯:劉智勇)
Em bedded im aging system for m ultim odal finger feature acquisition
YANG Jinfeng,MENG Fansheng,SHIYukun,MA Yongbin
(Intelligent Signaland Image Processing Key Lab of Tianjin,CAUC,Tianjin 300300,China)
Abstract:Designing a reliable embedded image acquisition system is very important for finger-based biometrics since it can provide reliablemultimodal finger image data for finger-based recognition theory research besidesmaking a technical foundation for real identification system development.In previous work,an embedded device with W indows CE operation for finger-vein image acquisition.However,it can notbe extended sinceW indows CE is incapable of supporting hardwarewithmultiple tasks.To dealwith the problem faced in multimodal imaging,a Linux-based embedded system is developed,which can reliably and synchronously output three image modalities: finger-vein,fingerprint and knuckle print in real-time.Lots of experimental results show that the proposed embedded imaging system is stable and reliable in multimodal finger image acquisition,and the imaging quality canmeet the demand of theory research.
Key words:multimodal finger recognition;finger-vein image acquisition;embedded Linux;multi threads;multimodal synchronousacquisition
作者簡介:楊金鋒(1971—),男,河南淮陽人,教授,工學博士,研究方向為圖像處理、生物識別、計算機視覺.
收稿日期:2014-12-25;修回日期:2015-01-14基金項目:國家自然科學基金項目(61379102,U143310158)
中圖分類號:TP391.41
文獻標志碼:A
文章編號:1674-5590(2016)01-0040-05