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