CVPR 2021 Short-video Face Parsing Challenge 季军方案分享
作者丨劉瀟,司曉飛,謝江濤
編輯丨極市平臺
近日,CVPR 2021 Short-video Face Parsing Challenge 大賽已于6月21日圓滿結束。為cvpr workshop的競賽單元賽事。大賽由PIC,馬達智數和背景航空航天大學聯合主辦,極市平臺提供技術支持的國際性賽事。該賽事主要關注可以應用到各場景中的短視頻人臉解析技術。
本次大賽報名人數吸引海內外共300多支團隊參與大賽,相比往期cvpr大賽,報名人數有較大增長。本次大賽的前三名分別由騰訊、北郵模式識別實驗室及大連理工大學獲得。我們邀請到了本次大賽的第三名獲獎團隊分享他們的工作。
賽題介紹
短視頻涵蓋技能分享、幽默風趣、時尚潮流、社會熱點、街頭采訪、公益教育、廣告創意等話題,使得其在社交媒體平臺迅速流行起來。人臉解析是像素級的在人臉肖像中提取語義成分(例如嘴巴、眼睛和鼻子)。人臉解析可以提供比人臉輪廓和人臉關鍵點更加精細的信息,是一項更具挑戰性的任務。
在本次比賽中,我們將訓練一個人臉解析模型,能夠對短視頻人臉進行解析分割。評價指標為 Davis J/F score and temporal decay。
賽題分析
本次比賽的數據集由馬達智數從數據庫中挑選了總計1890段視頻,每段視頻約為20張圖像。每段視頻每秒抽取一幀,并對所有圖像進行了采樣和標注,劃分為訓練集、驗證集和測試集三部分。需要劃分的類別總共有17類(不含背景類)。經過對圖像數據的分析可以總結出該數據集有以下特點:
圖像人像區域占比較小
部分圖像中的目標區域在整體圖像中的占比較小,直接進行分割的話,一方面會引入過多的背景信息,另一方面隨著模型的下采樣,目標區域的信息會造成嚴重的丟失。
一些圖像只有部分人臉
數據集的場景覆蓋范圍較廣,部分圖像中存在只有部分人臉的情況。
數據存在一定的標注錯誤
數據集中對于人臉的左右眼,左右眼影,左右耳,左右眉毛分別標注,數據集中存在少量的標注錯誤。
部分圖像質量較差
部分數據存在分辨率較低,亮度度過高/低,運動模糊和失焦等問題。
解決方案
考慮到人像區域占比小的問題,我們先將人臉區域裁剪出來然后進行分割,減少背景帶來的噪聲。因此我們采用了一個目標檢測加語義分割的兩階段的做法來完成此次任務,使用PaddleDetection和PaddleSeg作為codebase。
第一階段:目標檢測裁剪人臉
我們訓練一個目標檢測器來裁剪人臉,因為我們只需要能把人臉檢測出來,不需要檢的很準,只需要盡可能的保證人臉都能夠檢測出來就可以,即需要一個高召回率。
我們利用數據集的標注mask,構造出人臉區域的邊界框數據集,檢測模型采用Cascade-RCNN-DCN-ResNet50-FPN,采用1x訓練策略,數據增強使用水平翻轉,其他都采用常規設置,沒有任何trick。
將檢測出的目標區域裁剪出來,作為下一階段的輸入數據。
第二階段:人臉語義分割
-
數據增廣
1)在做分割的時候大家都會加翻轉,但是對于這個任務而言,人臉是鏡像對稱的,如果圖像水平翻轉后,mask也跟著翻轉就會造成歧義 。比如左眼翻轉到右眼,但是由于鏡像對稱,它的label應該變成右眼,所以我們再水平翻轉后再把鏡像的部件翻轉回來。
2)數據集中有部分人臉的情況,因此對完整人臉區域從上下左右四個方向,以1/3、2/3進行隨機裁剪。
3)另外采用了隨機小角度旋轉和色彩抖動。
-
模型設計
在語義分割階段,我們的Baseline為OCRNet-SEHRNet-w48,為了優化邊緣分割結果引入了邊緣監督,我們在Baseline的頭部添加了一個和OCRHead并行的EdgeHead,利用邊緣信息進一步加強模型的分割精度。
OCRHead就和原始OCR一致,我們嘗試過加入Panotic-FPN,但效果不好,就直接用原始的OCR了。我們主要設計了一個EdgeHead,在原有基礎上拉出一個分支,去分割邊緣,再將edge feature 和 seg feature 融合送入Decoder分割。另外,我們還采用Edge Attention Loss來加強模型再邊緣處的分割精度,Edge Attention Loss指的是在計算分割loss的時候,依據生成的邊緣mask,只計算在邊緣區域的多分類損失。我們還參考了Matting任務的思想,在最后的decoder輸出,上采樣到原尺寸后,在full resolution的尺寸上加入幾層DenseLayer去refine分割結果。
-
損失函數設計
模型的損失構成如下式所示,總體分為兩部分, LauxL_{a u x}Laux? 和 LsegL_{s e g}Lseg? 為分割監督損 失, Ledge?L_{\text {edge }}Ledge?? 和 LatteL_{a t t e}Latte? 為邊緣監督損失。
L=λ1Laux+λ2Lseg+λ3Ledge?+λ4Latte?L=\lambda_{1} L_{a u x}+\lambda_{2} L_{s e g}+\lambda_{3} L_{\text {edge }}+\lambda_{4} L_{\text {atte }}L=λ1?Laux?+λ2?Lseg?+λ3?Ledge??+λ4?Latte??
其中, Laux?L_{\text {aux }}Laux?? 為 HRNet 的輸出進行粗分割的損失, Lseg為?L_{\text {seg為 }}Lseg為?? EANet 頭部輸出進行分割的損失。分割監督損失為 CrossEntropy Loss 和 LovaszSoftmax Loss. Ledge?L_{\text {edge }}Ledge?? 為 BCE Loss, Latte?L_{\text {atte }}Latte?? 為 Edge Attention Loss, 如上述所示,只計算邊緣區 域的多分類損失。
-
模型集成
我們評估了將edge feature與seg feature的Add和Cat的融合方式,實驗表明,Cat的融合方式性能更好。我們簡單的進行了三個模型的硬投票。三個模型分別是 OCRNet,EANet Add?_{\text {Add }}Add?? 和 EANet Cat?_{\text {Cat }}Cat?? 。其中 OCRNet 為我們的 Baseline, Add 和 Cat 表示不同的融合方式的 EANet。
-
一些Tricks
1)使用大尺寸進行推理,我們在訓練時采用448 * 448的尺寸,在推理時采用480 * 480的尺寸,小尺寸訓練,大尺寸推理。
2)我們使用PaddleSeg實現的模型,但是我們發現,PaddleSeg在推理階段是先對模型輸出的logit取argmax獲得hard label然后再用最近鄰插值恢復到原圖,這樣的推理模式在大尺寸圖上會產生嚴重的鋸齒,因此我們改進推理方式,先對logits雙線性插值到原圖獲得soft logits然后再取argmax得到最終的分割結果,這個方式提升了一個點
實驗結果
總結
除了上述的方案,我們還進行了嘗試了Mutli-Scale,Pseudo-Labelling等,骨干模型上嘗試過SwinTransformer + OCR等,分割范式嘗試過MaskRCNN等,但并沒有帶來明顯的性能提升。另外,我們嘗試過利用幀間信息,將上一幀的預測mask與當前幀的圖像拼接起來送入模型分割,該方法在val上有接近兩個點的提升,但在test上并沒有有效的提升,可能的原因是由于某一幀分割不準,造成誤差傳播到后續的幀上了。
團隊介紹
團隊成員均來自于大連理工大學,團隊成員分別為:劉瀟、司曉飛、謝江濤。
總結
以上是生活随笔為你收集整理的CVPR 2021 Short-video Face Parsing Challenge 季军方案分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 圆形的CNN卷积核?华中科大清华黄高团队
- 下一篇: 霸榜COCO和Cityscapes!南理