論文筆記分享 - Look at Boundary (A Boundary Aware Face Alignment Algorithm)
此篇文章為閱讀紀錄的筆記,部份地方可能會因為了解不足而有誤~
Introduction
About
Look at Boundary: A Boundary Aware Face Alignment Algorithm
作者:清華大學、武漢大學和商湯等人
發表年份:2018
發表會議:CVPR
Related work
在人臉對齊的文獻中,除了經典的演算法外,DCNN(深度卷積神經網路)也取得了很好的效果,基於DCNN的方法主要分為兩類: 座標迴歸模型和熱力圖迴歸模型。
座標迴歸模型儘管這個方法可以不用預先處理,但它的效果還是沒有熱力圖來的好。
熱力圖迴歸模型這個方法最近(2018)取得了不錯的成績。
About
這個論文是在講2D的人臉對齊
這個論文最大的亮點是在於它是通過預測Boundary heatmap去輔助人臉關鍵點檢測。和傳統的方法有很大的不同,從邊界線處提取人臉的特徵點可以消除定義特徵點的歧異。
(歧異的意思是說一般來說眼睛是在鼻子上面的這是沒有爭議的)
Contribution
這個演算法的效果遠遠超過了當前最優的演算法,且這個演算法還可以整合不同資料集的資料,作者為了統整不同的因素還提出了一個新的資料集WFLW
Objective
本文主要的研究問題是設計一個可以適用於多個數據集、多種標記方式的人臉對齊演算法,並且該演算法可以處理各種人臉姿態變換,還有一些人臉被遮擋的情況。
Abstract
本文主要探討的問題有三個:
- why using boundary?
- how to use boundary?
- what is the relationship between boundary estimation and landmarks localisation?
why using boundary?
關於為什麼用邊界這個問題大致整理出了下面三個比較大的原因,作者之所以用邊界是因為相對於landmark來說邊界會更好定義一點,再加上如果有被遮擋的話除了一些邊緣點,landmark幾乎不可能會在同一個位置。
還有就是人臉關鍵點的數據都可以轉成同一個數據格式,就是facial boundary heatmap。
但其實除了上面幾個原因以外,還有很多小原因,像是在資料傳遞中在邊界之間傳遞訊息的開銷會比再landmark之間傳遞要小。
relationship?
為了探索邊界和landmark的關係,作者作了一個實驗,作者提出了基於landmark邊界有效性判別器的對抗思想,採用對抗學習進一步提高嚴重遮擋的人臉姿態估計的精準度。最後實驗結果證明說,邊界預測的質量越好的話,landmark座標的精準度越高。
LAB algorithm
接著就要開始介紹本文的演算法啦!
在開始之前,簡單介紹一下本文演算法的大概流程,第一個就是先對面部heatmap進行預測,再用預測出來的結果進行landmark的回歸。如下圖:
本文演算法主要分為三個部分:
- boundary heatmap estimator
- boundary aware landmark regressor
- boundary effectiveness discriminator
Boundary aware landmark regressor
我們一開始需要常見的人臉關鍵點數據生成boundary heatmap,接著將該所有的landmark集合(S)分成K個子集合(代表有K條邊界線),再來通過插植的方法得到較高密集的邊界線,再生成一個binary boundary map判斷是在邊界上,再計算圖像中到邊界的距離得到這個distance transform map,最後利用高思分分布得到ground truth heatmap。
其中 3σ 用於過濾 Di 使邊界熱力圖更聚集在邊界區域,實際上,為了計算效率真實邊界熱力圖的長是輸入影象的 1/4。
為了更好的利用邊界熱力圖中包含的大量資訊,作者提出了一個演算法,在輸入層和每個階段上執行邊界熱力圖融合,在 landmark 迴歸網路中的多個階段使用邊界熱力圖,實驗結果表明,應用階段越多,landmark 預測效果越好。(圈圈加號是代表通道連接,圈圈乘號是代表元素點積運算)
因為boundary heatmap 在過程中被大量的使用,所以邊界熱力圖的質量至關重要,所以作者就用了boundary heatmap estimator 和boundary effectiveness discriminator來提高邊界熱力圖的質量。
Boundary heatmap estimator
在預測boundary heatmap 的過程中,作者引入了 stacked hourglass network 和 message passing 來增強人臉被遮擋的時候的穩定性。
為了緩解遮擋帶來的影響,作者採用了訊息傳遞機制來傳遞邊界間的資訊,在遮擋條件下,根據人臉結構,沒有被遮擋的邊界可以為被遮擋的邊界提供幫助。
內部訊息傳遞 在每個 stack 的結尾使用,用於傳遞不同邊界熱力圖間的資訊,所以資訊可以從沒有被遮擋的邊界傳遞到被遮擋的邊界。
層間訊息傳遞 因為沙漏的不同 stack 聚集不同的人臉資訊,因此在堆疊更多的沙漏子網路的情況下,通過層間訊息傳遞將低層資訊傳遞給高層來保證邊界熱力圖的質量。
在訊息傳遞機制的實施過程中,特徵圖在每個 stack 的最後都要被劃分成 K 個部分,K 就是邊界的數量,每個部分代表一種邊界特徵圖。這也顯示出邊界熱力圖與 landmark 熱力圖相比的優勢所在, K 的值更小而且是不變的。由於不必再 68 個 或者 194 個 landmark 之間傳遞訊息,因此邊界間訊息傳遞的計算和引數開銷較小。
因為stacked hourglass 的這種 bottom-up, top-down 的結構的特點是就是能夠充分利用多尺度的特徵映射。傳統CNN估計姿態的網路大多只使用最後一層的卷積特徵,這樣會造成訊息的丟失。事實上對於姿態估計,全身不同的關鍵點並不是在相同的feature map上具有最好的識別度,舉例來說,胳膊可能在第三層的feature map 上更容易識別到,而頭部在第五層上識別到,所以可能需要設計一個可以同時使用多個feature map的網路。
作者估計邊界的時候是採用MSE loss function,而這個有一個眾所皆知的問題就是regression to the mean,Regression to the mean是指當一次測量到極端值時,而下一次的測量會趨近於平均的現象,例如說我這次如果考試考滿分,那我下次大概率會考的比滿分還要差的意思,這個現象在最小化MSE有时候使得预测看起来模糊不可信,會破壞網路的學習。
Boundary effectiveness discriminator
為了避免上述的問題,作者便引入對抗學習,因此設計了boundary effectiveness discriminator 來判別生成的邊界熱力圖的有效性。
對於一張生成的熱力圖 M^,將其對應生成的 landmark 座標記為 S^,真實的距離矩陣圖記為 Dist,決定生成邊界熱力圖是否有效的評判器 D 的真實結果 D fake 的定義如下:
effectiveness of heatmap
LAB algorithm overview
最後整個演算法就變成下面這樣啦!
Cross data face alignment
近年來,隨著人臉對齊演算法取得不錯的進步,各種資料集也隨之釋出。但是,由於各資料集之間的標記方式不一,像是每個資料集對於landmark的數量可能所差異,因此各資料集幾乎不能被聯合使用,在某個特定資料集上訓練的模型在別的資料集上的表現往往很差。
針對這個問題,制定一個標記轉換方法又會帶來新的問題。從一個新的角度思考,可以將面部邊界作為通用的中間面部幾何表示。人臉邊界自然地使不同 landmark 標記方式得到了統一。而且它可以被用於任何標記方式的 landmark 迴歸的訓練中。跨資料集這個功能是將邊界作為人臉幾何結構得到的意外收穫。
LAB pdf
Resource
- Look at Boundary: A Boundary Aware Face Alignment Algorithm paper
- Look at Boundary: A Boundary Aware Face Alignment Algorithm open source code
- Look at Boundary: A Boundary Aware Face Alignment Algorithm project lab
- Stacked hourglass networks for human pose estimation
- Structured feature learning for pose estimation
Reference
- 機器學習 ML NOTE Convolution Neural Network 卷積神經網路
- 如何通俗易懂的解釋卷積?
- 機器學習中火爆的對抗學習是什麼,有什麼應用?
- 人臉辨識 使用5 Facial Landmarks進行臉孔校正
- 《Look at Boundary: A Boundary Aware Face Alignment Algorithm 》閱讀筆記
- 人臉關鍵對齊
- 人臉對齊(一)- 定義及作用
- Stacked Hourglass Networks 理解
- 人臉關鍵點檢測 Look at Boundary: A Boundary Aware Face Alignment Algorithm
- 論文筆記 人臉關鍵點檢測方向系列論文