基于HMM的嵌入式人臉識別系統(tǒng)研究
摘要:系統(tǒng)選用S3C2410A處理器作為硬件平臺,Linux操作系統(tǒng)作為軟件平臺,采用OV7640+OV511的結構實現圖像信息采集,使用基于V4L的方法編寫圖像處理、檢測和識別程序,實現了快速、準確識別人臉的功能;并對相關浮點算法進行了改進,極大地提高了ARM處理器上圖像預處理的速度。采用基于隱馬爾可夫模型(HMM)的方法,簡化了人臉檢測和識別的過程。
關鍵詞:嵌入式系統(tǒng);HMM;ARM;人臉識別
0 引言
嵌入式人臉識別系統(tǒng)與傳統(tǒng)鑒別身份的系統(tǒng)相比具有很強的優(yōu)勢,無需特殊的采集設備,成本低廉,使用簡單;同時,人臉識別不干擾使用者,不侵犯使用者的隱私,屬于非侵犯的主動識別,易于為用戶所接受。
本文以嵌入式ARM9系統(tǒng)開發(fā)為主線,以HMM模型為理論基礎,展示了完成圖像采集、人臉檢測與識別等功能相對應的硬件平臺和軟件模塊的設計及實現過程;并對圖像預處理的浮點算法做了優(yōu)化,極大提高了嵌入式系統(tǒng)的速度。
本系統(tǒng)軟件部分可直接應用于帶有Linux操作系統(tǒng)的智能手機中,利用手機以及內置的攝像頭,即可進行個人面部特征數據分析,然后對比最初存儲的人臉信息庫,完成身份識別功能。
1 系統(tǒng)架構及其設計方案
本系統(tǒng)采用了Samsung推出的以ARM 920T RISC為內核的處理器——S3C2410A。其優(yōu)秀的處理性能理所當然地成為便攜式設備開發(fā)的首選。同時為適應智能手機對視頻圖像采集的需求,系統(tǒng)采用了基于USB總線的視頻采集模塊,與串行傳輸相比極大地提高了數據的采集速率。本系統(tǒng)涉及到數字圖像的采集、處理、存儲、傳輸和HMM算法等多種技術。其系統(tǒng)架構如圖1所示。
2 圖像采集硬件設計
鑒于傳統(tǒng)CCD圖像傳感器昂貴的成本、相對復雜的附加電路和較高的功耗,本系統(tǒng)采用OmniVision公司的OV7640 CMOS芯片作為圖像傳感器。OV7640是一款低電壓(2.5 V)、高靈敏度的CMOS圖像傳感器。
實時采集存儲系統(tǒng)需要高速的數據傳輸,對系統(tǒng)硬件之問的配合提出較高的要求。本系統(tǒng)設計中,在采集部分和傳輸部分之間配有相應的緩存區(qū)。實際中,采用OV7640及配套的芯片OV511擴展DRAM起緩存作用,實現將數字視頻圖像通過高速USB送入ARM處理器。OV511是一個專用的數字攝像IC的USB接口芯片。
3 圖像采集程序
本系統(tǒng)采用Linux做為操作系統(tǒng)平臺,操作系統(tǒng)的移植在此不做過多介紹。
Video4 Linux(簡稱V4L)是Linux中關于視頻設備的內核驅動,它為針對視頻設備的應用程序編程提供一系列接口函數,這些視頻設備包括現今市場上流行的TV卡、視頻捕捉卡和USB攝像頭等。Linux內核提供Video4Linux應用程序接口,在程序開發(fā)時,首先是基于Video4Linux API函數來設計程序。[!--empirenews.page--]
基于Video4Linux圖像采集的程序流程如圖2所示。
4 圖像預處理與人臉識別算法及實現
人臉識別過程首先判斷輸入的人臉圖像或者視頻中是否存在人臉,如果存在,則進一步給出每個人臉的位置、大小和各個主要面部器官的位置信息,并依據這些信息,進一步提取每個人臉中所蘊含的身份特征,將其與已有人臉庫中的人臉進行對比,從而識別人的身份。
人臉識別的過程可以分為圖像預處理、人臉檢測和人臉識別三部分。
人臉檢測是指從待識別矩陣中定位人臉區(qū)域中各特征區(qū)域,并將各個區(qū)域分割開。人臉識別是根據已有的人臉數據庫,輸出待測人臉對應在人臉庫中的對象標號。二者互為前提和目的。由于HMM既可完成人臉檢測,又可完成人臉識別,因此我們將人臉檢測與識別同時處理。
4.1 隱馬爾可夫模型(HMM)基本概念
HMM是一組用于特征化信號的統(tǒng)計特性的模型,它包含兩個相關的過程:一個是隱含的、不可見的有限狀態(tài)馬爾可夫鏈,它具有初始狀態(tài)概率分布函數和狀態(tài)轉移概率矩陣,另外是一組與狀態(tài)有關的概率密度函數。
一個HMM的構成元素如下:
一個HMM可以簡記為λ={A,B,∏},由于其輸入為有限字符集V={v1,v2,… vm},因此稱其為離散隱馬爾可夫模型。[!--empirenews.page--]
4.2 用于人臉識別的HMM模型
根據狀態(tài)轉移的類型,HMM可分為遍歷的(ergodic)和從左到右的(left-right)。前者表示狀態(tài)轉移是任意的,可以到本身和其他所有狀態(tài),后者狀態(tài)轉移只限于本身和下一個狀態(tài)。人臉垂直方向由上至下和水平方向從左至右各個區(qū)域具有自然不變的順序,可以用1D-HMM來模擬人臉,如圖3所示。
4.3 人臉圖像特征提取
設每一個人臉圖像寬度為W,高度為H,被劃分為互相重疊的塊。塊的高度為L,重疊深度為P。因此,從人臉圖像抽取的總分塊數為觀察矢量數T,且T=(H-L)/(L-P)+1。參數L和P的選擇將影響系統(tǒng)的識別率,大的重疊深度值P增加了垂直特征向量的數量,使系統(tǒng)的識別率提高。L的選擇比較微妙,較小的L使觀察矢量不能有效鑒別;而大的L使剪切相交特征概率增加。當P大時,系統(tǒng)識別率對L的變化不敏感。分割算法流程如圖4所示。
4.4 人臉HMM模型的訓練
為人臉圖像庫中每一個人臉建立一個HMM模型,用同一個人的5張不同人臉照片進行訓練。按照子塊劃分方法,得到的2D-DCT變換系數矢量形成觀察矢量序列。用觀察矢量序列O={o1,o2,…,oT}進行訓練,得到HMM模型參數。
首先對HMM模型λ={A,B,∏}進行初始化,通過自上而下均勻分割人臉圖像得到訓練數據。模型狀態(tài)數N=6,與每一個狀態(tài)有關的觀察矢量序列用于得到觀察概率矩陣B的初始估計,A和∏的初始值按人臉模型自左到右的結構給出。然后利用最大似然估計算法(Baum-Welch估計算法)重新估計模型參數,檢測P(O|λ)的收斂條件。
如果滿足式(3)條件,則模型已收斂,結束訓練迭代過程;否則繼續(xù)進行下一次訓練。
此處,C為預先給定的閾值。
4.5 人臉圖像識別
被識別的人臉圖像用于訓練過程相同的方法提取觀察矢量序列,觀察矢量序列的概率由人臉圖像HMM模型計算出,即:
當滿足式(4)時,被識別人臉對應人臉圖像庫中第k個人的人臉被識別出。
實驗證明,此算法易于實現實時處理,不受臉部表情變化的影響,抗噪聲能力強,魯棒性好。但在人臉識別中的光照問題和姿態(tài)問題方面還有待于進一步的研究。
5 結論
基于嵌入式ARM9和HMM算法的人臉識別系統(tǒng)具有體積小,計算量小,運算速度快,性能穩(wěn)定等特點,能夠滿足人們對識別設備小型化的需求。相信在不久的將來,基于嵌入式的人臉識別系統(tǒng)會在安檢、身份驗證、門禁系統(tǒng)、智能考勤等方面得到廣泛應用。
本文作者創(chuàng)新點:
人臉識別是生物特征識別中一個重要的研究方向,是間接、無侵犯式身份識別的主要方法。在嵌入式系統(tǒng)進行人臉識別,能夠實現人臉識別設備的便攜化,將會極大地拓展識別設備的使用范圍。識別使用HMM算法,有效地降低了識別算法的空間和時間復雜度,為實時識別提供了可能。