[劉曉玲 陳云海 林立宇 張萍 鐵兵]
人臉識別服務(wù)云計算化技術(shù)方案分析
[劉曉玲 陳云海 林立宇 張萍 鐵兵]
摘要隨著云計算技術(shù)的發(fā)展與普及,人臉識別技術(shù)及其應(yīng)用也必然朝著云計算技術(shù)方向演進(jìn)。文章從人臉識別技術(shù)與云計算分布式技術(shù)結(jié)合的角度出發(fā),探討人臉識別技術(shù)進(jìn)行分布式存儲與計算的可行性;主要介紹人臉識別的主要流程及相關(guān)技術(shù),對相關(guān)技術(shù)進(jìn)行分布式計算可行性分析,并最終提出一個基于Hadoop的人臉識別服務(wù)的云計算技術(shù)方案。
關(guān)鍵詞:人臉識別 云計算 分布式計算
劉曉玲
女,2007年碩士畢業(yè)于中山大學(xué),現(xiàn)就職于中國電信股份有限公司廣東研究院,研究方向:視頻編解碼算法、視頻云轉(zhuǎn)碼,云計算。
陳云海
男,本科,中國電信股份有限公司廣東研究院,工程師,研究院產(chǎn)品委員會委員,已發(fā)表論文十余篇,主要研究方向:視頻編解碼算法、互聯(lián)網(wǎng)應(yīng)用、虛擬化、云計算、自然語言處理、知識管理及應(yīng)用。
林立宇
男,2005年碩士畢業(yè)于中山大學(xué),現(xiàn)就職于中國電信股份有限公司廣東研究院云計算研究所,主要從事云計算、互聯(lián)網(wǎng)應(yīng)用、移動互聯(lián)網(wǎng)應(yīng)用、視頻轉(zhuǎn)碼等方面的研究工作。
張萍
女,碩士,中國電信股份有限公司廣東研究院,工程師,研究方向:視頻編解碼算法、互聯(lián)網(wǎng)應(yīng)用、云計算。
鐵兵
男,本科,現(xiàn)就職于中國電信股份有限公司廣東研究院,經(jīng)濟(jì)師,主要研究方向為企業(yè)競爭戰(zhàn)略、移動互聯(lián)網(wǎng)、電子商務(wù)、行業(yè)信息化。
隨著云計算技術(shù)的發(fā)展與普及,互聯(lián)網(wǎng)應(yīng)用朝著云計算的方向發(fā)展是一個必然趨勢。越來越多的人工智能技術(shù)也在朝著云計算化方向演進(jìn)。本文從人臉識別技術(shù)與云計算分布式技術(shù)結(jié)合的角度出發(fā),探討人臉識別技術(shù)進(jìn)行分布式存儲與計算的可行性,實現(xiàn)人臉識別服務(wù)的云計算化。云計算分布式技術(shù)可以簡單分為分布式存儲和分布式計算兩個方面。在分布式存儲方面,人臉識別應(yīng)用涉及到海量的數(shù)據(jù),包括在模型訓(xùn)練所需的樣本數(shù)據(jù)、識別階段用到的數(shù)據(jù)等等,都可直接采取分布式存儲技術(shù)進(jìn)行存儲。而在分布式計算方面,由于云計算分布式計算框架對計算有一定的要求,在人臉識別技術(shù)中采用分布式計算,則相比分布式存儲要復(fù)雜得多。
云計算分布式計算框架對計算具有一定的要求[2]:可用于分布式處理的計算必須滿足計算與計算之間的無相關(guān)性。人臉識別采用的許多機(jī)器學(xué)習(xí)的方法,往往比較復(fù)雜,常常會涉及到遞進(jìn)式的計算、或計算與計算之間的層層迭代。因此,將人臉識別技術(shù)應(yīng)用于云計算的分布式計算框架,關(guān)鍵在于如何提取出人臉識別技術(shù)中的非相關(guān)的計算部分,用于云計算化的分布式處理。下文將進(jìn)行人臉識別的主要流程介紹,并對相關(guān)技術(shù)進(jìn)行分布式計算可行性分析,并最終提出一個基于Hadoop的人臉識別服務(wù)的云計算技術(shù)方案。
人臉識別流程一般包括分類器等模型的訓(xùn)練過程和識別過程。在訓(xùn)練和識別過程,均需對數(shù)據(jù)進(jìn)行預(yù)處理和特征提取。對數(shù)據(jù)樣本的預(yù)處理包括圖像大小、圖像灰度化與圖像的灰度均衡化等處理。對數(shù)據(jù)樣本的預(yù)處理過程都是數(shù)據(jù)樣本之間不相關(guān)的,可以直接交給云計算分布式平臺處理。
在訓(xùn)練階段,主要工作是基于已提取的特征進(jìn)行分析和挖掘,以構(gòu)造分類器或其它的數(shù)學(xué)模型。在識別階段,基于分類器的人臉識別,只需提取待識別的樣本特征,再通過分類器進(jìn)行識別即可?;谄渌鼣?shù)學(xué)模型,其識別過程與模型的形式相關(guān),常通過計算矢量距離等距離度量方法來進(jìn)行識別。基于矢量距離計算方法的識別過程,須計算待識別圖像的特征向量與樣本庫的特征向量之間的歐式距離,從中選擇最小距離作為匹配對象。
特征提取、分類器等模型訓(xùn)練及識別是人臉識別技術(shù)的最重要環(huán)節(jié),涉及到多種不同方法,其適用于分布式計算的程度也各不相同。下文將從這三個環(huán)節(jié)進(jìn)一步探討其云計算化的可行性。
特征提取是人臉識別的重要環(huán)節(jié)。如何提取穩(wěn)定、可靠的特征,使得其盡可能少受到光照、角度、遮擋物的影響,直接關(guān)系到分類及識別的質(zhì)量。目前,人臉識別的特征提取算法可以分為基于全局特征和基于局部特征的兩大類[2]:
基于全局特征的常用特征提取算法包括:PCA(主成分分析),LDA(線性判別鑒定)。
基于局部特征的常用特征提取算法包括:LBP(局部二值模式)、Gabor小波、HOG(梯度直方圖)等。
主成分分析(Principal Component Analysis,PCA)或者主元分析。主成份分析是在基于統(tǒng)計學(xué)上對事物特征的統(tǒng)計,通過降維的方式,把多指標(biāo)轉(zhuǎn)換成少數(shù)綜合指標(biāo)。為了盡可能地保持?jǐn)?shù)據(jù)的原始屬性,因此PCA降維時須使得降低維度的數(shù)據(jù)間的方差最小。PCA的計算過程包括求樣本均值,求解協(xié)方差矩陣,求協(xié)方差矩陣的特征向量和特征值,降維。其中,求樣本均值、求解協(xié)方差矩陣都是數(shù)據(jù)塊之間的無相關(guān)的計算,可以容易地移植到分布式框架map reduce中實現(xiàn)。在最近推出的云計算框架SPARK[5]中,已明確指出在其MLlib API中已經(jīng)提供PCA方法。
Linear Discriminant Analysis(線性判別分析),它的基本思想是將高位的模式樣本投影到最佳鑒別矢量空間,以達(dá)到抽取分類信息和壓縮特征空間維數(shù)的效果,它所要確保的是投影后的模式樣本在新的子空間上有最大的類間距離和最小的類內(nèi)距離,從而在可分類性上達(dá)到最佳的效果。在具體的實現(xiàn)過程中,為保證最大類間距離和最小類內(nèi)距離,同樣需要矩陣的特征值和特征值向量的計算。對稱矩陣的特征值、特征向量的計算,雖然也存在并發(fā)的解決方案(例如基于MPI計算模型的方法),但是由于該算法中用到的矩陣是涉及所有訓(xùn)練樣本得到的大矩陣,基于分布式架構(gòu)處理可能帶來數(shù)據(jù)吞吐量方面的限制,因此需要進(jìn)一步權(quán)衡。
基于全局特征的算法,在特征提取過程中是整個訓(xùn)練集的一起進(jìn)行的,因此只能通過對其計算內(nèi)部的一些環(huán)節(jié),例如求樣本均值、求解協(xié)方差矩陣等進(jìn)行分布式處理。
基于局部特征的算法,樣本與樣本之間的特征提取是不相關(guān)的,因此基于局部特征的算法,包括LBP特征、Gabor小波、HOG(梯度直方圖),都是可以直接基于樣本維度在云計算分布式架構(gòu)中進(jìn)行并發(fā)處理。
在特征提取的基礎(chǔ)上,對數(shù)據(jù)進(jìn)一步分析挖掘,通過多次訓(xùn)練構(gòu)造分類器等數(shù)學(xué)模型。在分類器等模型設(shè)計上,主要存在以下幾種常用的方法:Adaboost、HMM(隱馬科夫模型)、神經(jīng)網(wǎng)絡(luò)、SVM等[2][3]。
Adaboost是一種迭代分類器,通過多個弱分類器級聯(lián)成一個強(qiáng)分類器。每一次迭代獲得一個弱分類器后,會根據(jù)當(dāng)前的分類結(jié)果調(diào)整樣本的權(quán)值,使得下一個分類器更加重視那些分類錯誤的樣本,同時更加輕視那些分類正確的樣本。多次迭代,直到分類效果滿足要求為止。顯然,這樣的迭代過程具有計算相關(guān)性,無法直接進(jìn)行分布式計算方式改造。但是,在每次迭代的內(nèi)部,弱分類器的獲取是建立在對特征的選擇上,而每個特征評價方法是特征之間不相關(guān)的,因此特征評價的計算部分也可適用于云計算化。
HMM是馬爾科夫鏈的一種,是狀態(tài)不可直接觀察的雙重隨機(jī)過程。該模型的訓(xùn)練過程是一種迭代訓(xùn)練的過程,以滿足某個條件作為訓(xùn)練的結(jié)束條件。其訓(xùn)練過程一般迭代次數(shù)較少,單次迭代的計算量較大,所以對單次迭代的訓(xùn)練可以考慮使其并行化。但是由于在HNM方法中,狀態(tài)也是一種遞推的過程,算法比較復(fù)雜,其并行化的難度較大。
神經(jīng)網(wǎng)絡(luò)的特點(diǎn)是構(gòu)造權(quán)值矩陣來模仿信號在傳遞過程中強(qiáng)弱的變化,制定多種傳遞的規(guī)則。在訓(xùn)練過程大多都采用一種反向傳遞的機(jī)制,通過對比理想結(jié)果與實際計算結(jié)果的差距,對權(quán)值矩陣進(jìn)行修改,以此改變傳遞過程的信號強(qiáng)弱變化,進(jìn)而改善分類器的分類效果。大多數(shù)反饋機(jī)制都是以迭代來修正權(quán)值矩陣,而不是一次性解決;因此也是一個串行訓(xùn)練的過程。因此,其并行化處理,只能是對其中單次迭代內(nèi)部涉及大量的矩陣運(yùn)算的優(yōu)化。
SVM(Support Vector Machine)即是支持向量機(jī),在解決小樣本、非線性及高維模式識別具有許多特有優(yōu)勢。其原始形式是用來解決二分類問題,基于多個二分類器,可以構(gòu)建N分類器。N 類中任意兩個類都對應(yīng)一個二類分類器,每個二類分類器都為一個特征向量的分類結(jié)果在兩個類上進(jìn)行打分,最后得分最多的類作為最后結(jié)果。每個二類分類器的構(gòu)造過程可以采用分布式處理。
由于訓(xùn)練過程往往涉及到多次迭代,每次迭代都會根據(jù)上次迭代結(jié)果,進(jìn)行調(diào)整參數(shù)再計算。迭代之間具有相關(guān)性,無法直接進(jìn)行用于分布式框架處理的。因此,對訓(xùn)練過程進(jìn)行云計算化,只能是在每次迭代的內(nèi)部進(jìn)行,從中分析其可分布式處理的環(huán)節(jié)。
基于分類器的人臉識別過程,是基于多級2分類器或N分類器的迭代檢查過程,計算量相對較小。但是為達(dá)到最佳效率,在分類器分類過程中,也存在分布式處理以縮短計算時間的可能。以Adaboost為例,級聯(lián)的弱分類器的個數(shù)眾多,可以通過分布式的處理,將各個弱分類器平均分配到各個服務(wù)器上,每個服務(wù)器負(fù)載一部分弱分類器的分類,最后匯總得到最后結(jié)果。
基于歐式距離等向量距離計算方式的人臉識別過程,在提取特征之后,需要進(jìn)行特征之間的距離計算及排序,計算量較大。由于需要將帶檢測對象的特征與原有的特征庫進(jìn)行逐一的距離計算,特征庫的特征之間在計算時是不相關(guān)的,因此可以進(jìn)行分布式處理,將計算分配到云計算平臺中,最后再把計算后的各個結(jié)果,進(jìn)行排序匯總。
Hadoop[4]是一個業(yè)界廣泛認(rèn)可的云計算的分布式系統(tǒng)架構(gòu),其核心設(shè)計是HDFS和MapReduce?;贖adoop構(gòu)建人臉識別云服務(wù),可采用HDFS存儲海量的人臉識別樣本數(shù)據(jù),并采用MapRduce處理人臉識別中的可分布式處理環(huán)節(jié),包括圖像預(yù)處理、局部特征值提取、分類器訓(xùn)練與識別過程中的可分布式處理環(huán)節(jié)。
下面以LBP特征提取環(huán)節(jié)為例,介紹MapReduce的處理流程。通過定義LBP特征提取環(huán)節(jié)的Map和Reduce函數(shù),實現(xiàn)分布式處理。
LBP特征提取過程的函數(shù)Map():
輸入:
輸出:
功能: i.從標(biāo)準(zhǔn)灰度圖value提取LBP特征信息value’
ii.輸出
LBP特征提取過程的函數(shù)Reduce():
輸入:
輸出:
功能:匯總所有LBP特征,形成LBP特征矩陣輸出。
在Hadoop平臺上,Map/Reduce的處理流程如圖1。在Hadoop平臺上,基于key值在Reduce環(huán)節(jié)進(jìn)行分組處理,最終輸出特征值矩陣。
云計算技術(shù)的快速發(fā)展,給傳統(tǒng)的人工智能技術(shù)帶來新的發(fā)展推動力。從HADOOP和 MAP REDUCE 到SPARK,云計算分布式框架的性能一直在持續(xù)不斷得到提升,并且SPARK框架已開始直接提供一些機(jī)器學(xué)習(xí)API。今年5月,百度在github上開源了其深度機(jī)器學(xué)習(xí)平臺,也大幅降低開發(fā)和部署分布式機(jī)器學(xué)習(xí)系統(tǒng)及相關(guān)應(yīng)用的門檻。而早在2011年開展基于云計算的模式識別研究的騰訊研究院,也于今年8月推出基于人類識別的身份驗證服務(wù)。隨著人工智能技術(shù)與云計算技術(shù)的結(jié)合,將人臉識別服務(wù)云計算化,勢必推動人臉識別服務(wù)獲得更廣泛的應(yīng)用。
圖1 LBP特征值的MapReduce處理流程
參考文獻(xiàn)
1李仕釗. 基于云計算的人臉識別系統(tǒng)研究與實現(xiàn).華南理工大學(xué)碩士學(xué)位論文, 2013: 5
2蘇煜,山世光,陳熙霖,高文. 基于全局和局部特征集成的人臉識別. 軟件學(xué)報,2010:8
3祝秀萍 吳學(xué)毅 劉文峰. 人臉識別綜述與展望. 計算機(jī)與信息技術(shù), 2008:4
4Hadoop百度百科 http://baike.baidu.com/view/908354.htm
5SPARK百度百科 http://baike.baidu.com/ subview/123524/123524.htm
DOI:10.3969/j.issn.1006-6403.2016.01.004
收稿日期:(2015-11-25)