童小念,文衛(wèi)蔚
(中南民族大學計算機科學學院,武漢430074)
人臉識別技術是利用計算機對人臉圖像進行分析,從中提取有效信息以辨認身份的一門技術,相對于指紋識別、視網(wǎng)膜和虹膜掃描等其他基于生物特征識別的技術,它更直觀、更容易鑒別,被廣泛地應用于證件識別、門禁監(jiān)控和視頻會議中.隨著移動互聯(lián)網(wǎng)的發(fā)展,移動環(huán)境下將人臉識別作為身份認證的應用場合也日益趨多,已成為當前的一個研究課題.
可是,移動互聯(lián)網(wǎng)中的人臉識別計算受到網(wǎng)絡速度以及移動終端電池續(xù)航能力等諸多因素的限制,其大量樣本數(shù)據(jù)的復雜計算不適合在移動終端進行.隨著云計算技術的提出,云計算服務端可以提供很好的存儲與計算能力,移動互聯(lián)網(wǎng)中的諸多應用也都趨向于云計算方向發(fā)展.因此,探討在移動互聯(lián)網(wǎng)環(huán)境下應用云計算方法進行人臉識別,有很好的實用意義.
支持向量機(SVM)是一種基于統(tǒng)計學理論的學習算法[1],它以結構風險最小化原理為基礎[2],通過構造最優(yōu)超平面對未知樣本進行分類.支持向量機能夠有效地克服“維度災難”問題,在文本分類、生物信息、圖像分類等領域有很好的應用.MapReduce[3]是由Google提出的一種應用于云計算的編程模型,它能夠提供較強的并行處理能力,在機器學習的過程中,可達到減少訓練時間的目的.本文利用MapReduce模型訓練支持向量機來進行人臉識別,旨在加速支持向量機的人臉學習訓練時間,以適應移動環(huán)境下的人臉識別要求.
人臉特征表示方法主要有基于幾何特征的表示方法與基于統(tǒng)計特征的表示方法[4].基于幾何特征的表示方法通過對人臉特征例如眼睛、鼻子、嘴巴等部位的相對位置進行提取,其效果的好壞依賴于是否存在滿足識別要求的精確的人臉特征檢測機制,所以到目前為止對人臉特征的精確檢測仍然比較困難.而基于統(tǒng)計特征的識別方法不僅僅針對人臉的某一具體幾何特征,它還從整個人臉的角度利用統(tǒng)計原理從多張人臉中提取它們的共有特征,利用這些特征進行人臉識別.相對于人臉幾何特征識別,人臉統(tǒng)計特征降低了特征描述的困難,因此基于統(tǒng)計特征的人臉表示方法越來越得到重視,并得到了廣泛應用.本文采用主成分分析(PCA)[5]進行人臉特征提取,PCA是一種掌握事物主要矛盾的統(tǒng)計分析方法,它的特點是將主要影響因素從復雜的多元事物中分離,使復雜的問題簡化.
PCA 由 K-L 變換[6,7]實現(xiàn)數(shù)據(jù)降維,對于一幅 l×h的人臉圖像,PCA將其構造成M=l×h維的列向量,M即為人臉向量的維度,訓練樣本集的總體散布矩陣如公式(1)所示.
公示(1)中,μ為樣本集的平均向量,N為訓練樣本總數(shù)(N<M),xk為第k個訓練樣本的圖像向量,令:
構造矩陣Q=XTX,則矩陣St最多有M個特征值與特征向量,矩陣Q最多有N個特征值與特征向量.根據(jù)奇異值分解定理,St和Q的前N個最大的特征值是相同的,首先通過Q矩陣計算出其特征值λ1≥λ2≥…≥λN及對應的標準正交特征向量u1,u2,…,un,然后根據(jù)公式(3)計算St中前N個最大的特征值對應的標準正交特征向量v1,v2,…,vN.
對于樣本x,主成分特征如公式(4)所示.
如此將原圖像從M維下降到維,維的投影系數(shù)則作為人臉圖像的特征向量輸入到分類器進行識別.
支持向量機(SVM)是由 Corinna Cortes和Vapnik等人首先提出的[8],它由統(tǒng)計學習理論發(fā)展而來,是一種新的機器學習算法.
支持向量機方法首先需要構造最優(yōu)超平面,支持向量機使一組高維向量在超平面作用下進行分隔以達到距離最大化.在這個過程中,需要通過適當?shù)暮撕瘮?shù)(Kernel Function)將兩組不同類別的向量組在高維空間分散開,然后在這個新空間求最優(yōu)分類面.
設線性可分訓練集樣本為S=((x1·y1),(x2·y2),…,(xl·yl),其中 xi∈ Rd;yi∈ (1,- 1),為了使所有樣本能夠被一個超平面正確分開,必須滿足公式(5).
利用拉格朗日優(yōu)化方法,可將上述問題轉(zhuǎn)化為對偶問題,αi為原問題中對應每個約束條件的拉格朗日乘子:
其中C>0作為對線性不可分樣本的分類錯誤懲罰因子,求解這個二次規(guī)劃問題,可以從訓練樣本中得到一系列對應αi≠0的向量,這些向量作為支持向量決定分類面.
傳統(tǒng)的支持向量機只能解決兩分類的問題,而人臉識別是多分類問題,因此針對人臉識別需要使用多分類的支持向量機.目前主要有“一對多”分類法與“一對一”分類法.
“一對多”分類法是由 Vapnik[9]提出的,它的主要思想是對訓練集中的N類樣本訓練N個支持向量機,在對識別第i類的樣本SVM進行訓練時,該類樣本為正樣本,其它不屬于第i類樣本的樣本作為負樣本.在進行分類判別的過程中將待識別的特征輸入每個分類器,輸出值最大的分類器對應識別結果.“一對多”分類法具有實現(xiàn)簡單、訓練時間短、容易進行類別擴展等優(yōu)點,相對“一對一”分類法只需要較少的分類器數(shù)量,但是由于訓練樣本數(shù)量間的不均衡使得“一對多”分類法的泛化能力較弱.
“一對一”分類法在N類樣本間兩兩構造分類器,因此該方法對于N類的樣本總共需要訓練N(N-1)/2個分類器[10].在進行判別的過程中,“一對一”分類法采用投票的方式取出現(xiàn)次數(shù)最多的結果作為識別結果.“一對一”分類法中構造單個支持向量機的過程相對比較簡單,但是相比“一對多”分類法,其需要構造的總分類器的數(shù)目較多,隨著類別的增加以平方增長,分類的速度也會隨之變慢.
利用支持向量機進行人臉識別,降低機器學習的訓練時間開銷是一個重要的問題.通過MapReduce提供的并行處理能力,能夠減少訓練時間的開銷.
MapReduce將訓練數(shù)據(jù)集分為多個子集,針對子集開發(fā)多級SVM,即通過指定的map函數(shù)并行處理各個子集,再通過Reduce函數(shù)對分塊處理的結果按照特定的規(guī)則進行歸并處理,得到新的SVM.MapReduce系統(tǒng)能夠自動處理數(shù)據(jù)的分塊、分配與調(diào)度等問題,降低了使用難度.
如上所述,MapReduce由兩個執(zhí)行階段組成:Map階段與Reduce階段.在Map階段通過用戶指定一個Map函數(shù)將輸入的鍵值對轉(zhuǎn)化為一系列的中間鍵值對以<key,value>的形式輸出,具有相同key值的鍵值對會交由相應的Reduce函數(shù)處理.在Reduce階段,對接收到的<key,value>鍵值對規(guī)約為<key,list(values)>鍵值對的形式,對每個 <key,list(values)>鍵值對調(diào)用reduce方法并輸出結果.
為了在MapReduce模型下訓練支持向量機,考慮對于識別任務最終決定分類面的是支持向量,而且處于兩個最優(yōu)超平面間的樣本對于支持向量機的調(diào)節(jié)具有重要作用,本文首先將訓練樣本集劃分為若干個小的訓練樣本集,在Map任務中針對每個小樣本集訓練得到支持向量機,然后選取每個支持向量機對應的最優(yōu)超平面附近的樣本,即0<αi<C的樣本數(shù)據(jù)(xi,yi)作為 Reduce的輸入,并在 Reduce階段訓練一個新的支持向量機來作為最終使用的決策函數(shù).利用MapReduce訓練支持向量機的算法如圖1所示.
圖1 利用MapReduce訓練支持向量機Fig.1 Using MapReduce to train Support Vector Machine
對于人臉識別這種多分類問題,利用本文算法針對“一對多”方法下訓練支持向量機的步驟如下:
Step 1 對含有類訓練樣本的數(shù)據(jù)標號并規(guī)約為<key,value>格式的數(shù)據(jù),其中key值為樣本的類別,value為樣本特征數(shù)據(jù).
Step 2 將<key,value>格式的數(shù)據(jù)輸入Map函數(shù)進行處理,在每個Map函數(shù)中對輸入數(shù)據(jù)求解最優(yōu)化問題得到個支持向量機,輸出格式為<key,value>格式的中間數(shù)據(jù),其中key為支持向量機類別,該類別對應被支持向量機分為正樣本的類別,value為經(jīng)過標記的支持向量,標記為1表示在該支持向量對應的支持向量機中該支持向量對應的訓練樣本為正樣本,標記為-1則表示該支持向量對應的訓練樣本為負樣本.
Step 3 對中間鍵值對數(shù)據(jù)進行Partition階段操作將具有相同key值的數(shù)據(jù)發(fā)送到相同的Reduce節(jié)點進行處理.
Step 4 中間鍵值對數(shù)據(jù)傳送到Reduce節(jié)點被排序規(guī)約為格式為<key,list(values)>的數(shù)據(jù),其中key為支持向量機類別,list(values)為從中間鍵值對數(shù)據(jù)中收集到的所有該類別對應的數(shù)據(jù).
Step 5 Reduce函數(shù)對<key,list(values)>格式的數(shù)據(jù)進行處理,通過求解最優(yōu)化問題得到一個新的支持向量機,該支持向量機即用來識別key對應的人臉樣本類別.Reduce階段執(zhí)行完畢后,得到新的個支持向量機以<key,value>格式輸出,其中key為支持向量機類別,value為支持向量機對應的參數(shù).
本文在4臺PC機(CPU 2.2GHz以上,2GB內(nèi)存)上構建 Hadoop集群,Hadoop版本為 Hadoop0.21.0.實驗采用ORL標準人臉庫作為數(shù)據(jù)集,ORL人臉庫中共有40個人,每人10幅圖像,圖像大小為112×92像素,共400幅人臉圖像,每個人的不同人臉圖像包含了表情、姿態(tài)和面部飾物的變化.采用直方圖均衡化對圖像進行預處理以減小環(huán)境、光照等條件的影響,選取數(shù)據(jù)集中每個人的前6幅圖像作為訓練集,剩下4張作為測試集進行實驗,采用“一對多”分類法進行識別.
本文采用了RBF徑向基函數(shù)作為SVM的核函數(shù),如公式(7)所示,參數(shù) g=0.01,C=100.本文分別在單機以及2Map、3Map和4Map下進行實驗.圖2顯示了對ORL庫中人臉圖像進行直方圖均衡化的效果.
圖2 ORL庫中的人臉圖像以及直方圖均衡化效果Fig.2 A face picture of ORL and its histogram equalization
圖3顯示了不同實驗條件下支持向量機的訓練時間(設單機環(huán)境訓練時間為100%為參照)及識別率.
圖3 不同環(huán)境下支持向量機的訓練時間以及識別率Fig.3 Train time and recognition rate of Support Vector Machine in different conditions
由圖3可見,在機器學習時間方面,采用MapReduce模型訓練支持向量機的時間與不使用MapReduce模型的單機環(huán)境相比得到了較大幅度的降低,2Map,3Map和4Map情況下訓練時間分別是單機情況下的62.2%,40.5%和28.5%.圖3中的識別率指標體現(xiàn)出單機的人臉識別率是93.1%,并行情況下2Map,3Map和4Map的識別率分別為91.9%,92.5% 和 90.6%.并行環(huán)境下的識別率比單機環(huán)境有些微下降,其原因在于原來整體樣本中的部分支持向量在分塊處理中被丟棄.本文方法在支持向量機的訓練時間方面獲得了明顯的加速,但付出了1%~2%的識別率代價.權衡移動互聯(lián)網(wǎng)環(huán)境對人臉識別復雜計算的應用需求,在保證人臉識別率達到90%以上的前提下,本文側重了機器學習時間的優(yōu)化.
本文利用MapReduce模型訓練支持向量機進行人臉識別.實驗結果表明,該算法提升了支持向量機的訓練速度,保證了人臉識別的準確率.Hadoop技術與MapReduce模型已經(jīng)在移動互聯(lián)網(wǎng)上獲得了廣泛應用,本文所采用的方法對于移動互聯(lián)網(wǎng)環(huán)境下的人臉識別,特別是對識別效率有較高要求的人臉識別應用具有一定的實用價值.下一步將分析并行度與識別率之間的關系,研究優(yōu)化支持向量機性能的策略,力求在加速人臉識別運算的同時,進一步提高其識別率.
[1]Vapink V N.統(tǒng)計學理論的本質(zhì)[M].北京:清華大學出版社,2000.
[2]胡正平,張 曄.結構風險最小化近鄰分析解決大規(guī)模訓練集支持向量機學習問題[J].信號處理,2007(1):161-164.
[3]Deng J,Ghemawat S.MapReduce:Simplied data processing on large clusters[C]//USENIX.Proceedings of the 6th USENIX Symposium on Operating System Design and Implementation(OSDI).New York:ACM Press,2004:137-150.
[4]趙武鋒.人臉識別中特征提取方法的研究[D].杭州:浙江大學,2009.
[5]高全學,潘 泉,梁 彥,等.基于描述特征的人臉識別研究[J].自動化學報,2006,32(3):386-391.
[6]蘇宏濤.基于統(tǒng)計特征的人臉識別技術研究[D].西安:西北工業(yè)大學,2005.
[7]徐 仲,張凱院,陸 全,等.矩陣論簡明教程[M].北京:科學出版社,2005:118-123.
[8]Cortes C,Vapink V.Support vector networks[J].Machine,1995,20:273-297.
[9]Vaprink V N.Statistical learning theory[M].New York:Wiley,1998:493-520.
[10]Krebel U.Pairwise classification and support vector machine[M].Cambridge,USA:The MIT Press,1999:255-268.