葉繼華 劉 燕 李漢曦 甘 熒
(江西師范大學(xué)計算機信息工程學(xué)院,南昌,330022)
人臉表情識別技術(shù)是涉及生物特征識別、圖像處理、運動跟蹤、機器視覺、模式識別、生理學(xué)、心理學(xué)等研究領(lǐng)域的一個富有挑戰(zhàn)性的交叉課題,是多年以來模式識別與人工智能領(lǐng)域研究的一個熱點問題[1]。
人臉表情識別發(fā)展較晚,目前還不夠成熟,運用較成熟的數(shù)據(jù)集有日本Advanced Telecommuni?cation Research Institute International(ATR)的專門用于表情識別研究的基本表情數(shù)據(jù)庫JAFFE和Cohn-kanade表情數(shù)據(jù)庫(CK),以及Lucey等人在2010改進的數(shù)據(jù)集CK+,但是這幾個數(shù)據(jù)集信息比較單一并且圖像數(shù)量比較少,如果用于深度學(xué)習(xí)的表情識別中遠遠不夠,而且數(shù)據(jù)集都是在實驗室條件下采集的表情圖像。為配合表情研究,實驗室自建了一個圖像數(shù)量更多且表情類別更豐富(10種表情)的自然場景下人臉表情數(shù)據(jù)集(Facial expression datasets in the wild,F(xiàn)ELW)。
FELW數(shù)據(jù)集包含26 848張人臉圖像,每張圖像帶有人臉部件的狀態(tài)標簽和表情標簽兩種標簽。下面簡單介紹FELW數(shù)據(jù)集的構(gòu)建過程,數(shù)據(jù)集構(gòu)建分為收集人臉表情圖像和標注兩個階段。
1.1.1 收集人臉表情圖像
在互聯(lián)網(wǎng)上批量下載30萬張自然場景下的人臉圖像;然后采用自動人臉檢測程序,獲得了將26 848張人臉圖像;最后裁剪其灰度化成120像素×120像素的灰度圖,得到未帶標簽的FELW的原始圖像。圖1是數(shù)據(jù)集部分原始表情圖像。
1.1.2 標注
這個階段是對灰度圖標注,標注內(nèi)容包括了人臉部件的狀態(tài)標簽(Part_Label)和表情標簽(Emo?tion_Label)兩種標簽。
Part_Label,包含了眉、眼、嘴、鼻、肌肉五大類。Emotion_Label,包含 10類表情,分別為平(中性)、喜(高興)、怒(生氣)、哀(悲傷)、驚(驚訝)、恐(恐懼)、惡(厭惡)、羞(害羞)、傲(傲慢)、鄙視。FELW 標注是用MATLAB中的GUI設(shè)計界面的,將原始表情圖像分成多組,每組由一個人標注,F(xiàn)ELW的標簽標注界面實例如圖2所示。
因為人在各種表情下面部各個部件的狀態(tài)變化大多數(shù)比較細微,有時候會達到很難辨別的程度。因此需要對所選定的5個面部部件的狀態(tài)進行標準的設(shè)定。對眉毛來講,設(shè)定5個狀態(tài),分別為正常,彎眉、皺眉、眉毛上豎和平直。對眼睛同樣設(shè)置5個狀態(tài),分別為正常、眼瞇、眼向下(可通過觀察上眼皮是否下垂來輔助判斷)、瞪眼和眼向上(可通過觀察眼球是否朝上輔助判斷);嘴巴則設(shè)置了6個狀態(tài),分別為正常、上翹(通過觀察嘴巴是否上揚輔助判斷)、嘴向下(通過觀察嘴部形成的弧線是否朝下進行輔助判斷)、張嘴(通過觀察嘴巴是否張開或形成一個O形進行輔助判斷)、咬牙(在能看到牙齒的情況下,觀察待標注圖像中的對象是否咬牙切齒)和撅嘴(嘟嘴或撅嘴);鼻子只設(shè)置了4個狀態(tài),分別為正常、鼻孔收縮(通過觀察鼻頭部分的肌肉是否緊繃進行輔助判斷)、鼻孔張大(通過觀察鼻頭部分的肌肉是否舒張進行輔助判斷)和鼻聳(通過觀察鼻根部分是否緊縮進行判斷);肌肉則只設(shè)定3個狀態(tài),分別為正常、緊繃(通過結(jié)合觀察待標注對象是否痛苦和直接觀察其肌肉是否緊繃進行輔助判斷)和放松(通過觀察待標注對象肌肉是否舒張或傳達的表情是否歡喜而進行輔助判斷)[2]。圖2的左邊是Part_Label部分,Part_Label是一組1×5的向量;右邊是Emotion_Label部分,使用的是軟標簽形式,有10組表情,每組表情都可以進行打分,打分區(qū)間在1~5,分數(shù)越高表示該表情的概率越大。當判斷不出任何表情或者臉上被遮擋時,直接對表情打6分,表示該圖像不屬于任何表情。最終得到的EmotionLabel是一組1×10的向量。FELW是一個包含了26 848張120×120的灰度人臉圖像和其對應(yīng)的Part_Label和Emotion_Label信息的數(shù)據(jù)集,這就是自然場景下帶標簽的人臉表情數(shù)據(jù)集。
圖1 FELW數(shù)據(jù)集部分表情圖像Fig.1 FELW partial expression image of data set
圖2 GUI界面標注實例Fig.2 GUIinterface annotation instance
建立FELW數(shù)據(jù)集后,采用傳統(tǒng)方法和深度學(xué)習(xí)方法進行實驗,F(xiàn)ELW數(shù)據(jù)集使用傳統(tǒng)方法的最高識別率是65.01%,使用深度學(xué)習(xí)的人臉表情識別方法最高識別率是56.53%,最好的實驗結(jié)果相對于先研究的數(shù)據(jù)集實驗結(jié)果來說識別率仍然不高。通過對實驗結(jié)果的分析,發(fā)現(xiàn)原數(shù)據(jù)集存在以下不足:
(1)圖像并不全是正臉,直接用這樣的圖像進行表情識別的識別率不會高。
(2)Part_Label部分不合理。FELW的Part_Label部分有一些部件有主很難判斷的標簽,對于標注者來說,“鼻”和“肌肉”部分的細節(jié)很難在一張灰度圖中區(qū)分。很難判斷“鼻”的正常表情,收縮、張大,聳;同樣也難以判斷“肌肉”的松弛、緊繃。同時可以去掉一些重復(fù)的狀態(tài),“眉”部分的正常表情和彎(眉彎)可以合并成一個狀態(tài),因為大部分人的眉毛在正常情況下就是彎的?!把邸辈糠值奶厥庑螤?,向上(眼向上),向下(眼向下)部分也難以判斷?!白臁辈糠值摹罢!笨梢匀サ?,因為大部分人的嘴巴在正常情況下就是上翹或者下垂的,與第二第三狀態(tài)重合。
(3)每個Emotion_Label都需要打分太復(fù)雜。
(4)FELW的每張圖像的標簽只由一個標注者進行標注,太過主觀。
1.3.1 數(shù)據(jù)集的改進
根針對上述不足,圖像并不全是正臉,可以添加各個角度方位的狀態(tài)標簽;將Part_Label部分冗余的狀態(tài)作調(diào)整;修改Emotion_Label部分的打分情況;擴大標注規(guī)模。對數(shù)據(jù)集進行如下改進:
(1)在人臉部件狀態(tài)標簽中對添加“人臉的角度”,“人臉的角度”的狀態(tài)有“正臉”“左側(cè)臉”“右側(cè)臉”“仰視”“俯視”。
(2)對 Part_Label進行改進,去掉“鼻”和“肌肉”部分;調(diào)整“眉”“眼”“嘴”部分。
(3)Emotion_Label進行改進,直接勾選表情,去掉對各個表情的打分,最后取置信度。
(4)所有圖像的標注都由3個不同的人進行標注,提高客觀性。
對改進的FELW數(shù)據(jù)集的Part_Label進行標注時需要觀察圖像的眉毛、眼睛、嘴巴、人臉角度方向的狀態(tài),眉毛有4種狀態(tài),眼睛有3種狀態(tài),嘴巴有4種狀態(tài),人臉角度方向有5種狀態(tài)。圖3是對改進后的FELW人臉的4種部件的每個狀態(tài)的展示。
圖4是改進后的FELW數(shù)據(jù)集的GUI標注界面,圖左邊是Part_Label,包含了眉、眼、嘴、人臉角度方向4大類;右邊是Emotion_Label,包含10類表情,是多選的;在界面最下面是“置信度”,置信度是標注者自己對整張圖像的判斷打分,置信度區(qū)間為0~5,置信度越高表示判斷越高,置信度為0表示看不出任何表情,用Coefficient表示置信度。
標注完后,Part_Label和 Emotion_Label信息存入 .mat文件,.mat文件包括 EmotionLabel、Name、value、Coefficient。EmotionLabel表示 Emotion_Label標簽,是一個 1×10向量,10個向量元素是 10類表情,分別為平(中性)、喜(高興)、怒(生氣)、哀(悲傷)、驚(驚訝)、恐(恐懼)、惡(厭惡)、羞(害羞)、傲(傲慢)、鄙視,每個向量元素是Emotion_Label部分勾選的情況,表情被勾選是1,否則為0;Name表示表情圖像的命名,實驗過程中可以通過Name索引到標簽對應(yīng)的表情圖像;value表示Part_Label,是一個1×5的向量,每個向量元素對應(yīng)的是Part_Label部分中每個部件勾選的位置;Coefficient是置信度。
圖3 改進后的FELW標簽的人臉四種部分狀態(tài)展示Fig.3 Four partial states of the face labelled by the improved FELW
圖4 改進后的FELW標注界面實例Fig.4 Improved FELW annotation interface instance
每張表情圖像中3人分別標注,因此改進后的FELW包含了灰度表情圖像和其對應(yīng)的3組.mat文件,.mat文件包含了Part_Label和Emotion_Label信息。對3組數(shù)據(jù)進行分析,將3組數(shù)據(jù)結(jié)合成一組數(shù)據(jù)。
1.3.2 Kappa一致性檢驗
Kappa一致性檢驗是用Kappa系數(shù)來檢驗兩種檢驗結(jié)果是否一致,可以根據(jù)Kappa系數(shù)的取值大小來衡量兩種結(jié)果的一致性程度,Kappa系數(shù)的值越大說明兩種結(jié)果的一致性越高[3-4]。Kappa系數(shù)是從比較兩個觀測者對同一事物的觀測結(jié)果或同一觀測者對同一事物的兩次觀測結(jié)果是否一致出發(fā),用于由機遇造成的一致性和實際觀測的一致性之間的差別大小作為評價基礎(chǔ)所提出的統(tǒng)計指標[5]。Kappa公式如下
式中:pe是每一類正確分類的樣本數(shù)量之和除以總樣本數(shù),也就是總體分類精度;假設(shè)每一類的真實樣本個數(shù)分別是a1,a2,…,ac,預(yù)測出來的每一類樣本個數(shù)分別是b1,b2,…,bc,樣本個數(shù)為n,則有pe=。3組EmotionLabel兩兩進行Kappa一致性檢驗,kij≥0.4(kij表示EmotionLabel(i)和EmotionLabel(j)進行Kappa一致性檢驗得到的Kappa值)時,EmotionLabel(i)和Emo?tionLabel(j)與其Coefficent值進行下一步計算,公式如下
式中:n表示經(jīng)過Kappa一致性檢驗篩選下的EmotionLabel組個數(shù),k表示篩選出下的EmotionLabel組標號,對向量中每個元素四舍五入取整。最后得到的EmotionLabel′也是一個軟標簽,EmotionLabel′的向量元素的值也在0~5之間。
1.3.3 數(shù)據(jù)的合成
由于Part_Label的標注是單選的,將3組PartLabel值的相同位置的向量元素值進行比較,若3組相同位置的向量元素都不相同,則隨機選擇一個元素作為最終元素;若3組相同位置的向量元素有任意兩個元素相同,則選取這個元素作為最終元素。
Emotion_Label是多選,則先將三組EmotionLabel用Kappa一致性檢驗分析的結(jié)果結(jié)合Coefficient得出最后的EmotionLabel′。
為了區(qū)別Kappa一致性檢驗對數(shù)據(jù)集的識別率的影響,本文將原始3組標注數(shù)據(jù)不經(jīng)過Kappa一致性檢驗直接用式(2)進行結(jié)合生成EmotionLabel′向量,最后組成數(shù)據(jù)集FELW-1,用于FELW的對比實驗。
人臉表情識別系統(tǒng)一般包括人臉檢測、圖像預(yù)處理、表情特征提取和表情分類4部分[6]。本文采用Gabor+2DPCA+SVM和Curvelet+2DPCA+BP兩種傳統(tǒng)的人臉表情方法進行人臉表情識別。下面介紹兩種本文使用的傳統(tǒng)人臉表情識別方法。本文數(shù)據(jù)集的表情圖像已經(jīng)是120像素×120像素的灰度圖,可以省去人臉檢測和預(yù)處理的部分,下面方法只包含了特征提取和表情識別的步驟。
(1)Gabor+2DPCA+SVM:先將網(wǎng)格化的表情子圖像進行Gabor小波變換[7],然后用2DPCA[8-10]對子圖進行降維,提取特征主成分。最后用SVM分類器進行表情分類。圖5(a)給出了Gabor+2DPCA+SVM方法流程圖。
(2)Curvelet+2DPCA+BP:對輸入樣本圖像進行Curvelet變換[11]后再用2DPCA進行降維提取特征主成分。最后用BP神經(jīng)網(wǎng)絡(luò)[12]進行表情分類。圖5(b)給出了Curve?let+2DPCA+BP方法流程圖。
本文表情數(shù)據(jù)集是大小為120像素×120像素的圖像,表情分類是10類。所以模型輸入是120×120的圖像矩陣,輸出是大小1×10的向量。本文使用了用于人臉表情識別的3個卷積神經(jīng)網(wǎng)絡(luò)模型FERNet(Facial Expression Recognition Net),圖6是本文采用的3個CNN模型。
如圖6(a)所示,模型1輸入120像素×120像素的灰度表情圖像,經(jīng)過連續(xù)兩個卷積層,一個池化層,再經(jīng)過一個卷積層,一個池化層,然后經(jīng)過三個連續(xù)的卷積層,再進行一個池化層,最后經(jīng)過3個全連接層,輸出一個1×10的向量。有12層網(wǎng)絡(luò),前3個卷積層進行ReLU[13]調(diào)整,再進行LRN[14]歸一化后輸出;后3個卷積層只經(jīng)過ReLU調(diào)整。
如圖6(b)所示,模型2是參照Zeiler&Fergus二人提出的ZF模型[15]設(shè)計的一個CNN模型。輸入120像素×120像素的灰度表情圖像,經(jīng)過一個卷積層,一個池化層,再經(jīng)過一個卷積層,一個池化層,然后經(jīng)過3個連續(xù)的卷積層,再進行一個池化層,最后經(jīng)過3個全連接層,輸出一個1×10的向量。有11層網(wǎng)絡(luò),雖然網(wǎng)絡(luò)層數(shù)沒有模型1多,但是其卷積層的卷積核個數(shù)遠多于模型1。前3個卷積層進行Re?LU調(diào)整,再進行LRN歸一化后輸出;后3個卷積層只經(jīng)過ReLU調(diào)整。
如圖6(c)所示,模型3與模型2的網(wǎng)絡(luò)類似,但是沒有添加LRN,目的是區(qū)別未使用LRN對卷積和ReLU的影響,體現(xiàn)出LRN是否會對實驗結(jié)果產(chǎn)生影響。。輸入120像素×120像素的灰度表情圖像,經(jīng)過連續(xù)兩個卷積層,一個池化層,再經(jīng)過一個卷積層,一個池化層,然后經(jīng)過3個連續(xù)的卷積層,再進行一個池化層,最后經(jīng)過3個全連接層,輸出一個1×10的向量。整個網(wǎng)絡(luò)的卷積層只經(jīng)過ReLU調(diào)整。
圖5 兩種傳統(tǒng)人臉表情識別方法流程Fig.5 Flowchart of two traditional facial expression recogni?tion methods
圖6 本文采用FERNet模型Fig.6 FERNet model
將FELW分別用傳統(tǒng)的人臉表情識別方法和深度學(xué)習(xí)的人臉表情識別方法進行實驗,并用JAFFE數(shù)據(jù)集和FELW系列數(shù)據(jù)集進行實驗對比。本文實驗中用到的術(shù)語:
軟標簽:由于FELW系列數(shù)據(jù)集圖像的Emotion_Label不止一種表情,將采用所有表情實驗的表情標簽稱為軟標簽。
硬標簽:在Emotion_Label向量元素中選擇最大值作為該圖像的表情標簽。
FELW-原:未改進的數(shù)據(jù)集。
FELW:改進后的數(shù)據(jù)集。
FELW-1:未經(jīng)過Kappa一致性檢驗數(shù)據(jù)集。
(1)實驗1
在FELW-原、FELW和FELW-1數(shù)據(jù)集和JAFFE數(shù)據(jù)集上分別用上述兩種傳統(tǒng)方法進行實驗。由于JAFFE數(shù)據(jù)集只有7種表情且樣本太少。首先,將FELW系列數(shù)據(jù)集轉(zhuǎn)化為硬標簽形式進行實驗;然后,選取跟JAFFE數(shù)據(jù)集一樣的表情類別,每種表情30張圖像作為實驗樣本,Train∶Test=1∶1或2∶1進行實驗,取200次實驗平均值。實驗結(jié)果如表1所示。
(2)實驗2
由于JAFFE數(shù)據(jù)集沒有軟標簽,并且兩種傳統(tǒng)方法中只有Gabor+2DPCA+SVM方法可以進行軟標簽實驗,所以接下來的實驗僅在FELW系列數(shù)據(jù)集上采用軟標簽形式進行Curvelet+2DPCA+BP實驗。本文做了10組實驗,用了5種不同的實驗樣本數(shù)量,分別是180,210,240,300,360,每種數(shù)量的Train∶Test=1∶1或2∶1進行實驗,實驗結(jié)果如表2所示。
表1 JAFFE數(shù)據(jù)集和使用硬標簽的三組數(shù)據(jù)集傳統(tǒng)實驗結(jié)果Tab.1 Traditional experimental results for JAFFE da?tasets and three sets of datasets using hard tags
表2 軟標簽形式對3組數(shù)據(jù)集進行Curvelet+2DP?CA+BP實驗準確率Tab.2 Curvelet+2DPCA+BP experimental accuracy for the three data sets in the form of soft tag
(3)實驗3
在FELW系列數(shù)據(jù)集中采用Part_Label+軟標簽形式進行Curvelet+2DPCA+BP方法實驗。實驗樣本參數(shù)與實驗2一樣,實驗結(jié)果如表3所示。
(4)實驗4
由于FELW2.0的圖像沒有經(jīng)過圖像配準,并不全是正臉,可能會影響人臉表情識別。將FELW數(shù)據(jù)集和FELW-1數(shù)據(jù)集挑出正臉圖像重復(fù)實驗3,實驗結(jié)果如表4所示。
表4 正臉+Part_Label+軟標簽形式對3組數(shù)據(jù)集進行Curvelet+2DPCA+BP實驗準確率Tab.4 Cur velet+2DPCA+BP exper iment al accura?cyfor three sets of data sets in the form of pos?itive face+Part_Label+soft label
(5)實驗分析
實驗1可知,JAFFE數(shù)據(jù)集的識別率在兩種傳統(tǒng)人臉表情識別方法中識別率比LFEW-原,LFEW和LFEW-1高出很多。原因是:JAFFE數(shù)據(jù)集圖像都是正臉,而LFEW系列數(shù)據(jù)集是自然狀態(tài)下的人臉表情圖像,圖像復(fù)雜;訓(xùn)練樣本太少使得訓(xùn)練模型獲取的特征表達不夠全面;強制轉(zhuǎn)換成硬標簽也可能導(dǎo)致效果不好。
將實驗2,3,4結(jié)果統(tǒng)計得到圖7的折線圖,從圖中可以看出:①由折線圖趨勢可以看出,樣本越多,識別率越高;Train∶Test=2∶1的識別率普遍比 Train∶Test為 1∶1的識別率高。②使用相同數(shù)據(jù)集,采用Part_Label加軟標簽的形式實驗效果比僅采用軟標簽形式的效果更好。③使用相同數(shù)據(jù)集,篩選正臉的實驗效果比未篩選正臉的效果更好。④使用相同形式實驗時,F(xiàn)ELW數(shù)據(jù)集實驗效果最好。
圖7 實驗2—4的結(jié)果統(tǒng)計Fig.7 Statistically results of Experiments 2—4
數(shù)據(jù)集包含26 848張圖像,從中隨機選擇20 000個樣本進行訓(xùn)練,其余的作為測試樣本,訓(xùn)練時將20 000個樣本平均分成10份,分次取9份作為訓(xùn)練樣本,剩下1份則作為驗證樣本。每個數(shù)據(jù)集進行10次實驗,最終的識別率是10次實驗的識別率的平均值。
(1)實驗1
依照本章所建立的模型,采用硬分類規(guī)則進行表情識別,所得結(jié)果如表5所示。
(2)實驗2
為了驗證軟標簽的作用,使用軟標簽形式進行識別,將軟標簽用在網(wǎng)絡(luò)最后一層,其他實驗參數(shù)與實驗1一致,實驗結(jié)果如表6所示。
表5 硬標簽形式在3種深度模型上實驗準確率Tab.5 Har d label for m exper iment in three depth models%
表6 軟標簽形式在3種深度模型上實驗準確率Tab.6 Soft label for m exper iment in thr ee depth models%
(3)實驗3
將Part_Label標簽作為特征的表達,與原圖像一起作為網(wǎng)絡(luò)的輸入。即Part_Label+軟標簽形式識別,其他實驗參數(shù)與實驗1一致,實驗結(jié)果如表7。
(4)實驗4
同時為了提高識別率采用篩選正臉的方式進行實驗。使用軟標簽+正臉進行識別(軟標簽使用在模型最后一層),實驗結(jié)果如表8所示。
表7 Par t_Label+軟標簽形式在3種深度模型上實驗準確率Tab.7 Part_Label+soft label for m exper iment in thr ee depth models%
表8 正臉+Par t_Label+軟標簽形式在3種深度模型上實驗準確率Tab.8 Positive face+Par t_Label+soft label form experiment in thr ee depth models%
(5)實驗分析
將實驗1—4結(jié)果統(tǒng)計得到柱形圖8,由圖8可以看出:①在相同數(shù)據(jù)集實驗時,模型1識別率比模型3略高,因為模型1的網(wǎng)絡(luò)更深;模型2實驗識別率比模型1高,因為模型2使用的卷積核個數(shù)遠比模型1多;模型2比模型3高,因為模型2使用了LRN。②采用相同形式使用相同模型實驗時,F(xiàn)ELW數(shù)據(jù)集識別率最高。③相同數(shù)據(jù)集在相同模型實驗時,正臉+Part_Label+軟標簽的形式識別率最高。
圖8 實驗1—4準確率統(tǒng)計柱形圖Fig.8 Accuracy histogram of Experiments 1—4
本文介紹了人臉表情數(shù)據(jù)集FELW的建立與改進,并另建了一個FELW-1數(shù)據(jù)集與其對比。對這3組數(shù)據(jù)集分別用傳統(tǒng)人臉表情識別方法和深度學(xué)習(xí)的人臉表情識別方法實驗。兩種方法實驗結(jié)果表明:FELW數(shù)據(jù)集的識別率比FELW-原、FELW-1數(shù)據(jù)集識別率高,同時體現(xiàn)了Kappa一致性檢驗對數(shù)據(jù)集的作用;采用正臉+Part_Label+軟標簽的形式的實驗識別率效果最好;采用深度學(xué)習(xí)的人臉表情識別方法時,使用LRN的模型2比沒有使用LRN的模型3識別率高,同樣體現(xiàn)了LRN的作用。由于FELW數(shù)據(jù)集圖像是未經(jīng)過圖像配準的歸一化操作,而且圖像不是在實驗室采集而是在網(wǎng)絡(luò)上采集的自然場景下的各種類型圖片,圖像的質(zhì)量遠遠比不上現(xiàn)在成熟的人臉表情數(shù)據(jù)集圖像質(zhì)量,但是在傳統(tǒng)方法和深度學(xué)習(xí)方法的識別率達到了70%以上的效果,后續(xù)還可以繼續(xù)改進數(shù)據(jù)集以達到更好的識別率。