上一篇專欄文章中,我們介紹了人臉表情識別的相關概念以及研究現狀並了解了目前基於圖片的人臉表情識別領域最常用的幾個數據集。本文將介紹基於圖片的人臉表情識別中最常用的預處理方式和對應的方法。
作者|Menpinland
編輯|言有三
跟其他人臉相關的機器學習任務一樣,在人臉表情識別中,對人臉進行預處理通常都是一個必不可少的環節。雖然可以利用深度學習方法在不經過預處理的情況下實現端到端的表情識別,但在實際場景下,表情數據通常是用戶非限制條件下拍攝產生,在這種環境下拍攝到的人臉存在著姿態變換、光線、遮擋等問題,端到端的表情方法在複雜的現實條件下很容易產生誤差。恰當的預處理能夠減少因圖像質量對識別效果的影響,同時也能提升算法的魯棒性。本文參考近年的兩篇人臉表情識別綜述[1,2],總結出在人臉表情識別預處理中較為常用的預處理方法:
1人臉檢測
人臉檢測基本上是所有人臉有關的任務中都會包含的一個預處理模塊,它把人臉從複雜的圖像中提取出來,後續只需專注於提取人臉的相關特徵,從而有效提升相關任務的效果。最常用的人臉提取方法是Viola和Jones在2001年在[3]提出的Viola-Jones(下面簡稱V&J)目標檢測器,它基於類Haar特徵以及Adaboost分類器實現了一個實時目標檢測的框架。同時由於Haar特徵更適合於人臉,因此其作為人臉檢測工具被更多人熟知。OpenCV中的Haar分類器就是基於Viola-Jones方法的一個改進版本[4]。
圖1|OpenCV中使用Haar分類器進行人臉檢測
當然還有基於深度學習的人臉檢測算法,如比較著名的多任務級聯卷積神經網絡(Multi-TaskCascadedConvolutionalNetwork,MTCNN)[5],或者直接用目標檢測的相關算法進行人臉的檢測,如Faster-CNN、SSD等進行。有關人臉檢測方法的選擇,在[2]中,對V&J和MTCNN做了簡單的對比:「儘管在大部分的論文中V&J仍然是人臉檢測方法中最常見的選擇,但MTCNN在保證實時性的同時,在人臉檢測和人臉對齊的幾個具有挑戰性的基準測試中勝過V&J。V&J仍然是使用最多的人臉檢測器的主要原因是,過去大多數論文都在受控條件表情數據集中對他們提出的人臉表情識別方法進行實驗,而V&J可以在受控的數據集中穩定地檢測到人臉。在非受控(自然)條件表情資料庫中實驗人臉表情識別方法通常是使用MTCNN」。
圖2|MTCNN檢測原理
2臉部歸一化
前面提到,如果是在非受控條件下,人臉數據很可能會受到姿態變換、光線、遮擋等問題的幹擾,在這些情況下,人臉表達情緒的核心區域(眼睛、嘴巴)的信息就會缺失,從而大大影響模型訓練/測試的效果。因此,一些研究者考慮採用一些方法將人臉轉換為歸一化(normalization)的人臉(正臉、對比度合適、無遮擋)再進行表情識別模型的訓練。
光照歸一化:早期研究[6]主要通過基於各向同性擴散(isotropicdiffusion,IS)的歸一化、基於離散餘弦變換(discretecosinetransform,DCT)的歸一化、高斯函數差分(differenceofGaussian,DoG)進行光照歸一化;隨後一些研究表明,與單獨使用光照歸一化相比,直方圖均衡與光照歸一化方法相結合可獲得更好的人臉識別性能,因此部分的研究者也將這種方法應用到表情識別中[7,8];但是,直接使用直方圖均衡可能會過分突出局部對比度,為了解決這個問題,[9]提出了一種加權求和方法,將直方圖均衡和線性映射相結合。
圖3|論文[9]中的光照歸一化(從左到右依次為原始圖片、直方圖均衡後的圖、線性映射後的圖、直方圖均衡和線性映射加權求和後的圖)
姿態歸一化:姿態歸一化主要內容就是將一些側臉的人臉圖像轉化為正面的人臉圖,最直接有效的方法是先進行三維重建,然後通過反投影的方式來合成原始圖像的正臉圖像[10];通過GAN來生成正臉表情也是近些年出現比較頻繁的姿態歸一化方式[11,12]。(ps:由於姿態歸一化有可能導致改變表情,尤其是在非受控條件下,因此近些年的文章也很少用姿態歸一化進行預處理)
圖4|論文[10]中姿態歸一化的方法
去除遮擋:遮擋問題相對於光照、姿態變換更加複雜,原因在於遮擋現象的出現是很不規律的。遮擋的部位可能是人臉上任意部位,遮擋物也可以是任意東西(頭髮、眼睛甚至拍攝圖片時的外部物體),因此更多的文章[13,14]是把帶遮擋的表情識別單獨作為研究命題,通過構建特殊網絡對含有遮擋的人臉表情進行識別。
圖5|論文[13]中通過人工合成帶遮擋的圖片對帶遮擋的表情識別進行研究
3數據增強
最後一種預處理也是所有深度學習任務最常用的預處理方式——數據增強。深度學習需要足夠多的訓練數據才能保證算法模型的準確性與泛化能力,在表情識別領域,即便是研究得最久遠的基於圖片的人臉表情識別,目前最大的數據集AffectNet是40多萬張圖,跟ImageNet、VGGFace2等數據集相比還是小巫見大巫,至於其他更小眾的表情識別(如微表情識別)則更是少之又少。因此,有關表情識別的論文中基本上都會包含數據增強這步預處理操作。
常規的數據增強方式可參考有三AI過去的文章《【
「技術綜述」深度學習中的數據增強方法都有哪些?
》。
文獻[15]考慮到人臉表情數據特殊性,採用的增強方式都保留人臉表達情緒的核心區域;考慮到增強後的數據很可能會缺乏人臉表達情緒的核心區域,文獻[16,17]在測試時僅採用人臉的中央區域作為測試,文獻[18,19]對單幅圖像增強後的所有圖像進行預測並用取均值的方式預測該幅圖像對應表情類別;也有通過三維模型[20]或者GAN[21]來生成表情數據進行數據增強。
4上期補充
在上一篇專欄發出後,有位小夥伴提供了有關FER2013數據集使用的一些建議,因此筆者也在此處做補充。FER2013是一個通過Google搜尋引擎然後爬取收集成的一個人臉表情數據集,也是應該第一個比較有名的非受控條件下人臉表情的數據集。但該數據集最大的問題是許多與人臉表情毫無相關的圖片會被貼上表情的標籤,標註錯誤的樣本也不少,因此如果直接使用一些經典的深度學習模型去訓練,在不加任何tricks的情況下,識別準確率。針對數據集存在的問題,微軟在2016年重新標定了FER2013數據集並命名為FERplus,用重新標定後的數據集識別準確率會有所提高(筆者曾用同樣的方法,在FER2013中識別的準確率50%-60%,在FERplus中準確率70%-80%)。微軟的工作論文可參考[22],代碼可參考:https://github.com/microsoft/FERPlus。近幾年許多文章在實驗對比中也是會直接採用FERplus作為自己方法的對比。最後感謝上次小夥伴的留言,也歡迎其他大佬提供更多專欄的相關建議。
圖6|同樣的圖片,FER2013(上)與FERplus(下)標籤對比
5參考文獻
[1]LiS,DengW.Deepfacialexpressionrecognition:Asurvey[J].IEEETransactionsonAffectiveComputing,2020.
[2]CanedoD,NevesAJR.FacialExpressionRecognitionUsingComputerVision:ASystematicReview[J].AppliedSciences,2019,9(21):4678.
[3]ViolaP,JonesM.Rapidobjectdetectionusingaboostedcascadeofsimplefeatures[C]//Proceedingsofthe2001IEEEcomputersocietyconferenceoncomputervisionandpatternrecognition.CVPR2001.IEEE,2001,1:I-I.
[4]LienhartR,MaydtJ.Anext
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺「網易號」用戶上傳並發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.