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