范耀文
(廣東工業(yè)大學(xué)自動化學(xué)院,廣東 廣州 510006)
人臉表情對于人際溝通至關(guān)重要,而一般對表情的六種分類并不足以概括人類所有各類豐富的面部表情,因此相關(guān)學(xué)者提出了面部動作編碼系統(tǒng)FACS (Facial Action Coding System)[1],將面部各個肌肉群的運動進(jìn)行分類。隨著自監(jiān)督學(xué)習(xí)在機器視覺任務(wù)上的應(yīng)用不斷發(fā)展,使用自監(jiān)督方法實現(xiàn)面部動作單元檢測也就成為了一個十分重要的研究課題。
圖1 本文網(wǎng)絡(luò)結(jié)構(gòu)
由于面部動作單元(AU, Facial Action Unit)的標(biāo)注很困難,消耗大量人力,因此很多使用無標(biāo)注圖像的自監(jiān)督方法在近年來被不斷提出。FAb-Net[2]從無標(biāo)注的人臉視頻序列中提取圖像幀,通過編碼器對每幀圖像進(jìn)行特征提取,然后使用解碼器由兩幀圖像的特征解碼得到兩幀圖像之間的光流,由此可以通過圖像對中一張圖像生成得到另一張圖像,目標(biāo)是使生成圖像與輸入的另一張原始圖像盡可能的相同,以此實現(xiàn)該自編碼器網(wǎng)絡(luò)結(jié)構(gòu)的自監(jiān)督訓(xùn)練。TCAE[3]則在此基礎(chǔ)上進(jìn)行改進(jìn),將兩張圖像幀之間的光流解耦為大幅度整體的頭部姿態(tài)移動和小幅度局部的面部表情變化。Lu 等人[4]提出的方法則不使用光流以及圖像重建,直接利用人臉面部動作變化的時域連續(xù)性,按照時間順序?qū)拿恳粠瑘D像提取的特征構(gòu)造三元組損失函數(shù),以此實現(xiàn)自監(jiān)督訓(xùn)練,由于不需要解碼器,該網(wǎng)絡(luò)結(jié)構(gòu)簡潔,而且有著很好的擴(kuò)展性。上述工作共同的不足之處在于,未能將個體信息以及背景信息去除,即對編碼器提取特征的解耦不夠充分,仍然含有大量無關(guān)信息,不利于后續(xù)下游任務(wù)階段的訓(xùn)練,影響最終所得到檢測器的性能。同時,這些工作中的解碼器骨架都為最基本的卷積網(wǎng)絡(luò)或尺寸較小的ResNet,而后續(xù)被提出的ViT(Vision Transformer)[5]利用自注意力機制,在很多機器視覺任務(wù)上有著出色的表現(xiàn),這啟發(fā)了我們將ViT 應(yīng)用在人臉特征提取任務(wù)中。
針對上述問題,本文在Lu 等[4]工作的基礎(chǔ)上,將編碼器改為ViT 結(jié)構(gòu),該網(wǎng)絡(luò)能夠更好地提取特征,從而提升下游任務(wù)的性能。并將特征解耦為個體特征以及表情特征,由于面部動作單元檢測等任務(wù)是與個體無關(guān)的,因此將不含個體信息的表情特征提取出來,更有利于面部動作單元檢測這個下游任務(wù)的訓(xùn)練和表現(xiàn)?;谶@些改進(jìn),本文提出的方法在同等實驗條件下,在BP4D 數(shù)據(jù)集[6]上取得了超過其他已有最先進(jìn)方法的結(jié)果。
為了給后續(xù)面部動作單元檢測等下游任務(wù)提供含更少干擾信息的面部動作特征,對提取出的特征進(jìn)行解耦,將其分為兩組:個體特征和表情特征。其中個體特征包含人物個體的臉型、頭發(fā)、服裝、圖像背景、光照環(huán)境等與面部表情無關(guān)的信息,而表情特征則是剔除掉上述干擾信息后較為純凈的只包含描述人臉表情和面部肌肉動作的特征。
為了實現(xiàn)該目的,本文方法利用了無標(biāo)注人臉視頻序列中天然存在的個體特征一致性,即在同一視頻片段中,人物個體相同,且拍攝的背景以及其他因素的變化基本不變,而表情則不斷地發(fā)生變化,由此我們可以限制同一視頻序列中不同幀的個體特征之間的差異。然而根據(jù)對比學(xué)習(xí)的理論經(jīng)驗,此時編碼器只需要輸出與輸入無關(guān)的恒定輸出,即可保證不同幀的個體特征完全相同,而并沒有提取人臉圖像中的信息,因此需要額外加入其他來自其他個體的人臉圖像作為負(fù)例,要求來自不同個體的人臉圖像幀的個體特征之間的差異盡可能的大。通過以上設(shè)計,能夠?qū)⑷四樢曨l序列中不變的個體信息提取為個體特征,而將不斷變化的表情信息用表情特征進(jìn)行提取,實現(xiàn)了特征的解耦。
本文方法的損失函數(shù)由個體特征的三元組損失函數(shù)及表情特征的三元組損失函數(shù)兩部分組成,見圖2。三元組損失函數(shù)的基本構(gòu)造為:
圖2 個體特征及表情特征的三元組損失函數(shù)
其中d 代表兩個輸入之間的距離函數(shù),δ 為一避免負(fù)例差異總大于正例差異而設(shè)置的常數(shù)。三元組損失函數(shù)能夠同時限制使基準(zhǔn)與正例距離最小,而與負(fù)例之間的距離最大,這一特性十分適合本文所利用的自監(jiān)督信號。
對于個體特征,來自同一視頻序列的不同幀之間應(yīng)該盡可能相似,而來自不同視頻序列的幀之間差異應(yīng)該盡可能大,并且由于本文方法以k 幀的視頻序列作為輸入,因此選定第一幀為基準(zhǔn)、其他個體的圖像作為負(fù)例后,能將剩余k-1 幀分別作為正例,可以構(gòu)造出個體特征的三元組損失函數(shù):
Lu 等[4]的工作中使用了基于時域順序的三元組損失函數(shù),將視頻序列第一幀作為基準(zhǔn),取之后的兩幀圖像,由于人臉表情的變化是連續(xù)的,因此可以認(rèn)為在時間上更接近基準(zhǔn)幀的圖像應(yīng)該與基準(zhǔn)幀更接近,與之相比,時間上距離更遠(yuǎn)的圖像則應(yīng)有更大的差異。對于連續(xù)變化的表情信息,可以對本文方法中的表情特征構(gòu)造出以下三元組損失函數(shù):
該損失函數(shù)利用了人臉表情在時域上的連續(xù)性,能夠驅(qū)使網(wǎng)絡(luò)提取人臉相關(guān)信息,實現(xiàn)網(wǎng)絡(luò)的自監(jiān)督訓(xùn)練。
訓(xùn)練集使用VoxCeleb1/2[7],該數(shù)據(jù)集含有超過6 千位名人明星接受采訪的約十五萬個視頻,涵蓋了大幅度的頭部姿態(tài)、低光、不同程度的鏡頭失焦模糊等極端情況。我們使用該數(shù)據(jù)集提供的已裁剪的人臉區(qū)域圖像,并使用數(shù)據(jù)集已有的按照人物個體不同而劃分的訓(xùn)練集和驗證集。人臉圖像幀作為輸入給編碼器前,會與先前工作一樣,先進(jìn)行中央裁剪和尺寸歸一化。
評估數(shù)據(jù)集為BP4D[6],該數(shù)據(jù)集含有23 位女性和18 位男性總共41 人的人臉視頻數(shù)據(jù),其中有接近15 萬幀二維人臉圖像帶有AU 標(biāo)注。為了證明本文方法的有效性,我們使用和先前方法同樣的數(shù)據(jù)集和處理流程進(jìn)行訓(xùn)練和評估,考慮到評估數(shù)據(jù)集分布上存在的不均衡,都使用F1-score 作為評價指標(biāo)。
本文方法和其他已有自監(jiān)督方法的F1 結(jié)果在表1 中列出,其中FAb-Net[2]和TCAE[3]的結(jié)果取自Lu 等[4]論文中進(jìn)行的復(fù)現(xiàn)結(jié)果??梢钥闯霰疚姆椒ㄈ〉昧俗顑?yōu)的平均F1 分?jǐn)?shù),相比Lu 等提升了2%,證明了本文方法的有效性。
表1 各方法在BP4D 數(shù)據(jù)集上的F1 結(jié)果
本文方法在大多數(shù)AU 項都取得了最高的F1,然而和Lu 等的方法一樣,其中AU17 的檢測效果不如先前其他方法。AU17 是一個下巴向上收縮擠壓嘴唇的面部動作,該面部動作在外觀上呈現(xiàn)為下巴部分區(qū)域向上平移,因此先前一些基于光流的工作可能更適合該類AU。但AU23 抿嘴和AU24緊咬牙關(guān)兩項都有著加大的提升,合理的推測是因為本文方法中的特征解耦起了作用,特征解耦去除了干擾表情表征的個體信息,因此這兩個在顏色梯度上不明顯的面部動作能夠被更好地檢測。
本文通過消融實驗證明了兩個改進(jìn)的有效性,比較了單獨替換ViT[5]作為編碼器,單獨解耦個體特征和表情特征,以及同時應(yīng)用兩者的結(jié)果,詳見表2。
表2 消融實驗結(jié)果
由表中數(shù)據(jù)可知,單獨替換編碼器為ViT 可稍微提升性能,而單獨進(jìn)行特征解耦則的性能提升幅度比前者更大,同時應(yīng)用兩種改進(jìn),則最終f1-score 指標(biāo)結(jié)果有2%左右的提升。特征解耦的結(jié)構(gòu)設(shè)計能夠得到更少無關(guān)干擾信息的表情特征,能夠使ViT 編碼器更好地進(jìn)行人臉特征提取,從而提升最終整體面部動作單元檢測器的性能。
本文提出了基于自監(jiān)督的面部動作單元檢測方法,進(jìn)一步提升了面部動作單元檢測器的性能。該方法利用ViT 的出色性能,得以更好地提取包含面部信息的特征。同時,對個體信息和表情信息進(jìn)行解耦,去除了表情特征中原版含有的和人物個體相關(guān)的信息,從而使面部動作單元檢測等下游任務(wù)能夠得到具有更少干擾的面部表情特征。由于ViT 的自注意力機制需要較大的運算量,因此后續(xù)的工作主要會降低編碼器部分的復(fù)雜度,轉(zhuǎn)而在網(wǎng)絡(luò)的整體架構(gòu)以及損失函數(shù)上進(jìn)行優(yōu)化和改進(jìn)。