胡 寧,劉振宇
(沈陽工業(yè)大學(xué)信息科學(xué)與工程學(xué)院,沈陽110870)
面部表情是由人臉肌肉的運(yùn)動(dòng)形成的,是情感變化在面部可觀察到的表現(xiàn)[1]。面部表情的變化能顯示人的心理活動(dòng),調(diào)整人之間的社會(huì)行為。隨著服務(wù)機(jī)器人產(chǎn)業(yè)的興起,模式識(shí)別走進(jìn)大眾視野,人們對表情的研究也逐漸增多[2]。其中笑臉識(shí)別技術(shù)被廣泛應(yīng)用于機(jī)器人視覺及數(shù)碼相機(jī)等智能設(shè)備。
近年來研究學(xué)者提出了多種笑臉檢測的方法,例如深圳華為技術(shù)有限公司獲得了笑臉檢測發(fā)明專利權(quán),其原理主要是通過獲取到的人臉視頻中嘴部的運(yùn)動(dòng)信息來判斷是否檢測到笑臉;何聰[3]利用一種高層次仿真生物視覺方法來實(shí)現(xiàn)笑臉的識(shí)別與分類,該方法主要基于生物啟發(fā)特征來進(jìn)行笑臉的特征提取和分類;陳俊研究了基于生物啟發(fā)特征的真實(shí)環(huán)境下的笑臉識(shí)別,構(gòu)造了一個(gè)符合人類識(shí)別機(jī)制的笑臉分類系統(tǒng)[4];郭禮華等人利用分層梯度方向直方圖(PyramidHistogramofOrientedGradients,PHOG)特征與聚類特征選擇進(jìn)行笑臉識(shí)別[5];嚴(yán)新平融合局部二值模式(LOCAL Binary Patterns,LBP)特征與HOG特征來進(jìn)行笑臉識(shí)別研究[6]。
采用Viola-Jones算法來檢測人臉,可將人臉部分提取出來,采用HOG和Gabor兩種特征提取方法提取圖片特征,并送入支持向量機(jī)(support vector machine,SVM)進(jìn)行訓(xùn)練。通過觀察訓(xùn)練樣本中的不同表情,發(fā)現(xiàn)嘴唇的形狀變化最能代表不同表情。同時(shí)嘴唇外周的特征例如法令紋等,則不是十分清晰,不同的圖片效果差異很大,不適合作為判斷表情的標(biāo)準(zhǔn)。通過對嘴部特征點(diǎn)擬合曲線進(jìn)行分析發(fā)現(xiàn),笑臉的擬合曲線會(huì)產(chǎn)生明顯的弧度并且擬合曲線兩個(gè)端點(diǎn)縱坐標(biāo)的平均值較小,而其他表情的擬合曲線則接近一條水平線且擬合曲線兩個(gè)端點(diǎn)縱坐標(biāo)的平均值較大。故此提出一種基于嘴角坐標(biāo)平均值變化的笑臉識(shí)別方法,該方法通過對嘴角坐標(biāo)的計(jì)算,可以準(zhǔn)確識(shí)別笑臉表情。圖1為其主要工作流程。
圖1 笑臉識(shí)別流程
檢測采用Viola-Jones算法來識(shí)別人臉和嘴部。該算法是由Paul viola和Michael J.Jones共同提出的一種人臉檢測框架。它極大地提高了人臉檢測的速度和準(zhǔn)確率。該算法利用積分圖像來提取圖像特征值,利用adaboost分類器的特征篩選特性,保留最有用特征,從而有效減少了檢測時(shí)的運(yùn)算復(fù)雜度,提升了運(yùn)算速度。同時(shí)將adaboost分類器進(jìn)行改造,變成級聯(lián)adaboost分類器,提高了人臉檢測的準(zhǔn)確率[7]。
Viola-Jones算法采用haar-like特征提取方法。Haar-like是由許多黑白塊組成的,分別將白色和黑色區(qū)域中的所有像素相加,然后做差,就是區(qū)域的特征值,即:
但是考慮到多尺度問題,即利用不同大小的掃描窗口去檢測不同大小的人臉的問題,這個(gè)特征需要進(jìn)行歸一化處理。首先選定檢測窗口的大小,利用這個(gè)窗口對整個(gè)圖像進(jìn)行滑動(dòng),每滑動(dòng)到一個(gè)位置,就在窗口中提取一系列haar-like特征。由于哈爾特征極多,而這些特征中只有一小部分是有用的,所以采用adaboost分類器進(jìn)行特征選擇。adaboost分類器的原理就是構(gòu)造一個(gè)由多個(gè)弱分類器并聯(lián)而成的強(qiáng)分類器,每個(gè)弱分類器都根據(jù)自己的準(zhǔn)確率將自己的分類結(jié)果乘以權(quán)值,最后的輸出是所有弱分類器輸出的加權(quán)和。每個(gè)弱分類器的分類準(zhǔn)確率可以很低,但是整個(gè)強(qiáng)分類器的準(zhǔn)確率卻會(huì)很高[8]。圖2為采用Viola-Jones算法提取的人臉部分和嘴唇部分。
圖2 對人臉和嘴部進(jìn)行檢測提取
方向梯度直方圖(Histogram of Oriented Gradient,HOG)特征是一種在計(jì)算機(jī)視覺和圖像處理中用來進(jìn)行物體檢測的特征描述子。它通過計(jì)算和統(tǒng)計(jì)圖像局部區(qū)域的梯度方向直方圖來構(gòu)成圖像特征[9]。
HOG特征提取過程如下,首先要對上述裁剪出來的圖片進(jìn)行Gamma校正來彌補(bǔ)圖像光照不均勻的問題。采用平方根的辦法進(jìn)行Gamma標(biāo)準(zhǔn)化,對標(biāo)準(zhǔn)化后的圖像,求取其梯度及梯度方向。采用的水平和垂直方向的梯度算子為:
然后用水平和垂直梯度算子對原圖像做卷積運(yùn)算,得到χ方向(水平方向,以向右為正方向)的梯度分量 Gχ(χ,y)和y方向(豎直方向,以向上為正方向)的梯度分量 Gy(χ,y),具體為:
式中H(χ,y)表示輸入圖像中像素點(diǎn)(χ,y)處的像素值。將這兩個(gè)方向的梯度分量帶入下式中即可得到該點(diǎn)的梯度大小和方向:
然后將圖像劃分成若干個(gè)cells(單元),相鄰的cell之間不重疊。在每個(gè)cell內(nèi)統(tǒng)計(jì)梯度方向直方圖[5]。
隨后分別對每個(gè)block進(jìn)行標(biāo)準(zhǔn)化,一個(gè)block內(nèi)有4個(gè)cell,每個(gè)cell含有一個(gè)9維特征向量,故每個(gè)block就由4×9=36維特征向量來表征。將所有block的HOG特征結(jié)合在一起形成整個(gè)圖片的HOG特征向量。圖3為臉部HOG特征直方圖。
圖3 臉部HOG特征直方圖
Gabor變換屬于加窗傅立葉變換。Gabor函數(shù)可在頻域不同尺度、不同方向上提取圖片特征。Gabor濾波器的頻率和方向類似于人類的視覺系統(tǒng),所以常用于紋理識(shí)別[10]。在空間域,二維Gabor濾波器是一個(gè)高斯核函數(shù)和正弦平面波的乘積,其復(fù)數(shù)形式為:
公式中:λ是正弦函數(shù)波長,θ是Gabor核函數(shù)的方向,φ是相位偏移,σ是高斯函數(shù)的標(biāo)準(zhǔn)差,γ是空間的寬高比。式(7)和式(8)分別為濾波器的實(shí)部和虛部[11]。
首先生成5個(gè)尺度和8個(gè)方向的Gabor模板,共計(jì)40個(gè)模板,這些模板與樣本圖像無關(guān)。然后利用每一個(gè)模板與樣本圖像做一次卷積運(yùn)算,得到對應(yīng)的40個(gè)卷積圖像;不同尺度不同方向的Gabor模板對同一幅圖像生成了不同視圖的數(shù)據(jù),類似于不同的觀察角度產(chǎn)生了不同的特征數(shù)據(jù),圖4表示了這樣的一組臉部Gabor特征。每一個(gè)卷積后的樣本圖像矩陣是9行1列的,連接在一起就是360行一列的Gabor特征值。本研究共有100張訓(xùn)練樣本,將所有Gabor特征值組合成一個(gè)360×100的矩陣,每一列代表一個(gè)圖片的Gabor特征。
圖4 臉部Gabor特征
支持向量機(jī)(簡稱SVM)是一種新型的機(jī)器學(xué)習(xí)方法,其主要功能是分類和回歸[12]。SVM是由兩類線性可分情況下的最優(yōu)分類面發(fā)展起來的。圖5為二維線性可分的情況,其中f(χ)為分類線,f(χ1)和f(χ2)分別為過兩類樣本中離分類線最近的點(diǎn)且平行于f(χ)的直線,f(χ1)和f(χ2)之間的距離稱為兩類的分類間隔。
圖5 SVM二分類示意圖
SVM的基本思想是尋找一個(gè)可以將兩類樣本分開的最優(yōu)分類線,使得分類間隔最大。設(shè)判別函數(shù)為:
當(dāng)f(χ)=W·χ+b的時(shí)候,即為決策邊界,f(χ1)和f(χ2)上的樣本稱為支持向量。對判別函數(shù)進(jìn)行歸一化后兩類樣本都滿足,分類間隔為,滿足的樣本就是f(χ1)和f(χ2)上的支持向量。
因此在支持向量機(jī)的訓(xùn)練過程中,主要目的是獲得W,一旦有了一個(gè)訓(xùn)練后的支持向量機(jī)(這個(gè)向量機(jī)保證了最大的邊緣超平面,使得在此數(shù)據(jù)集下有較好的分類精度),就可以對線性可分的數(shù)據(jù)進(jìn)行分類[12]。對于線性不可分的數(shù)據(jù),會(huì)添加約束條件進(jìn)行計(jì)算。
通過以下兩式可將求W的問題轉(zhuǎn)化為求解拉格朗日乘子αp的問題,通過對拉格朗日方程求偏導(dǎo)可以得到兩個(gè)約束條件,進(jìn)而求解出αp:
嘴角坐標(biāo)法首先采用Shi&Tomasi算法對嘴部特征點(diǎn)進(jìn)行檢測,該算法是Harris算法的改進(jìn)。Harris角檢測器由于能夠檢測已旋轉(zhuǎn)、縮放、有照明差異或噪聲較大的圖像中的角點(diǎn)而被廣泛應(yīng)用。Harris算法最原始的定義是將矩陣行列式的值與矩陣特征值的和相減,再將差值同預(yù)先給定的閾值進(jìn)行比較[13]。后來Shi和Tomasi提出了改進(jìn)的方法,若兩個(gè)特征值中較小的一個(gè)大于最小閾值,則會(huì)得到強(qiáng)角點(diǎn)。
設(shè)角點(diǎn)檢測響應(yīng)為RH,對于一個(gè)輸入圖像來說有:
上述四式中α和β為矩陣的特征值,M是一個(gè)矩陣,M中的三個(gè)矩陣元素如下:
當(dāng)某像素屬于一個(gè)角時(shí),該檢測器輸出RH>0;當(dāng)像素屬于邊緣的一部分時(shí),RH<0。
利用Shi&Tomasi算法檢測出嘴部的角點(diǎn)特征后,對這些特征值進(jìn)行一系列的整合和運(yùn)算,得到笑與不笑之間的分界值Pavg,通過這個(gè)值對測試庫中的圖片進(jìn)行分類,分類操作的流程如圖6所示。
圖6 嘴角坐標(biāo)法流程圖
算法具體過程如下:對于訓(xùn)練階段來說,首先通過Shi&Tomasi算法檢測出嘴部特征點(diǎn),如圖7所示;然后計(jì)算嘴角部分特征點(diǎn)的數(shù)量,并對這些點(diǎn)進(jìn)行處理,去除掉在一個(gè)位置上重復(fù)的點(diǎn);根據(jù)這些點(diǎn)的坐標(biāo)畫出特征點(diǎn)擬合曲線。
圖7 檢測嘴部特征點(diǎn)
曲線擬合采用二階拋物線擬合,基于最小二乘法曲線擬合原理,即已知離散的數(shù)據(jù)集,構(gòu)造一個(gè)函數(shù),使原離散點(diǎn)盡可能接近給定的值。最小二乘法是通過最小化誤差的平方和,尋找數(shù)據(jù)的最佳匹配函數(shù),如下式所示:
通過對上述二式進(jìn)行計(jì)算,可以得到嘴部特征點(diǎn)的擬合曲線,如圖8所示為笑嘴的角點(diǎn)擬合曲線,圖9則為非笑嘴的角點(diǎn)擬合曲線。再將擬合曲線左右端點(diǎn)的值定義為左右嘴角的特征值,求這兩個(gè)點(diǎn)縱坐標(biāo)的均值,按此規(guī)則操作,得到所有笑臉及非笑臉嘴角特征點(diǎn)的縱坐標(biāo)均值。圖10即為訓(xùn)練樣本縱坐標(biāo)均值分布曲線。
圖8 笑嘴的角點(diǎn)擬合曲線
圖9 非笑嘴的角點(diǎn)擬合曲線
圖10 訓(xùn)練樣本縱坐標(biāo)均值分布曲線
通過計(jì)算發(fā)現(xiàn),笑臉的角點(diǎn)縱坐標(biāo)均值最大為105,非笑臉的縱坐標(biāo)均值最小為110,因此設(shè)Pavg=108作為判斷圖片是否為笑臉的條件。在測試階段,如果測試圖像左右嘴角的縱坐標(biāo)均值大于108,則該圖片被判定為非笑臉;如果小于108,則為笑臉。經(jīng)過測試,該方法的準(zhǔn)確率達(dá)到了92%。
實(shí)驗(yàn)采用Matlab軟件進(jìn)行程序編寫及測試,訓(xùn)練圖片為100張,其中包含50張笑臉圖片,全部來自GENKI笑臉數(shù)據(jù)庫,50張非笑臉圖片,測試圖片100張,包含多種表情,非笑臉圖片和測試圖片皆來自網(wǎng)絡(luò)搜索。如圖11和圖12即為截取出的部分人臉圖片,從中可以看出Viola-Jones算法對于檢測截取人臉某一部分圖片的效果非常好。
將截取出來的圖片進(jìn)行尺寸歸一化,嘴部圖片尺寸設(shè)置為18×18像素,單個(gè)嘴部的Gabor特征為一個(gè)360×1的矩陣,HOG特征為一個(gè)1×15的矩陣。應(yīng)用于Gabor特征提取的臉部圖片設(shè)置為88×88像素,每一個(gè)圖片的Gabor特征為一個(gè)360×1的矩陣,應(yīng)用于HOG特征提取的臉部圖片設(shè)置為96×96像素,HOG特征為一個(gè)1×1215的矩陣。
圖11 臉部截取
圖12 嘴部截取
將所有用于訓(xùn)練的圖片特征進(jìn)行交叉組合得到訓(xùn)練總矩陣,將這個(gè)矩陣中代表笑臉圖片特征的標(biāo)簽設(shè)為1,代表非笑臉圖片特征的標(biāo)簽設(shè)為2,輸入到SVM進(jìn)行訓(xùn)練。用同樣的方法求出測試庫的特征,利用訓(xùn)練好的SVM進(jìn)行分類。
基于角點(diǎn)檢測的嘴角坐標(biāo)法按照上述步驟處理,得到分類平均值為108,然后對測試庫中的圖片進(jìn)行測試。表1為本方法的正確率。可以看出,嘴角坐標(biāo)法的正確率高于Gabor和HOG方法。
表1 不同算法的正確率
采用HOG和Gabor這兩種特征提取方法來提取臉部特征,送到SVM進(jìn)行分類識(shí)別,從而提出一種基于嘴角特征點(diǎn)的微笑檢測方法。對于特征提取來說,提取嘴部的特征比提取整個(gè)臉部特征速度更快,而且數(shù)據(jù)量比較小,冗余數(shù)據(jù)就相對較少,這會(huì)使分類的準(zhǔn)確率得到提升。通過融合不同的特征進(jìn)行測試發(fā)現(xiàn),提取嘴部Gabor特征的正確率最高,達(dá)到了90%,而基于嘴角坐標(biāo)的算法正確率為92%,高于融合不同特征進(jìn)行分類的正確率。在今后的研究中,可以嘗試在角點(diǎn)坐標(biāo)平均值的基礎(chǔ)上,通過計(jì)算嘴部張開的面積等方法來進(jìn)一步細(xì)分笑的程度。