范耀文
(廣東工業大學自動化學院,廣東 廣州 510006)
人臉表情對于人際溝通至關重要,而一般對表情的六種分類并不足以概括人類所有各類豐富的面部表情,因此相關學者提出了面部動作編碼系統FACS (Facial Action Coding System)[1],將面部各個肌肉群的運動進行分類。隨著自監督學習在機器視覺任務上的應用不斷發展,使用自監督方法實現面部動作單元檢測也就成為了一個十分重要的研究課題。

圖1 本文網絡結構
由于面部動作單元(AU, Facial Action Unit)的標注很困難,消耗大量人力,因此很多使用無標注圖像的自監督方法在近年來被不斷提出。FAb-Net[2]從無標注的人臉視頻序列中提取圖像幀,通過編碼器對每幀圖像進行特征提取,然后使用解碼器由兩幀圖像的特征解碼得到兩幀圖像之間的光流,由此可以通過圖像對中一張圖像生成得到另一張圖像,目標是使生成圖像與輸入的另一張原始圖像盡可能的相同,以此實現該自編碼器網絡結構的自監督訓練。TCAE[3]則在此基礎上進行改進,將兩張圖像幀之間的光流解耦為大幅度整體的頭部姿態移動和小幅度局部的面部表情變化。Lu 等人[4]提出的方法則不使用光流以及圖像重建,直接利用人臉面部動作變化的時域連續性,按照時間順序對從每一幀圖像提取的特征構造三元組損失函數,以此實現自監督訓練,由于不需要解碼器,該網絡結構簡潔,而且有著很好的擴展性。上述工作共同的不足之處在于,未能將個體信息以及背景信息去除,即對編碼器提取特征的解耦不夠充分,仍然含有大量無關信息,不利于后續下游任務階段的訓練,影響最終所得到檢測器的性能。同時,這些工作中的解碼器骨架都為最基本的卷積網絡或尺寸較小的ResNet,而后續被提出的ViT(Vision Transformer)[5]利用自注意力機制,在很多機器視覺任務上有著出色的表現,這啟發了我們將ViT 應用在人臉特征提取任務中。
針對上述問題,本文在Lu 等[4]工作的基礎上,將編碼器改為ViT 結構,該網絡能夠更好地提取特征,從而提升下游任務的性能。并將特征解耦為個體特征以及表情特征,由于面部動作單元檢測等任務是與個體無關的,因此將不含個體信息的表情特征提取出來,更有利于面部動作單元檢測這個下游任務的訓練和表現。基于這些改進,本文提出的方法在同等實驗條件下,在BP4D 數據集[6]上取得了超過其他已有最先進方法的結果。


為了給后續面部動作單元檢測等下游任務提供含更少干擾信息的面部動作特征,對提取出的特征進行解耦,將其分為兩組:個體特征和表情特征。其中個體特征包含人物個體的臉型、頭發、服裝、圖像背景、光照環境等與面部表情無關的信息,而表情特征則是剔除掉上述干擾信息后較為純凈的只包含描述人臉表情和面部肌肉動作的特征。
為了實現該目的,本文方法利用了無標注人臉視頻序列中天然存在的個體特征一致性,即在同一視頻片段中,人物個體相同,且拍攝的背景以及其他因素的變化基本不變,而表情則不斷地發生變化,由此我們可以限制同一視頻序列中不同幀的個體特征之間的差異。然而根據對比學習的理論經驗,此時編碼器只需要輸出與輸入無關的恒定輸出,即可保證不同幀的個體特征完全相同,而并沒有提取人臉圖像中的信息,因此需要額外加入其他來自其他個體的人臉圖像作為負例,要求來自不同個體的人臉圖像幀的個體特征之間的差異盡可能的大。通過以上設計,能夠將人臉視頻序列中不變的個體信息提取為個體特征,而將不斷變化的表情信息用表情特征進行提取,實現了特征的解耦。
本文方法的損失函數由個體特征的三元組損失函數及表情特征的三元組損失函數兩部分組成,見圖2。三元組損失函數的基本構造為:

圖2 個體特征及表情特征的三元組損失函數

其中d 代表兩個輸入之間的距離函數,δ 為一避免負例差異總大于正例差異而設置的常數。三元組損失函數能夠同時限制使基準與正例距離最小,而與負例之間的距離最大,這一特性十分適合本文所利用的自監督信號。
對于個體特征,來自同一視頻序列的不同幀之間應該盡可能相似,而來自不同視頻序列的幀之間差異應該盡可能大,并且由于本文方法以k 幀的視頻序列作為輸入,因此選定第一幀為基準、其他個體的圖像作為負例后,能將剩余k-1 幀分別作為正例,可以構造出個體特征的三元組損失函數:

Lu 等[4]的工作中使用了基于時域順序的三元組損失函數,將視頻序列第一幀作為基準,取之后的兩幀圖像,由于人臉表情的變化是連續的,因此可以認為在時間上更接近基準幀的圖像應該與基準幀更接近,與之相比,時間上距離更遠的圖像則應有更大的差異。對于連續變化的表情信息,可以對本文方法中的表情特征構造出以下三元組損失函數:

該損失函數利用了人臉表情在時域上的連續性,能夠驅使網絡提取人臉相關信息,實現網絡的自監督訓練。
訓練集使用VoxCeleb1/2[7],該數據集含有超過6 千位名人明星接受采訪的約十五萬個視頻,涵蓋了大幅度的頭部姿態、低光、不同程度的鏡頭失焦模糊等極端情況。我們使用該數據集提供的已裁剪的人臉區域圖像,并使用數據集已有的按照人物個體不同而劃分的訓練集和驗證集。人臉圖像幀作為輸入給編碼器前,會與先前工作一樣,先進行中央裁剪和尺寸歸一化。
評估數據集為BP4D[6],該數據集含有23 位女性和18 位男性總共41 人的人臉視頻數據,其中有接近15 萬幀二維人臉圖像帶有AU 標注。為了證明本文方法的有效性,我們使用和先前方法同樣的數據集和處理流程進行訓練和評估,考慮到評估數據集分布上存在的不均衡,都使用F1-score 作為評價指標。
本文方法和其他已有自監督方法的F1 結果在表1 中列出,其中FAb-Net[2]和TCAE[3]的結果取自Lu 等[4]論文中進行的復現結果。可以看出本文方法取得了最優的平均F1 分數,相比Lu 等提升了2%,證明了本文方法的有效性。

表1 各方法在BP4D 數據集上的F1 結果
本文方法在大多數AU 項都取得了最高的F1,然而和Lu 等的方法一樣,其中AU17 的檢測效果不如先前其他方法。AU17 是一個下巴向上收縮擠壓嘴唇的面部動作,該面部動作在外觀上呈現為下巴部分區域向上平移,因此先前一些基于光流的工作可能更適合該類AU。但AU23 抿嘴和AU24緊咬牙關兩項都有著加大的提升,合理的推測是因為本文方法中的特征解耦起了作用,特征解耦去除了干擾表情表征的個體信息,因此這兩個在顏色梯度上不明顯的面部動作能夠被更好地檢測。
本文通過消融實驗證明了兩個改進的有效性,比較了單獨替換ViT[5]作為編碼器,單獨解耦個體特征和表情特征,以及同時應用兩者的結果,詳見表2。

表2 消融實驗結果
由表中數據可知,單獨替換編碼器為ViT 可稍微提升性能,而單獨進行特征解耦則的性能提升幅度比前者更大,同時應用兩種改進,則最終f1-score 指標結果有2%左右的提升。特征解耦的結構設計能夠得到更少無關干擾信息的表情特征,能夠使ViT 編碼器更好地進行人臉特征提取,從而提升最終整體面部動作單元檢測器的性能。
本文提出了基于自監督的面部動作單元檢測方法,進一步提升了面部動作單元檢測器的性能。該方法利用ViT 的出色性能,得以更好地提取包含面部信息的特征。同時,對個體信息和表情信息進行解耦,去除了表情特征中原版含有的和人物個體相關的信息,從而使面部動作單元檢測等下游任務能夠得到具有更少干擾的面部表情特征。由于ViT 的自注意力機制需要較大的運算量,因此后續的工作主要會降低編碼器部分的復雜度,轉而在網絡的整體架構以及損失函數上進行優化和改進。