此篇文章為閱讀紀錄的筆記,部份地方可能會因為了解不足而有誤~

Introduction

About

Look at Boundary: A Boundary Aware Face Alignment Algorithm

作者:清華大學、武漢大學和商湯等人
發表年份:2018
發表會議:CVPR

在人臉對齊的文獻中,除了經典的演算法外,DCNN(深度卷積神經網路)也取得了很好的效果,基於DCNN的方法主要分為兩類: 座標迴歸模型和熱力圖迴歸模型。

座標迴歸模型儘管這個方法可以不用預先處理,但它的效果還是沒有熱力圖來的好。
熱力圖迴歸模型這個方法最近(2018)取得了不錯的成績。

About

這個論文是在講2D的人臉對齊
這個論文最大的亮點是在於它是通過預測Boundary heatmap去輔助人臉關鍵點檢測。和傳統的方法有很大的不同,從邊界線處提取人臉的特徵點可以消除定義特徵點的歧異。
(歧異的意思是說一般來說眼睛是在鼻子上面的這是沒有爭議的)

Contribution

這個演算法的效果遠遠超過了當前最優的演算法,且這個演算法還可以整合不同資料集的資料,作者為了統整不同的因素還提出了一個新的資料集WFLW

Objective

本文主要的研究問題是設計一個可以適用於多個數據集、多種標記方式的人臉對齊演算法,並且該演算法可以處理各種人臉姿態變換,還有一些人臉被遮擋的情況。

Abstract

本文主要探討的問題有三個:

  1. why using boundary?
  2. how to use boundary?
  3. 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-aware-algorithm

本文演算法主要分為三個部分:

  1. boundary heatmap estimator
  2. boundary aware landmark regressor
  3. boundary effectiveness discriminator

lab

Boundary aware landmark regressor

boundary-aware-algorithm

我們一開始需要常見的人臉關鍵點數據生成boundary heatmap,接著將該所有的landmark集合(S)分成K個子集合(代表有K條邊界線),再來通過插植的方法得到較高密集的邊界線,再生成一個binary boundary map判斷是在邊界上,再計算圖像中到邊界的距離得到這個distance transform map,最後利用高思分分布得到ground truth heatmap。

boundary-aware-algorithm

其中 3σ 用於過濾 Di 使邊界熱力圖更聚集在邊界區域,實際上,為了計算效率真實邊界熱力圖的長是輸入影象的 1/4。
為了更好的利用邊界熱力圖中包含的大量資訊,作者提出了一個演算法,在輸入層和每個階段上執行邊界熱力圖融合,在 landmark 迴歸網路中的多個階段使用邊界熱力圖,實驗結果表明,應用階段越多,landmark 預測效果越好。(圈圈加號是代表通道連接,圈圈乘號是代表元素點積運算)

boundary-aware-algorithm

因為boundary heatmap 在過程中被大量的使用,所以邊界熱力圖的質量至關重要,所以作者就用了boundary heatmap estimator 和boundary effectiveness discriminator來提高邊界熱力圖的質量。

boundary-aware-algorithm

Boundary heatmap estimator

在預測boundary heatmap 的過程中,作者引入了 stacked hourglass network 和 message passing 來增強人臉被遮擋的時候的穩定性。

boundary-aware-algorithm

為了緩解遮擋帶來的影響,作者採用了訊息傳遞機制來傳遞邊界間的資訊,在遮擋條件下,根據人臉結構,沒有被遮擋的邊界可以為被遮擋的邊界提供幫助。
內部訊息傳遞 在每個 stack 的結尾使用,用於傳遞不同邊界熱力圖間的資訊,所以資訊可以從沒有被遮擋的邊界傳遞到被遮擋的邊界。
層間訊息傳遞 因為沙漏的不同 stack 聚集不同的人臉資訊,因此在堆疊更多的沙漏子網路的情況下,通過層間訊息傳遞將低層資訊傳遞給高層來保證邊界熱力圖的質量。

boundary-aware-algorithm

在訊息傳遞機制的實施過程中,特徵圖在每個 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​ 的定義如下:

boundary-aware-algorithm

effectiveness of heatmap

boundary-aware-algorithm

LAB algorithm overview

最後整個演算法就變成下面這樣啦!

boundary-aware-algorithm

Cross data face alignment

近年來,隨著人臉對齊演算法取得不錯的進步,各種資料集也隨之釋出。但是,由於各資料集之間的標記方式不一,像是每個資料集對於landmark的數量可能所差異,因此各資料集幾乎不能被聯合使用,在某個特定資料集上訓練的模型在別的資料集上的表現往往很差。

針對這個問題,制定一個標記轉換方法又會帶來新的問題。從一個新的角度思考,可以將面部邊界作為通用的中間面部幾何表示。人臉邊界自然地使不同 landmark 標記方式得到了統一。而且它可以被用於任何標記方式的 landmark 迴歸的訓練中。跨資料集這個功能是將邊界作為人臉幾何結構得到的意外收穫。

LAB pdf

pdf

Resource

  1. Look at Boundary: A Boundary Aware Face Alignment Algorithm paper
  2. Look at Boundary: A Boundary Aware Face Alignment Algorithm open source code
  3. Look at Boundary: A Boundary Aware Face Alignment Algorithm project lab
  4. Stacked hourglass networks for human pose estimation
  5. Structured feature learning for pose estimation

Reference

  1. 機器學習 ML NOTE Convolution Neural Network 卷積神經網路
  2. 如何通俗易懂的解釋卷積?
  3. 機器學習中火爆的對抗學習是什麼,有什麼應用?
  4. 人臉辨識 使用5 Facial Landmarks進行臉孔校正
  5. 《Look at Boundary: A Boundary Aware Face Alignment Algorithm 》閱讀筆記
  6. 人臉關鍵對齊
  7. 人臉對齊(一)- 定義及作用
  8. Stacked Hourglass Networks 理解
  9. 人臉關鍵點檢測 Look at Boundary: A Boundary Aware Face Alignment Algorithm
  10. 論文筆記 人臉關鍵點檢測方向系列論文