李廣鵬,劉 波,李 坤,黃思琦
(1.國(guó)防科技大學(xué) 計(jì)算機(jī)學(xué)院,湖南 長(zhǎng)沙 410073;2.國(guó)防大學(xué)政治學(xué)院 教研保障中心信息技術(shù)室,上海 201602;3.大連交通大學(xué) 軟件學(xué)院,遼寧 大連 116000)
在日常生活中,人與人的交流主要是通過(guò)自然語(yǔ)言和形體語(yǔ)言,自然語(yǔ)言可以表達(dá)交流的內(nèi)容,這種交流基本可以滿足人與人之間大部分的信息交流,但是一些深層次的交流還是需要形體語(yǔ)言。形體語(yǔ)言則可以表達(dá)自己的情緒,也可以通過(guò)對(duì)方表達(dá)的情緒來(lái)辨認(rèn)對(duì)方的態(tài)度和內(nèi)心世界。形體語(yǔ)言交流主要體現(xiàn)在人臉面部表情。人在說(shuō)話交流時(shí),面部表情隨時(shí)在變,體現(xiàn)出內(nèi)心的心理狀態(tài)。自然語(yǔ)言加上形體語(yǔ)言才能使人與人之間的交流變得更加自然,關(guān)于形體語(yǔ)言交流的作用,心理學(xué)家Mehrabian給出了一個(gè)公式,感情表露=7%的言詞+38%的聲音+55%的面部表情[1]。
如今的人工智能發(fā)展已經(jīng)走上正軌,各項(xiàng)人工智能技術(shù)都已經(jīng)適用于學(xué)習(xí)生活中的各個(gè)方面。人工智能中最重要的一個(gè)方面就是人和計(jì)算機(jī)的信息交互,也稱(chēng)人機(jī)交互。人工智能要做的就是讓人和計(jì)算機(jī)交互更加智能,更加方便,對(duì)此,要給計(jì)算機(jī)加入人的一些基本功能如視覺(jué)和聽(tīng)覺(jué),這樣人與計(jì)算機(jī)就消除了基本的隔閡[2]。在此基礎(chǔ)上,為了讓人和計(jì)算機(jī)的交互更加常態(tài)化,需要給計(jì)算機(jī)加入情感理解和情感識(shí)別,讓計(jì)算機(jī)能夠很自然地和人交流,進(jìn)一步消除人和計(jì)算機(jī)的隔閡。擁有情感理解和情感識(shí)別的計(jì)算機(jī)是人工智能未來(lái)的發(fā)展趨勢(shì),而人機(jī)交互最重要的一部分就是人臉情緒識(shí)別,人的情感主要表現(xiàn)在臉部,計(jì)算機(jī)要理解人的情感,第一步就是識(shí)別人臉的情緒。正因?yàn)檫@樣,人臉情緒識(shí)別得到了很多科研機(jī)構(gòu)和科技公司的重視,具有情感識(shí)別的計(jì)算機(jī)將徹底改變?nèi)藱C(jī)交互的現(xiàn)狀[3]。
人臉檢測(cè)識(shí)別的方法有很多種,可以劃分為三大類(lèi)。第一類(lèi)方法是將人臉局部特征作為重點(diǎn)研究的人臉檢測(cè)方法,第二種是將人臉整體特征作為重點(diǎn)研究的人臉檢測(cè)方法,第三種方法是將前兩種方法的優(yōu)缺點(diǎn)結(jié)合的基于局部和整體的人臉檢測(cè)方法。
人臉檢測(cè)是要找出圖像中人臉的大概區(qū)域,而人臉特征點(diǎn)定位則是要更加準(zhǔn)確地定位出眼睛、眉毛、鼻子、嘴巴輪廓等一些人臉區(qū)域中的關(guān)鍵部位,以便對(duì)得到的人臉進(jìn)行進(jìn)一步的處理。研究方法主要分為兩大類(lèi),一類(lèi)是基于模型的方法,一類(lèi)是基于回歸的方法[4]。
表情特征提取是facial expression recognition系統(tǒng)中最重要的一部分,高效的表情特征提取將大大提高表情識(shí)別率。表情特征提取算法主要有四種方法:基于統(tǒng)計(jì)的方法、基于頻率特征提取的方法、基于運(yùn)動(dòng)特征的方法和基于神經(jīng)網(wǎng)絡(luò)的方法。
降維算法的本質(zhì)是學(xué)習(xí)一個(gè)映射函數(shù)f:x→y,其中x是原始數(shù)據(jù)點(diǎn)的表達(dá),目前最多使用向量表達(dá)形式;y是數(shù)據(jù)點(diǎn)映射后的低維向量表達(dá),通常y的維度小于x的維度(當(dāng)然提高維度也是可以的);f可能是顯式的或隱式的、線性的或非線性的。常用的特征降維算法有主成分分析算法(PCA)和線性判別分析算法(LDA)[5]。
人臉表情識(shí)別過(guò)程中的最后一步,也是直接影響結(jié)果的一步就是表情分類(lèi)。表情分類(lèi)是指通過(guò)設(shè)計(jì)分類(lèi)機(jī)制來(lái)對(duì)表情進(jìn)行分類(lèi),將表情歸入相應(yīng)的類(lèi)別。常用的分類(lèi)方法是按照感情分類(lèi),將表情分類(lèi)到Paul Ekman歸納的6種基本感情。文中將所有表情分為四類(lèi):悲傷、開(kāi)心、驚訝、害怕。人臉表情分類(lèi)的方法有很多,主要是利用基于機(jī)器學(xué)習(xí)的方法如人工神經(jīng)網(wǎng)絡(luò)、貝葉斯分類(lèi)、支持向量機(jī)以及一些其他的分類(lèi)算法[6]。
算法的主要架構(gòu)如圖1所示。從圖像的來(lái)源不同,針對(duì)視頻,將視頻圖像序列提取關(guān)鍵幀,處理為單個(gè)圖像,然后對(duì)圖像進(jìn)行預(yù)處理;對(duì)圖像中的人臉進(jìn)行檢測(cè),將人臉?lè)蛛x出來(lái)進(jìn)行特征點(diǎn)定位并利用Gabor小波對(duì)人臉圖像進(jìn)行特征提取,提取出來(lái)的向量維數(shù)較高,接下來(lái)進(jìn)行特征降維,最后對(duì)表情進(jìn)行分類(lèi)處理,得出測(cè)試圖像所屬的類(lèi)。
圖1 算法架構(gòu)
人臉檢測(cè)是指對(duì)于任意一幅給定的圖像,通過(guò)算法搜索圖像,判斷圖像中是否存在人臉。如果算法檢測(cè)出輸入的圖像中存在人臉圖像,那么就將人臉從整個(gè)圖像背景中分離出來(lái)[7],將人臉的位置以坐標(biāo)形式返回,同時(shí)返回人臉的大小和此時(shí)的姿態(tài)。人臉檢測(cè)是人臉表情識(shí)別最基礎(chǔ)的一步,能不能從圖像中提取人臉,以及提取出來(lái)的人臉是否符合后期處理的標(biāo)準(zhǔn)等這些條件直接影響后期的識(shí)別率。人臉檢測(cè)技術(shù)目前可供選擇的方法很多,文中將使用OpenCV現(xiàn)有的Haar分類(lèi)器進(jìn)行人臉檢測(cè)[8]。
圖像預(yù)處理是人臉情緒識(shí)別過(guò)程中最基礎(chǔ)也是相當(dāng)重要的一部分,在提取圖像中的人臉位置和大小之后,對(duì)截取的人臉圖像進(jìn)行預(yù)處理是很重要的一步,因?yàn)檩斎雸D像的來(lái)源不同,圖像的采集環(huán)境也不一樣,特別容易受噪聲影響。另外圖像采集的時(shí)候人臉離采集器的距離,焦距的大小等因素也會(huì)使得人臉在整幅圖像中的大小位置不確定,在這種情況下必須對(duì)圖像進(jìn)行預(yù)處理。圖像的預(yù)處理分為點(diǎn)運(yùn)算和幾何處理[9]。點(diǎn)運(yùn)算可以改變圖像的直方圖分布,使圖像更加清晰,利于后期的處理。除了點(diǎn)運(yùn)算之外的圖像預(yù)處理就是幾何運(yùn)算,幾何運(yùn)算可以得到人臉位置端正的人臉圖像。通過(guò)點(diǎn)運(yùn)算和幾何運(yùn)算可以得到尺寸、人臉位置統(tǒng)一的標(biāo)準(zhǔn)化人臉圖像。
文中方法是基于模型的方法,使用的是微軟研究院孫劍提出的基于回歸的Explicit Shape Regression(ESR)算法,該算法在人臉特征部位定位方面取得了很好的效果[10]。通過(guò)ESR算法能夠精確定位人臉關(guān)鍵點(diǎn)部位,給后期處理減少了大量的數(shù)據(jù)量。ESR核心內(nèi)容是使用了cascade regression框架以解決對(duì)齊問(wèn)題。孫劍在ESR方法的基礎(chǔ)上做了幾個(gè)擴(kuò)展,使其更為適合做人臉關(guān)鍵點(diǎn)定位,下面對(duì)ESR進(jìn)行介紹[11]。
主要思路:通過(guò)對(duì)輸入訓(xùn)練集最小化對(duì)齊誤差,可以得到一系列的回歸函數(shù),通過(guò)這些函數(shù),可以進(jìn)一步推斷出人臉整體的形狀。
訓(xùn)練過(guò)程:
(1)兩層級(jí)聯(lián)回歸模型,第一層(R1,R2,R3),第二層Rt=(r1,r2,r3) 。
(2)rK是由2F個(gè)回歸組成,F(xiàn)為特征個(gè)數(shù),通過(guò)閾值可以劃分成2F個(gè)bin,每個(gè)bin與一個(gè)回歸輸出δSb相關(guān)。
(1)
(4)訓(xùn)練完成后,應(yīng)該得到T*K*2F個(gè)回歸器:δStkb,t=1,2,…,T,k=1,2,…,k,b=1,2,…,2F。
特征部位識(shí)別如圖2所示。
圖2 特征部位識(shí)別
在圖像處理、模式識(shí)別以及計(jì)算機(jī)視覺(jué)等領(lǐng)域中,Gabor濾波器應(yīng)用廣泛。生物學(xué)科的實(shí)驗(yàn)發(fā)現(xiàn),Gabor濾波器可以很好地近似單細(xì)胞的感受野函數(shù)。Gabor濾波器也成為了少有的適用于計(jì)算機(jī)算法的生物仿生方面的數(shù)學(xué)模型。如圖3所示,第一行代表脊椎動(dòng)物的視覺(jué)皮層感受野,第二行是Gabor濾波器,第三行是兩者時(shí)間的差值,可以看出差值非常小,正是因?yàn)檫@種相似性,Gabor濾波器被用于圖像的分析和處理[12]。
圖3 濾波器
Gabor濾波器公式化定義如下:
復(fù)數(shù)表達(dá):
g(x,y,λ,θ,φ,σ,γ)=
(2)
實(shí)數(shù)部分:
g(x,y,λ,θ,φ,σ,γ)=
(3)
虛數(shù)部分:
g(x,y,λ,θ,φ,σ,γ)=
(4)
其中,λ為正弦函數(shù)的波長(zhǎng);θ為Gabor核函數(shù)的方向;φ為相位偏移;γ為圖像空間的寬高比;b為Gabor濾波器的帶寬值,σ的值隨著帶寬b的變化而變化,這里需要注意的是,b的值必須是正實(shí)數(shù),否則將影響計(jì)算結(jié)果。b的值越小,式子的標(biāo)準(zhǔn)差越大,Gabor形狀就會(huì)越大。
通過(guò)40個(gè)濾波器對(duì)圖像進(jìn)行濾波,若圖像寬高為100*100,維數(shù)將達(dá)到400 000維,這對(duì)后期的表情分類(lèi)會(huì)帶來(lái)很大的麻煩。圖4中的特征向量選取了圖像中29個(gè)特征點(diǎn),一共40*29,1 160維。圖4是針對(duì)同一張臉,選擇不同的Gabor核函數(shù)生成的圖,并將特征點(diǎn)區(qū)域的像素值提取出來(lái)。
提取出來(lái)之后,接下來(lái)就是對(duì)特征進(jìn)行降維處理,維度太高會(huì)影響系統(tǒng)的運(yùn)行速度。文中使用主成分分析算法(principal component analysis,PCA)。PCA算法主要用于數(shù)據(jù)的降維處理,在很多數(shù)據(jù)分析的系統(tǒng)中,數(shù)據(jù)以多維的方式處理,而多維數(shù)據(jù)中,某些數(shù)據(jù)本身沒(méi)有區(qū)分性,如果用這些數(shù)據(jù)進(jìn)行區(qū)分,那么結(jié)果代表性不大[12〗。這些數(shù)據(jù)也成為無(wú)用數(shù)據(jù),因此要做的是找到多維數(shù)據(jù)中那些變化比較大的數(shù)據(jù),變化大小可以通過(guò)數(shù)據(jù)的方差來(lái)辨別,通過(guò)去除這些變化小的數(shù)據(jù),使得留下來(lái)的數(shù)據(jù)都能夠最大限度地表達(dá)原始的數(shù)據(jù)[13]。這樣處理過(guò)的數(shù)據(jù),數(shù)據(jù)維度低了,但是數(shù)據(jù)的原始含義并沒(méi)有發(fā)生變化。
圖4 關(guān)鍵部位的特征值
提取人臉圖像特征向量,對(duì)高維向量進(jìn)行降維之后,接下來(lái)是對(duì)人臉表情進(jìn)行識(shí)別分類(lèi)。在前文的介紹中,表情分類(lèi)方法主要是基于機(jī)器學(xué)習(xí)的人工神經(jīng)網(wǎng)絡(luò)、貝葉斯分類(lèi)、支持向量機(jī)等,文中選用支持向量機(jī)(SVM)。為了使得分類(lèi)結(jié)果更加準(zhǔn)確,將使用LibSVM對(duì)表情進(jìn)行分類(lèi)。LibSVM是林智仁先生編寫(xiě)的SVM軟件,該軟件將SVM方法集合在一起,在很大程度上便于分類(lèi)時(shí)使用SVM的方法。
表情分類(lèi)流程如圖5所示。第一步準(zhǔn)備訓(xùn)練數(shù)據(jù),將數(shù)據(jù)處理成LibSVM的標(biāo)準(zhǔn)格式;第二步訓(xùn)練model,調(diào)整好參數(shù),載入數(shù)據(jù)進(jìn)行訓(xùn)練;第三步利用訓(xùn)練好的model對(duì)樣本數(shù)據(jù)進(jìn)行預(yù)測(cè);最后分析預(yù)測(cè)結(jié)果,與標(biāo)準(zhǔn)結(jié)果進(jìn)行比對(duì)分析。
圖5 表情分類(lèi)過(guò)程
總結(jié)了人臉表情識(shí)別流程,在此基礎(chǔ)上提出了文中的識(shí)別流程。和其他表情識(shí)別過(guò)程不一樣,文中將重點(diǎn)放在表情關(guān)鍵部分。人臉表情主要體現(xiàn)在眼睛、鼻子、嘴巴、眉毛四個(gè)關(guān)鍵部分,通過(guò)對(duì)這四個(gè)關(guān)鍵部分的定位,可以將人臉特征選擇縮小至這些部位中[14]。減少了計(jì)算量,同時(shí)也提高了識(shí)別率。
闡述了人臉情緒識(shí)別研究的意義和背景,對(duì)人臉情緒識(shí)別整個(gè)過(guò)程所使用的算法進(jìn)行分析和總結(jié),并參考了國(guó)內(nèi)外有關(guān)人臉情緒識(shí)別的論文和報(bào)告,對(duì)人臉情緒識(shí)別的算法發(fā)展和現(xiàn)狀進(jìn)行總結(jié),并分析了這些算法的優(yōu)缺點(diǎn)[15]。在此基礎(chǔ)上,提出了一種新的人臉情緒識(shí)別流程,大多數(shù)的人臉情緒識(shí)別算法將重點(diǎn)放在人臉整體上,將人臉整體進(jìn)行分析處理,算法核心是降維處理。
文中使用的人臉關(guān)鍵部位特征提取算法是ESR算法,該算法在人臉特征部位定位方面取得了很好的效果[16]。通過(guò)ESR算法能夠精確定位人臉關(guān)鍵點(diǎn)部位,給后期處理減少了大量的數(shù)據(jù)量。
文中的人臉特征向量選擇采用了Gabor小波,因?yàn)镚abor小波有很好的仿生效果,可以很好地表達(dá)表情的變化[17]。但是考慮到提取出的特征維數(shù)過(guò)高,算法復(fù)雜,耗時(shí)較大,不對(duì)全圖像進(jìn)行特征向量求解,而是針對(duì)人臉關(guān)鍵部位[18]。