張 輝,王 楊,,王子凡,朱強(qiáng)軍,張廣海
(1.安徽師范大學(xué)皖江學(xué)院 電子工程系,安徽 蕪湖 241003;2.安徽師范大學(xué) 計(jì)算機(jī)與信息學(xué)院,安徽 蕪湖 241000)
自20世紀(jì)60年代出現(xiàn)人臉識(shí)別技術(shù)以來(lái),至今已有大半個(gè)世紀(jì)的發(fā)展史。人臉識(shí)別技術(shù)也在人們的生活之中得到了廣泛的應(yīng)用。隨著人工智能技術(shù)的發(fā)展,用智能技術(shù)去識(shí)別生物特征已成為目前最受歡迎的技術(shù)之一。人臉表情蘊(yùn)含著大量的信息,從表情中可以提取出非常豐富的信息,在商業(yè)方面,可以根據(jù)顧客的喜好進(jìn)行商品的推薦;在教育方面,表情識(shí)別可以監(jiān)控學(xué)生在課堂上的狀態(tài),從而達(dá)到更好的教育水平,在交通安全方面,可以監(jiān)控駕駛員的是否疲勞,減少交通事故的發(fā)生。基于人工智能的方法去識(shí)別人臉表情已成為目前的研究熱點(diǎn)。
人臉表情識(shí)別一般包括4步[1]。第1步,進(jìn)行圖像采集,既包括靜態(tài)的采集,也包括動(dòng)態(tài)的采集;第2步,進(jìn)行圖像中人臉的檢測(cè)和定位,目的是定位人臉在圖像中的位置坐標(biāo);第3步,圖像的預(yù)處理,因?yàn)樵诓杉瘓D像的過(guò)程中不可避免地會(huì)有一些噪聲的干擾;第4步,特征提取和通過(guò)分類器進(jìn)行分類。人臉表情識(shí)別技術(shù)的關(guān)鍵在于特征的提取,特征提取的好壞可以直接影響到算法的識(shí)別結(jié)果。人臉表情識(shí)別最早是基于幾何結(jié)構(gòu)的算法、基于隱馬爾克夫法等。目前的主流特征提取有基于局部二值特征模式(local binary patterns,LBP)[2]、基于局部方向的模式(local directional pattern,LDP)[3]、Gabor小波+主成分分析法[4]。隨著深度學(xué)習(xí)的發(fā)展,新的方法不斷出現(xiàn),如基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN)[5-6]、基于生成式對(duì)抗網(wǎng)絡(luò)(wasserstein generative adversarial net,WGAN)[7]等。
本文提出了一種基于Gabor小波和麻雀搜索算法(sparrow search algorithm,SSA)優(yōu)化支持向量機(jī)(SVM)的人臉表情識(shí)別方法。實(shí)驗(yàn)在JAFFE數(shù)據(jù)集和CK+數(shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)試,使用Gabor小波先對(duì)圖像進(jìn)行特征提取,將提取之后的特征輸入到主成分分析法(principal component analysis,PCA)進(jìn)行降維,把降維之后的特征用麻雀優(yōu)化算法優(yōu)化之后在SVM之中進(jìn)行表情分類。麻雀優(yōu)化算法的優(yōu)點(diǎn)是快速而且準(zhǔn)確地搜索到SVM的核函數(shù)參數(shù)c和懲罰參數(shù)g,從而達(dá)到快速訓(xùn)練的目的。通過(guò)實(shí)驗(yàn)和分析得出,本文所提算法在正確率上達(dá)到比較高的程度,在尋優(yōu)速度方面領(lǐng)先于傳統(tǒng)的網(wǎng)格搜索法。
目前,對(duì)數(shù)字圖像的處理主要可以分為兩個(gè)方面,分別為空域和頻域??沼蛞簿褪强臻g域,是指對(duì)圖像進(jìn)行像素級(jí)的處理;頻域是通過(guò)將數(shù)字圖像從像素級(jí)別轉(zhuǎn)換成頻率級(jí)別進(jìn)行分析。頻域分析法在目前的圖像處理技術(shù)中有著廣泛的應(yīng)用,例如,在可以利用頻率成分和圖像外表之間的關(guān)系,將一些空域上很難表述的任務(wù)變得簡(jiǎn)單,濾波在頻率域更加直觀,它可以解釋空間域?yàn)V波的某些性質(zhì)。從空域分析變換成頻域分析就要用到傅里葉變換。傅里葉變換將空域變換成頻域,為圖像的處理提供了一個(gè)新的方法。但是傅里葉變換有很大的局限性,因?yàn)?在對(duì)數(shù)字圖像進(jìn)行變換時(shí)是對(duì)整個(gè)時(shí)域圖像進(jìn)行積分變換,很難關(guān)注到一些局部的變化,導(dǎo)致傅里葉變換很難提取到圖像的邊緣特征,不利于紋理特征的提取。
為了解決傅里葉變換的缺點(diǎn),D·Gabor在1946年提出了Gabor小波變換[8],在變換之中引入了時(shí)間局部變化的窗函數(shù),使圖像的邊緣特征明顯,更加能夠關(guān)注到圖像的局部空間變化,Gabor小波對(duì)圖像的邊緣敏感,能夠提供良好的方向選擇和尺度選擇。設(shè)f為具體的函數(shù),且f∈L2(R),則Gabor變換的定義式為
(1)
(2)
信號(hào)重構(gòu)的表達(dá)式為
(3)
Gabor小波是由Gabor變換推導(dǎo)而來(lái),其中二維的Gabor小波的表達(dá)式為
(4)
式中:γ表示Gabor濾波器的方向;δ表示濾波器的頻率;z表示圖中像素的坐標(biāo);σ表示濾波器的方向;i是算子,為復(fù)數(shù)。
麻雀搜索算法是2020年XUE et al[9]提出的一種智能優(yōu)化算法。算法主要模擬麻雀的覓食行為和反捕食行為。算法比較新穎,具有尋優(yōu)能力強(qiáng),收斂速度快等特點(diǎn)。主要的規(guī)則如下:
該算法將麻雀的種群按個(gè)體在種群中的分工分為發(fā)現(xiàn)者和跟隨者。
1)發(fā)現(xiàn)者通常在種群中儲(chǔ)存較高的能量,負(fù)責(zé)在整個(gè)種群中尋找食物豐富的區(qū)域,并為所有參與者提供覓食的區(qū)域和方向。在建立模型時(shí),能量?jī)?chǔ)備的高低取決于個(gè)體麻雀的適應(yīng)度值。
2)當(dāng)麻雀發(fā)現(xiàn)捕食者時(shí),個(gè)體麻雀會(huì)發(fā)出警報(bào)信號(hào)。如果報(bào)警值高于安全值,發(fā)現(xiàn)者會(huì)將跟隨者帶到另一個(gè)安全的地方進(jìn)行覓食。
3)發(fā)現(xiàn)者和追隨者的身份是動(dòng)態(tài)不固定的。只要能找到更好的食物來(lái)源,每只麻雀?jìng)€(gè)體都可以成為發(fā)現(xiàn)者,但發(fā)現(xiàn)者和追隨者在整個(gè)種群中的比例保持不變。換句話說(shuō),當(dāng)一只麻雀?jìng)€(gè)體成為發(fā)現(xiàn)者時(shí),另一只麻雀?jìng)€(gè)體成為追隨者。
2.1.1發(fā)現(xiàn)者位置更新
(5)
2.1.2更新跟隨者位置
(6)
2.1.3偵查預(yù)警行為
(7)
麻雀優(yōu)化算法主要是不斷的迭代更新發(fā)現(xiàn)者和跟隨者的位置,最終找到全局的最優(yōu)值,本算法的主體流程如圖1所示。
圖1 麻雀搜索算法優(yōu)化流程
主成分分析法(PCA)是一種對(duì)多維特征進(jìn)行降維的算法。在用SVM分類器對(duì)數(shù)據(jù)進(jìn)行分類之前,如果輸入的特征維度較高,就要對(duì)特征的維度進(jìn)行降維。PCA就是目前應(yīng)用最為廣泛的數(shù)據(jù)降維算法。
PCA算法的主要思想是將在特征中關(guān)系可能比較緊密的變量,通過(guò)計(jì)算將其變成盡可能少的變量,這些新的變量能夠最大程度地保留原來(lái)的特征,去除原來(lái)的冗余特征,使維度變低,減少樣本的存儲(chǔ)空間,能夠加速計(jì)算速度,減少訓(xùn)練模型出現(xiàn)過(guò)擬合的情況。
支持向量機(jī)(SVM)是一種有監(jiān)督方式的機(jī)器學(xué)習(xí)算法。機(jī)器學(xué)習(xí)算法是能夠按照監(jiān)督的方式很好地完成二分類的廣義線性分類器。SVM是在特征空間中最大化間隔的線性分類器。將SVM進(jìn)行推廣即可以完成數(shù)據(jù)線性不可分的問(wèn)題。首先,SVM通過(guò)選擇一個(gè)核函數(shù)K,將低維的非線性數(shù)據(jù)映射到高維的空間中。在高維空間中完成線性分割,構(gòu)造出最優(yōu)分類超平面。
核函數(shù)是計(jì)算兩個(gè)向量在隱式空間映射后空間中的內(nèi)積函數(shù)。核函數(shù)的定義為
φ(x)X→H
(8)
式中:X為輸入特征;H為映射之后的希爾伯特空間特征。使所有的x,y∈X函數(shù)K(x,y)=φ(x)φ(z),則K(x,y) 為核函數(shù);φ(x) 為映射函數(shù);φ(x),φ(y)為x,y映射到特征空間的內(nèi)積。
目前主要的核函數(shù)有:
線性核函數(shù),主要用來(lái)解決線性可分的數(shù)據(jù),直接在原始空間進(jìn)行分類,對(duì)于線性可分?jǐn)?shù)據(jù),其表現(xiàn)良好;多項(xiàng)式核函數(shù),可以將低維的輸入特征空間映射到高維的輸入特征空間,比較適用于正交歸一化的數(shù)據(jù);高斯核函數(shù),是一個(gè)局部性很強(qiáng)的核函數(shù),目前應(yīng)用非常廣泛。
本實(shí)驗(yàn)采用高斯核函數(shù)。
高斯核函數(shù)也稱徑向基函數(shù),其定義式為
(9)
式中:x′ 為核函數(shù)中心;x-x′2為x和x′ 的歐式距離,值隨兩個(gè)向量之間的距離增加而增加;σ2控制著核函數(shù)的作用范圍。核函數(shù)無(wú)論是在大樣本還是小樣本數(shù)據(jù)中都有著很廣泛的應(yīng)用。
SVM中的核函數(shù)參數(shù)c與懲罰參數(shù)g會(huì)直接影響SVM分類器的分類性能。核函數(shù)參數(shù)c過(guò)大,會(huì)造成模型結(jié)構(gòu)復(fù)雜,容易出現(xiàn)過(guò)擬合;核函數(shù)參數(shù)過(guò)小,會(huì)造成模型結(jié)構(gòu)過(guò)于簡(jiǎn)單,對(duì)樣本的擬合能力就會(huì)下降。而懲罰參數(shù)g過(guò)大或過(guò)小,都會(huì)在測(cè)試時(shí)導(dǎo)致泛化能力下降。因此選擇一對(duì)合適的核函數(shù)參數(shù)c與懲罰參數(shù)g是SVM分類器分類性能高低的關(guān)鍵。使用SSA優(yōu)化SVM就是對(duì)SVM的核函數(shù)參數(shù)c與懲罰參數(shù)g進(jìn)行尋優(yōu)。算法主要步驟如下:
1)初始化麻雀種群規(guī)模的總數(shù),確定最大迭代次數(shù),分配發(fā)現(xiàn)者和跟隨者的比例,并確定需要優(yōu)化參數(shù)的個(gè)數(shù)及每個(gè)參數(shù)的上限1、上限2,下限1、下限2。
2)計(jì)算種群之中每個(gè)麻雀的適應(yīng)度,并為其分配種類。
3)根據(jù)公式(5)-公式(7),對(duì)麻雀種群進(jìn)行位置更新,并重新計(jì)算每個(gè)麻雀的適應(yīng)度,重新分配麻雀種類。
4)是否達(dá)到最大迭代次數(shù),若未達(dá)到繼續(xù)執(zhí)行步驟3,若達(dá)到則結(jié)束迭代。
5)計(jì)算種群中最優(yōu)位置的適應(yīng)度,所對(duì)應(yīng)的位置就為最優(yōu)的核函數(shù)參數(shù)c與懲罰參數(shù)g。
本文采用的數(shù)據(jù)集為JAFFE和CK+人臉表情數(shù)據(jù)庫(kù)。
JAFFE數(shù)據(jù)集一共有213張圖片,分別來(lái)自10名日本女學(xué)生。每人做出7種表情,分別為憤怒、厭惡、恐懼、高興、悲傷、驚訝、中性。每種表情的數(shù)量分布如表1所示。
表1 JAFFE每種表情的數(shù)量分布
CK+數(shù)據(jù)集[10]由123名年齡從18歲到30歲的參與者組成,共593張圖片序列。7種表情分別為憤怒、厭惡、恐懼、高興、悲傷、驚訝、蔑視。本實(shí)驗(yàn)從每次序列中提取最后3個(gè)幀,共981張圖片。每種表情的數(shù)量分布如表2所示。
表2 CK+每種表情的數(shù)量分布
采用MATLAB R2021a進(jìn)行實(shí)驗(yàn),在Intel(R) Core(TM) i5-7300HQ 2.50 GHz,8 GB內(nèi)存,win10的設(shè)備上進(jìn)行。
本文結(jié)合Gabor小波、麻雀搜索算法、快速主成分分析法、支持向量機(jī)技術(shù),完成對(duì)7種人臉表情的分類。通過(guò)Gabor小波技術(shù)先進(jìn)行圖片紋理特征提取,之后,通過(guò)快速主成分分析法進(jìn)行降維,將降維之后的數(shù)據(jù)輸入SVM分類器。將人臉?lè)诸惼鞣譃閮山M,一組用于訓(xùn)練,剩下的用于測(cè)試。算法的主要步驟如下:
1)完成人臉表情數(shù)據(jù)庫(kù)的訓(xùn)練集和測(cè)試集的分類,將訓(xùn)練集輸入Gabor小波進(jìn)行紋理提取,每個(gè)Gabor小波提取的特征有1 440維。
2)由于Gabor小波提取出的特征過(guò)高,不能直接輸入SVM分類器進(jìn)行分類。將提取出的特征輸入主成分分析法進(jìn)行降維。
3)將降維之后的特征輸入經(jīng)過(guò)麻雀搜索算法優(yōu)化后的SVM分類器進(jìn)行分類。
重復(fù)1) 和2) 兩個(gè)步驟,調(diào)整測(cè)試集和訓(xùn)練集的比例和主成分分析法的維度。
實(shí)驗(yàn)總體流程如圖2所示。
圖2 實(shí)驗(yàn)總體流程圖
JAFFE數(shù)據(jù)集中劃分的數(shù)量比例為7∶3或8∶2,每張圖片的維度從5維開(kāi)始。測(cè)試的結(jié)果如表3所示。
表3 JAFFE數(shù)據(jù)集測(cè)試結(jié)果
由表3數(shù)據(jù)可知,當(dāng)JAFFE數(shù)據(jù)集的訓(xùn)練集和測(cè)試集的比例達(dá)到8∶2且維度達(dá)到30維時(shí)可以到達(dá)最佳的識(shí)別率90%,當(dāng)維度達(dá)到30時(shí),正確率不再上升。達(dá)到最高識(shí)別率時(shí)測(cè)試集的識(shí)別情況如圖3所示。
圖3 JAFFE數(shù)據(jù)集的最高識(shí)別率圖
CK+數(shù)據(jù)集中訓(xùn)練集和測(cè)試集劃分的數(shù)量比例為7∶3或8∶2,每張圖片的維度降到5維開(kāi)始。每次測(cè)試的平均正確率如表4所示。
表4 CK+數(shù)據(jù)集測(cè)試結(jié)果
由表4可知,訓(xùn)練集和測(cè)試集比例為7∶3或8∶2時(shí)都有較高的識(shí)別率,當(dāng)比例為7∶3、維度為15維時(shí),最高識(shí)別率可達(dá)97%。當(dāng)訓(xùn)練集和測(cè)試集的比例達(dá)到8∶2時(shí),在25維就可以達(dá)到平均99%的準(zhǔn)確率。在CK+數(shù)據(jù)集上的表現(xiàn)較為優(yōu)越。當(dāng)CK+數(shù)據(jù)集達(dá)到最高識(shí)別率時(shí),測(cè)試集的識(shí)別情況如圖4所示。
圖4 CK+數(shù)據(jù)集的最高識(shí)別率圖
由表3和表4可知,本文算法在JAFFE數(shù)據(jù)集上的識(shí)別率最高可以達(dá)到90.69%,在CK+數(shù)據(jù)集上的識(shí)別率最高可達(dá)99%。
3.4.1算法尋優(yōu)時(shí)間對(duì)比
在JAFFE數(shù)據(jù)集上選取訓(xùn)練集和數(shù)據(jù)集之比為8∶2、主成分分析法降維到35維時(shí),將本文所提麻雀搜索算法(SSA)和傳統(tǒng)網(wǎng)格搜索算法優(yōu)化的SVM進(jìn)行比較。設(shè)置傳統(tǒng)網(wǎng)格搜索算法的搜索步長(zhǎng)為0.2,將麻雀搜索算法和傳統(tǒng)網(wǎng)格搜索算法的時(shí)間進(jìn)行比較,兩個(gè)算法的平均尋優(yōu)時(shí)間如表5所示。
表5 算法尋優(yōu)時(shí)間的對(duì)比
從表5可以看出,本文所采用的麻雀搜索優(yōu)化算法與傳統(tǒng)的網(wǎng)格小步長(zhǎng)搜索算法相比,在尋優(yōu)間上大幅度領(lǐng)先。
3.4.2算法識(shí)別率對(duì)比
將本文算法與已有的機(jī)器學(xué)習(xí)算法進(jìn)行對(duì)比,在JAFFE數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),訓(xùn)練集與測(cè)試集的劃分為8∶2,PCA將Gabor小波提取的特征降維到30維,如表6所示,可以看出本文所提算法在正確率上較為有優(yōu)勢(shì)。
表6 算法識(shí)別率對(duì)比
針對(duì)傳統(tǒng)支持向量機(jī)的網(wǎng)格搜索算法尋優(yōu)速度慢,提出了一種采用SSA優(yōu)化SVM的策略。先對(duì)數(shù)據(jù)集采用Gabor小波提取特征,將提取的特征經(jīng)PCA降維之后,輸入到經(jīng)SSA優(yōu)化后得到核函數(shù)參數(shù)c與懲罰參數(shù)g的SVM中進(jìn)行分類。實(shí)驗(yàn)結(jié)果表明,本文算法在JAFFE數(shù)據(jù)集上平均可以達(dá)到90% 左右的識(shí)別率;在 CK+ 圖片序列數(shù)據(jù)集上最高可達(dá)100% 的正確率。將本文所提算法在JAFFE數(shù)據(jù)集上與傳統(tǒng)網(wǎng)格搜索算法對(duì)比,其在尋優(yōu)時(shí)間上優(yōu)勢(shì)明顯。在今后的研究中,還可以針對(duì)麻雀搜索算法進(jìn)行優(yōu)化改進(jìn),根據(jù)其在尋優(yōu)過(guò)程中種群數(shù)量減少等問(wèn)題,增加其尋優(yōu)能力,或者使用特征融合策略進(jìn)一步提高正確率。