詩雨桐,袁德成
(沈陽化工大學 信息工程學院, 遼寧 沈陽 110142)
微表情是一種非語言形式的微觀表達的交流方式,可通過其傳遞一個人的情感.由于微表情具有動作幅度小、持續(xù)時間短的特點,對微表情的人工識別需要專業(yè)培訓,且識別正確率較低.近年來不少研究人員開始利用計算機視覺技術(shù)自動識別微表情,極大地提高了微表情的應(yīng)用可行性[1].現(xiàn)有的微表情識別研究,例如局部二值模式 - 三正交平面(LBP-TOP),Gabor濾波器和光流等主要采用手工制作的特征,導(dǎo)致識別效率與精度不高.Ekman[2]在缺乏數(shù)據(jù)集的基礎(chǔ)上開發(fā)了微表情訓練工具(METT)來幫助人們進行微表情的檢測.在使用METT微表情訓練數(shù)據(jù)集進行的心理學實驗[3]中,平均識別率僅為50%.為提高深度學習應(yīng)用在微表情識別中的精度,本文提出了一種基于前人的新的方法進行微表情識別,提高微表情識別的精度,且與相關(guān)工作進行比較,實驗結(jié)果顯示該方法對于提高微表情識別精度有積極作用.
目前用于識別任務(wù)公開可用的自發(fā)微表達數(shù)據(jù)庫有3種:自發(fā)微表達數(shù)據(jù)集(SMIC)[4],中國科學院心理研究所的CASME[5]和CASME Ⅱ[6].這些數(shù)據(jù)集記錄了正面視圖的微表情圖像數(shù)據(jù).實驗使用其中2個已知的數(shù)據(jù)庫:CASME和CASME Ⅱ,以及提供另一個數(shù)據(jù)庫:CASME和CASME Ⅱ的集合,即混合CASME(the mixed CASME),簡稱為M-CASME.
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是計算機視覺普遍使用的一種深度學習模型.CNN是一種多階段全局可訓練的人工神經(jīng)網(wǎng)絡(luò)模型,其可以針對具體問題設(shè)計具體網(wǎng)絡(luò)結(jié)構(gòu),通過預(yù)處理從原始數(shù)據(jù)中學習到抽象的、本質(zhì)的和高階的特征.
筆者專注于基于圖像的靜態(tài)面部微表情識別任務(wù):CASME、CASME Ⅱ、M-CASME和深度卷積神經(jīng)網(wǎng)絡(luò)(CNN).首先識別輸入的原始圖像,然后對其進行預(yù)處理并作為CNN的輸入,最后給出預(yù)測面部微表情標簽,該標簽應(yīng)是以下6個標簽之一:厭惡、恐懼、幸福、中立、悲傷和驚喜.
深度學習[7]已成為非常有效的圖像分析方法,如圖像分類、語意分割、物體檢測和圖像超分辨率.與傳統(tǒng)的手工設(shè)計功能[局部二值模式(LBP)[8]和梯度直方圖(HOG)[9-10]]相比,深度卷積神經(jīng)網(wǎng)絡(luò)由多個層組成,可以直接從原始圖像中自動學習層次結(jié)構(gòu)的視覺特征.
微表情識別的最新進展集中于識別更多自發(fā)的面部微表情.中國科學院心理研究所的CASME[5]和CASME Ⅱ[6]數(shù)據(jù)集包含6個基本的微表達類別用以模擬更多的自發(fā)情景.兩個數(shù)據(jù)集均在受控環(huán)境中記錄,采集到的圖像雖然不是真正自發(fā)的,但至少以比構(gòu)成數(shù)據(jù)集更自然、更通用的方式提供面部微表情.隨著深度學習方法的引入,為廣泛的圖像分類工作提供了更好的識別精度.
缺少大型訓練數(shù)據(jù)集是深度學習訓練的瓶頸.模型在使用小型訓練數(shù)據(jù)集時會出現(xiàn)過擬合,影響識別精度和實驗結(jié)果.數(shù)據(jù)增強是一種通常用于小數(shù)據(jù)集訓練的技術(shù).它是一組保留標簽的轉(zhuǎn)換,引入了一些新實例而不收集新數(shù)據(jù).這種變換的例子是通過水平/垂直鏡像[11]、裁剪、小旋轉(zhuǎn)等來增加數(shù)據(jù)量.表1表明數(shù)據(jù)增強過程使樣本數(shù)量增強了一倍.
表1 數(shù)據(jù)增強前后的微表達數(shù)據(jù)庫Table 1 Micro-expression database before and after data enhancement
該模型的訓練和測試使用了CASME、CASME Ⅱ和M-CASME數(shù)據(jù)庫的人臉圖像,每個圖像都標有5種情感類別中的一種:厭惡、恐懼、快樂、悲傷和驚喜.此處將“中立”視為第6類.給定的圖像分為2組:訓練組和測試組.通過數(shù)據(jù)增強方法,經(jīng)過垂直鏡像、裁剪、翻轉(zhuǎn)、旋轉(zhuǎn)圖像等方式生成新圖像數(shù)據(jù).合成數(shù)據(jù)庫中總圖像的80%為訓練集,剩余20% 的圖像進一步劃分為測試集(10%)和驗證集(10%).
筆者在OpenCV中實現(xiàn)了DLib人臉檢測器,從原始圖像中檢測和裁剪人臉區(qū)域.從圖1可以看到所有圖像經(jīng)過預(yù)處理后形成了面部區(qū)域周圍的邊界框.然后通過計算眼睛眉心之間的角度并隨后應(yīng)用仿射變換來處理裁剪的面部以進行頭部姿勢校正,變換的圖像再次傳遞到DLib面部檢測器以裁剪并保存更準確的面部區(qū)域.
圖1顯示了預(yù)處理步驟的具體過程,以及檢測到的面部區(qū)域和裁剪后形成的面部圖像周圍的紅色邊界框.在該步驟中,裁剪面部時運用了頭部姿勢校正方法.通過使用仿射變換對齊矯正頭部姿勢,并且再次裁剪面部區(qū)域以確保僅給出面部區(qū)域作為CNN模型的輸入.
圖1 人臉檢測和預(yù)處理原始人臉圖像Fig.1 Face detection and pretreatment of original face images
圖2為深度卷積神經(jīng)網(wǎng)絡(luò)進行面部微表情識別的基本框架.預(yù)處理和裁剪的面部圖像作為輸入傳遞到CNN模型,其中圖像必須通過CNN的不同層: 卷積;整流線性單元(ReLU);匯集或子抽樣;分類(完全連接層).
卷積步驟的主要目的是從輸入圖像中提取特征.卷積通過使用小方塊輸入數(shù)據(jù)學習圖像特征來維持像素之間的空間關(guān)系,并創(chuàng)建特征圖;ReLU是一種組件智能操作,將要素圖中的所有負像素值替換為零;空間池可降低每個要素圖的維度,但保留最重要的信息;第3個池層的輸出充當完全連接層的輸入;完全連接層是傳統(tǒng)的多層感知器,在輸出層使用Softmax啟動功能.卷積和合并層的輸出構(gòu)成輸入圖像的高級特征.完全連接層的目的是利用這些特征,根據(jù)訓練數(shù)據(jù)集將輸入圖像分為6類.
該神經(jīng)網(wǎng)絡(luò)主要分為兩個階段:訓練和測試.在訓練期間,系統(tǒng)接收訓練數(shù)據(jù),該訓練數(shù)據(jù)包括具有各自微表情標簽的面部圖像.在測試期間,驗證集中的圖像被反饋到神經(jīng)網(wǎng)絡(luò)當中,該神經(jīng)網(wǎng)絡(luò)使用在訓練期間學習到的權(quán)重來輸出預(yù)測的微表情標簽.
神經(jīng)網(wǎng)絡(luò)的學習率(base_lr)設(shè)置為0.001,step-size參數(shù)設(shè)置為10 000,最大迭代(max_iter)為100 000,用于訓練的圖像批量大小為每批50張圖像.學習策略參數(shù)(lr_policy)值更改為“step”,其余參數(shù)設(shè)置均使用默認值.在神經(jīng)網(wǎng)絡(luò)的最后一層使用Softmax分類器進行分類.
圖2 深度卷積神經(jīng)網(wǎng)絡(luò)的CNN架構(gòu)Fig.2 CNN architecture of deep convolution neural network
數(shù)據(jù)庫中所有圖像都經(jīng)過預(yù)處理并垂直翻轉(zhuǎn),以增加樣本數(shù)量,然后將新的合成數(shù)據(jù)庫分為兩組,即訓練和測試.每個圖像被分類為:
0=厭惡,1=恐懼,2=幸福,3=中立,4=悲傷,5=驚喜.
這些模型在CASME上進行100 000次迭代訓練,在CASME Ⅱ和M-CASME上進行41 000次迭代訓練.當?shù)柧毚螖?shù)達到10 000時,學習率從0.001變?yōu)?.000 1.在模型訓練的每輪迭代中,基于損失更新網(wǎng)絡(luò)的層參數(shù).設(shè)置最大迭代次數(shù),當訓練時間達到該次數(shù)時,可以獲得一個訓練模型,該模型本質(zhì)上是所有濾波器的參數(shù).保存模型,以便使用該模型來預(yù)測圖像的微觀表達.
輸入從驗證集中給出,驗證集從原始數(shù)據(jù)庫收集原始面部圖像.對于每個實驗,根據(jù)訓練數(shù)據(jù)庫使用相應(yīng)的驗證集.所用3個數(shù)據(jù)庫的識別準確度結(jié)果列于表2.從表2可以看出識別精度隨著訓練樣本數(shù)量的增加而提高.
表2 不同數(shù)據(jù)庫的微表情識別精度Table 2 Micro-expression recognition accuracy of different databases
表3列出了筆者所提CNN方法與其他相關(guān)方法在CASME、CASME Ⅱ數(shù)據(jù)庫的微表情識別精度對比.由表3可以看出筆者所提出的CNN方法表現(xiàn)出令人滿意的微表情識別精度.由于與CASME數(shù)據(jù)集相比,CASME Ⅱ數(shù)據(jù)集中的樣本數(shù)量較多,Kim等[12]選擇在CASME Ⅱ數(shù)據(jù)集中展示深度學習結(jié)果.筆者應(yīng)用數(shù)據(jù)增強技術(shù)增加樣本數(shù)量,使用CASME和CASME Ⅱ數(shù)據(jù)集展示所提出的CNN方法的有效性.
表3 CASME與CASME Ⅱ數(shù)據(jù)庫的微表情識別對比Table 3 Comparison of microscopic expression recognition between CASME and CASME Ⅱ databases
筆者基于前人的方法,結(jié)合卷積神經(jīng)網(wǎng)絡(luò)、深度學習和數(shù)據(jù)增強,提出了基于CASME Ⅱ數(shù)據(jù)集的方法.在卷積神經(jīng)網(wǎng)絡(luò)中加入Dropout防止過擬合,提高模型泛化能力.在小數(shù)據(jù)集中使用數(shù)據(jù)增強增加數(shù)據(jù)集的樣本數(shù)量,以此為基礎(chǔ)訓練模型,識別微表情數(shù)據(jù)集.使用M-CASME數(shù)據(jù)集運行模型,訓練所得的微表情識別模型可識別6種表情,準確率可達78.02%.相比于CASME與CASME Ⅱ,精度分別提高了3.77%和2.45%.為面部表情分配更加準確的標簽相當困難,有些面部表情描繪了一些更微妙的微表情,其影響著模型的性能.未來可在模型中加入更加先進的技術(shù),如使用高級增強方法(條件對抗神經(jīng)網(wǎng)絡(luò)cGANs、神經(jīng)風格遷移NST等)、在分類函數(shù)層加入對比損失函數(shù)和使用遷移學習的思想來訓練神經(jīng)網(wǎng)絡(luò)模型等.相信在此之上,微表情識別的精度會進一步提高.