天天看點

[人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm

轉載請注明作者和出處: http://blog.csdn.net/john_bh/

論文連結:Look at Boundary: A Boundary-Aware Face Alignment Algorithm

作者及團隊:清華大學 & 商湯

會議及時間:CVPR 2018

項目位址:LAB官方位址

code:作者開源github – caffe

code:github 位址

文章目錄

    • 1.主要貢獻
      • 1.2 問題以及解決方案
    • 2.Boundary-Aware Face Alignment
      • 2.1 Boundary-aware landmarks regressor
      • 2.2 Boundary heatmap estimator
      • 2.3. Boundary effectiveness discriminator
    • 3. Experiments
      • 3.1. Comparison with existing approaches
      • 3.2 Ablation study
    • 4.Supplementary Material

1.主要貢獻

作者提出了一種新的邊緣感覺(boundary-aware)人臉對齊算法,該算法利用邊緣作為人臉的幾何結構進行面部特征點定位(facial landmark localisation)。與傳統的兩種方法(基于熱點和基于回歸)不同,LAB是從邊緣提取面部特征點,消除了特征點定義的模糊性。在本文探讨并回答如下三個問題:

  • 1.為什麼要使用邊緣?
  • 2.如何使用邊緣?
  • 3.邊緣估計與特征點定位之間的關系是什麼?

并且在開源資料集300-W、COFW、AFLW上均重新整理了記錄。

此外,作者團隊提出了一個新的資料集WFLW(Wider Facial Landmark in the Wild),以統一針對不同因素(包括姿勢,表情,照明,化妝,遮擋和模糊)的訓練和測試,該資料集共10000個樣本,7500供訓練,2500供測試;标簽提供了人臉框資訊、98個特征點資訊、6種屬性資訊(姿态、表情、光照、化妝、遮擋、模糊)。

資料集和模型可通過 https://wywu.github.io/projects/LAB/LAB.html 公開擷取。

1.2 問題以及解決方案

研究的問題:

  1. 人臉關鍵的定義标注不一緻,在複雜情況(遮擋,大的頭部姿勢下等),準确的标注人臉關鍵點比較困難;
  2. 在各個資料集間存在人臉關鍵點定義方式不一緻問題;
  3. 在複雜的環境下,如何準确的進行人臉關鍵點定位

解決辦法

  1. 對于問題1和問題2,作者利用人臉邊緣作為人臉幾何結構來輔助人臉關鍵點定位,采用13條邊界線來表示人臉結構,每條邊界線可以通過對多個資料集上足夠多的面部 landmark 進行插值得到,而且不會受不同标記方式的影響
  2. 對于問題3,作者首先使用堆疊沙漏結構對邊界熱力圖進行預測,為了增強遮擋狀态下的魯棒性,使用消息傳遞機制對人臉邊界間的關系進行模組化。人臉邊界熱力圖生成之後,下一步就是利用邊界得到人臉landmarks。

堆疊沙漏網絡:堆疊沙漏網絡因為其自下而上、自上而下的設計使得網絡可以擷取多尺度資訊進而取得了不錯的精确度。

消息傳遞機制:消息傳遞機制在人體關節結構模組化中的效果很好。

邊緣感覺人臉對齊算法包含兩個階段:

  1. 估計面部邊界熱圖;
  2. 利用邊界熱圖對人臉關鍵點回歸

從圖1可以看出,不同标注方案的人臉地标可以從定義相同的邊界熱力圖中得到。

[人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm

2.Boundary-Aware Face Alignment

人臉對齊輔助手段:

1)幾何結構(geometric structure):文獻【31/47/19】均有采取輔助手段進行人臉對齊工作,但相對邊界而言其太粗糙

2)人臉解析(face parsing):需要将每個部分連接配接為一個封閉回路,如此導緻某些器官,如鼻子,被混合到整個人臉,如此定義是不恰當的,而邊界線不需要形成閉環,在表示幾何結構時更加靈活。

[人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm

由Fig.2 看出,基于邊緣感覺人臉關鍵點算法架構由三個部分組成:

  1. 邊緣感覺 Landmark 回歸器(Boundary-aware landmarks regressor):引入邊緣熱圖融合方案,以多階段的方式融合邊緣資訊,将邊緣資訊納入回歸問題的特征學習中,預測 landmark 坐标。
  2. 邊緣熱圖估計器(Boundary heatmap estimator):基于hourglass 網絡 估計邊緣熱圖, 引入消息傳遞層以處理遮擋
  3. 基于 landmark 的邊緣有效性判别器(Boundary effectiveness discriminator):與邊緣熱圖估計器配對,可以進一步提高邊界熱圖的品質,實作更好的 landmark 坐标預測

2.1 Boundary-aware landmarks regressor

為了将邊界融合到特征學習中,将 landmark 轉化為邊界熱圖來輔助特征學習。邊界熱圖中各個像素取決于它們到相應邊界線的距離。如圖3所示,邊界熱圖的細節定義如下:

[人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm
13條邊界線定義:外輪廓、左眉、右眉、鼻梁、鼻邊界、左上眼皮、左下眼皮、右上眼皮、右下眼皮、上嘴唇上邊、上嘴唇下邊、下嘴唇上邊、下嘴唇下邊
  • 給定 I I I為人臉圖像, L L L為 g r o u n d − t r u t h ground-truth ground−truth,記 S = { s l } l = 1 L S=\{s_l\}_{l=1}^{L} S={sl​}l=1L​ ;
  • 将 S S S 劃分成 K K K 個子集, K K K表示邊界個數,每個子集代表相應邊界線上的 landmarks,例如左上眼睑和鼻梁
  • 對每個子集 S i S_i Si​進行插值得到的邊界線;
  • 周遊圖檔中的每個像素點,若在邊界線上,則标記為 1,否則為 0,最終得到一個二值邊界圖 B i B_i Bi​(大小與輸入圖像 I I I相同的 0 1 矩陣);
  • 基于 B i B_i Bi​計算距離變換得到距離圖 D i D_i Di​(每個點到對應邊緣的距離);
  • 用标準差為 σ \sigma σ的高斯表達式來變換距離映射 D i D_i Di​ 為真實邊界熱力圖 M i M_i Mi​,如下式1,

    M i ( x , y ) = { e x p ( − D i ( x , y ) 2 2 σ 2 ) , i f D i ( x , y ) < 3 σ 0 , o t h e r w i s e M_i(x,y)=\begin{cases} exp(-\frac{D_i(x,y)^2}{2\sigma^2}),& ifD_i(x,y)<3\sigma \\ 0, &otherwise\end{cases} Mi​(x,y)={exp(−2σ2Di​(x,y)2​),0,​ifDi​(x,y)<3σotherwise​

    3 σ 3\sigma 3σ為門檻值,能更好保證邊界熱力圖在邊界區域,實際應用中,為了計算效率,一般設定真實邊界熱力圖長度為 I I I的1/4大小。

為了更好地利用豐富的邊界熱力圖資訊,采用多級邊界熱力圖資訊融合機制,如圖2中,4級res-18網絡作為基礎網絡,每級網絡都進行邊界資訊融合(Boundary heatmap fusion),包含1次輸入圖像融合(Input Image Fusion),3次特征圖融合(Feature Map Fusion)。實驗結果表明在基礎網絡上執行的如何次數越多,得到的效果越好。

  • Input image fusion

    H = I ⊕ ( M 1 ⊗ I ) ⊕ . . . ⊕ ( M T ⊗ F ) H=I\oplus(M_1\otimes I)\oplus...\oplus(M_T\otimes F) H=I⊕(M1​⊗I)⊕...⊕(MT​⊗F)

    其中 ⊕ \oplus ⊕表示通道連接配接(channel-wise concatenation); ⊗ \otimes ⊗表示像素點積運算(element-wise dot product operation).

    上面的設計使得融合的輸入隻關注邊界周圍的細節紋理。進而忽略了大部分背景和無紋理的人臉區域,大大提高了輸入的有效性。原始輸入還連接配接到融合的輸入,以便在原始圖像中保留其他有價值的資訊。

  • Feature map fusion

    與輸入圖像融合類似,邊界特征熱圖 M M M,通道數固定,即邊界線個數13,特征圖 F F F,融合特征圖 H H H表示如下:

    H = F ⊕ ( F ⊗ T ( M ⊕ F ) ) H=F\oplus(F\otimes T(M\oplus F)) H=F⊕(F⊗T(M⊕F))

    點積時,要求通道數相同, T T T變換來完成這個工作,選用hourglass 結構作為 T T T變換,上下采樣平衡,保證特征圖大小一緻,Skip connections保證多尺度資訊,sigmod歸一化輸出為 [ 0 , 1 ] [0,1] [0,1],卷積stride為1,保證覆寫到局部區域。如下圖所示:

    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm

2.2 Boundary heatmap estimator

與之前的人臉對齊和人體姿勢的研究方法一樣,作者也采用 stack hourglass 通過最小化生成邊界熱圖與真實邊界熱圖之間的均方誤差(MSE)對邊界熱圖進行預測,但是,當人臉被嚴重遮擋時,生成的熱圖總是受到噪聲和多模響應的影響,如圖5所示:

[人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm

為了緩解遮擋帶來的影響,作者采用了消息傳遞機制來傳遞邊界間的資訊,過程如下圖所示:

[人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm

在遮擋過程中,根據臉部結構,可見的邊界可以為遮擋的邊界提供幫助。

  • Intra‐level Message Passing

    在每個stack的末尾使用Intra-level message passing,以在不同的邊界熱圖之間傳遞資訊。 是以,資訊可以從可見邊界傳遞到遮擋邊界。 而且,不同的 stacks of hourglass 會關注面部的不同方面的資訊。 如圖2中紅色的MPL子產品。

  • Inter-level message passing

    用于将消息從較低的stack傳遞到較高的stack,以在堆疊更多的 hourglass 子網時保持邊界熱圖的品質。

  • 消息通信機制詳解

    在實作中,需要将每個堆棧末尾的特征圖劃分為 K K K個分支,其中 K K K是邊界數,每個分支代表一種邊界特征圖。 這也顯示出邊界熱圖與 landmark 熱圖相比的優勢所在,因為它們的常數 K K K較小且恒定(13),是以不必再 68 個 或者 194 個 landmark 之間傳遞消息,是以邊界間消息傳遞的計算和參數開銷較小。

    具體來說,通過一系列的卷積和 entrywise sum 操作,可以有效地實作消息傳遞層。通過在每個沙漏堆棧中附加損失,這些消息層可以與網絡的核心聯合學習,如下圖所示:

    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm

    在stack t t t 末端進行 1 × 1 1\times1 1×1卷積得到的256個通道的特征為 h t h_t ht​,在消息傳遞之前,stack t t t 中的每個邊界 i i i 可以表示為有16個通道的特征 A i t A^t_i Ait​,計算如下:

    A i t = f ( h t ∗ w a i t ) A^t_i=f(h_t * w^{a^t_i}) Ait​=f(ht​∗wait​)

    • w a i t w^{a^t_i} wait​:邊界 i i if的濾波組
    • *:卷積操作
    • f f f:非線性激活函數
    • 消息傳遞前的特征是 A i t A^t_i Ait​,消息傳遞後的特征是 A i ′ t A^{'^t}_i Ai′t​

    舉例:從 stack1 到 stack2中邊界6(左眉) 間的正向消息傳遞過程

    按照圖6中的樹形結構,堆棧2中的左眉捕獲來自兩個節點的消息,即堆棧2中的邊界2(左上眼睑)和堆棧1中的邊界6(左眉)。 是以,從層内和層間邊界接收資訊後,堆棧2中邊界6的改進特征可以表示為:

    A 6 ′ 2 = f ( A 6 2 + A 2 ′ 2 ∗ w a 2 2 , a 6 2 + A 6 ′ 1 ∗ w a 6 1 , a 6 2 ) A^{'2}_6=f(A^2_6+A^{'^2}_2 *w^{a^2_2,a^2_6} +A^{'^1}_6* w^{a^1_6,a^2_6}) A6′2​=f(A62​+A2′2​∗wa22​,a62​+A6′1​∗wa61​,a62​)

    A 2 ′ 2 ∗ w a 2 2 , a 6 2 A^{'^2}_2 *w^{a^2_2,a^2_6} A2′2​∗wa22​,a62​表示消息來自 intra-level 邊界 A 2 ′ 2 A^{'^2}_2 A2′2​;

    A 6 ′ 1 ∗ w a 6 1 , a 6 2 A^{'^1}_6* w^{a^1_6,a^2_6} A6′1​∗wa61​,a62​表示消息來自 inter-level 邊界 A 6 ′ 1 A^{'^1}_6 A6′1​

    反向傳遞: 通過相反方向樹獲得的特征 B i ′ t B^{'^t}_i Bi′t​與 A i ′ t A^{'^t}_i Ai′t​ 連接配接在一起,以獲得最終的預測熱圖,公式如下所示:

    M ^ i t = ( A i ′ t ⊕ B i ′ t ) ∗ w ′ a i t \hat M^t_i=(A^{'^t}_i \oplus B^{'^t}_i )*w^{'^{a^t_i}} M^it​=(Ai′t​⊕Bi′t​)∗w′ait​

    • ⊕ \oplus ⊕ 表示連接配接;
    • w ′ a i t w^{'^{a^t_i}} w′ait​: 1 × 1 1 \times 1 1×1的卷積濾波器組得到 stack t t t 中邊界 i i i 的單通道預測熱圖

      每個stack hourglass 網絡預測 K K K 個熱圖 M ^ t = { M ^ i } i = 1 K \hat M^t=\{\hat M_i\}^K_{i=1} M^t={M^i​}i=1K​,損失函數是MSE:

      L G = 1 2 N ∑ i = 1 N ∑ i = 1 K ∣ ∣ M ^ i t − M i t ∣ ∣ 2 2 L_G=\frac{1}{2N}\sum^N_{i=1}\sum^K_{i=1}||\hat M^t_i -M^t_i||^2_2 LG​=2N1​i=1∑N​i=1∑K​∣∣M^it​−Mit​∣∣22​

      N是樣本個數。

2.3. Boundary effectiveness discriminator

邊界熱圖估計,采用MSE(mean squared error)作為loss function,但最小化MSE有時候使得預測看起來模糊不可信。然後,又很難定義好的評估矩陣來評價boundary heatmaps的品質,是以,作者采用一個邊界有效判别器D(boundary effectiveness discriminator)來區分生成boundary heatmaps的有效性,對于一張生成的熱力圖 M ^ \hat M M^ ,将其對應生成的 landmark 坐标記為 S ^ \hat{S} S^,真實的距離矩陣圖記為 D i s t Dist Dist,決定生成邊界熱力圖是否有效的評判器 D D D 的真實結果 d f a k e d_{fake} dfake​ 的定義如下:

d f a k e ( M ^ , S ^ ) = { 0 , P r s ∈ S ^ ( D i s t ( s ) < θ ) < δ 1 , o t h e r w i s e d_{fake}(\hat M,\hat S)=\begin{cases} 0,& Pr_{s\in\hat S}(Dist(s)<\theta)<\delta \\ 1, &otherwise\end{cases} dfake​(M^,S^)={0,1,​Prs∈S^​(Dist(s)<θ)<δotherwise​

其中 θ \theta θ表示距離門檻值, δ \delta δ表示機率門檻值;意思是某一張邊緣圖預測出來的對應的關鍵點在 D i s t D_{ist} Dist​ 圖上的值,到真實邊緣的距離小于某個門檻值 θ \theta θ的可能性小于某個機率門檻值 δ \delta δ,則說明生成的邊緣熱力圖的品質不怎麼樣。

與參考文獻 [9,10] 的做法,作者引入對抗學習思想來輔助邊界有效性判别器 D D D 和邊界熱圖估計器 G G G,

  • D D D 的損失函數如下:

    L D = − ( E [ l o g D ( M ) ] + E [ l o g ( 1 − ∣ D ( G ( I ) ) − d f a k e ∣ ) ] ) \mathcal{L_D}=-(\mathbb{E}[logD(M)]+\mathbb{E}[log(1-|D(G(I))-d_{fake}|)]) LD​=−(E[logD(M)]+E[log(1−∣D(G(I))−dfake​∣)])

    M M M代表真實的邊緣熱圖

  • 對抗性損失可以表示為

    L A = E [ l o g ( 1 − D ( G ( I ) ) ) ] \mathcal{L_A}=\mathbb{E}[log(1-D(G(I)))] LA​=E[log(1−D(G(I)))]

    下面的僞代碼展示了整個方法的訓練過程:

    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm

3. Experiments

3.1. Comparison with existing approaches

  • 300W實驗結果: 為了驗證邊界圖的有效性和潛力,作者在提出的方法中使用了ground truth boundary,并名為“LAB+oracle”的結果,該結果明顯優于所有方法,結果表明了邊界資訊的有效性,如果能夠很好地捕捉到邊界資訊,則可以獲得較大的性能收益。
    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm
    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm
  • WFLW 實驗結果:
    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm
  • COFW 和 AFLW 實驗結果: 為了驗證LAB方法處理交叉資料集人臉對齊的能力,作者使用在300W Fullset上訓練的邊界熱圖估計器,該估計器與COFW和AFLW資料集沒有重疊,并比較了使用和不使用邊界資訊融合的性能(“ LAB w / o boundary”)。
    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm
    在不使用邊界資訊和使用邊界資訊的情況下,LAB的方法有明顯的改進。由于人臉邊界的泛化,在300W上學習的估計量可以友善地為COFW-29[5]和AFLW[28]資料集的坐标回歸提供邊界資訊,盡管這些資料集具有不同的注釋協定。由于COFW覆寫了不同程度的遮擋,且AFLW具有顯著的視圖變化和挑戰性的形狀變化,是以研究結果強調了邊界資訊對遮擋、姿态和形狀變化的魯棒性。
    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm

3.2 Ablation study

作者以res-18網絡為基準(BL),分析每一個組成部分,即使用基線沙漏邊界估計器(“HBL”)、消息傳遞(“MP”)和對抗學習(“AL”),通過比較它們的平均錯誤和失敗率。總體結果如圖8所示。

[人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm
  • Boundary information

    作者選擇邊界資訊作為幾何結構表示。為了驗證了其他結構資訊的潛力,面部高斯分布(“FPG”)和面解析結果(“FP”)。在表5中使用不同的結構資訊報告了oracle結果的 landmark 精度。邊界圖(BM)是最有效的一種。

    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm
  • Boundary information fusion

    邊界資訊融合是算法的關鍵步驟之一。可以對回歸網絡的邊界資訊進行不同層次的融合。如表6所示,最終的模型融合了所有四個級别的邊界資訊,将平均誤差從7.12%提高到6.13%。可以觀察到,通過融合更多級别的邊界熱圖,性能得到了一緻的提高。

    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm
    驗證了融合方案的有效性,表7中幾種設定的平均誤差結果,即、res-18基線網絡(“BL”)、無邊界特征的沙漏子產品(“HG/B”)、有邊界特征的沙漏子產品(“HG”)和有邊界特征的連續卷積層(“CL”)。通過“BL+HG”與“BL+HG/B”的比較,可以看出邊界資訊融合的有效性,而不是網絡結構的變化。表明了沙漏結構設計的有效性。
    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm
  • Message passing

    當出現嚴重遮擋時,消息傳遞對于提高熱圖品質起着至關重要的作用。在WFLW的遮擋子集上,如圖8 (b)所示,消息傳遞結合了可見邊界和遮擋邊界的資訊,使得平均誤差相對降低了11%以上。

  • Adversarial learning

    對抗性學習進一步提高了邊界熱圖的品質和有效性。如圖5所示,當加入不利損失時,熱圖可以觀察到更加集中和突出。為了驗證基于裡程碑的邊界有效性鑒别器的有效性,在300W挑戰集上測試了一種使用傳統定義鑒别器的基線方法,故障率從5.19%降低到3.70%。

  • Relationship between boundary estimator and landmarks regressor

    通過對熱圖估計品質和最終預測精度的分析,評價了邊界估計器與地标回歸器之間的關系。在表8中報告了估計的熱圖和相應地标精度的MSE。通過消息傳遞(“HBL+MP”)和對抗性學習觀察到這一點(“HBL+AL”),減少了熱力圖估計的誤差和地标精度。

    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm

4.Supplementary Material

  • Qualitative Evaluation of Boundary Cues

    為了說明邊界資訊對地标回歸器學習的指導作用,作者對兩階段采樣的特征圖進行分辨率可視化分别是 64 × 64 64\times 64 64×64和 32 × 32 32\times 32 32×32。為了便于比較,圖2還顯示了一個沒有邊界資訊的“Res-18”基線網絡的可視化結果。可以清楚地看到,加入邊界資訊後,feature map往往比baseline network更關注人臉邊界。這些邊界引導的特征圖将大大簡化地标回歸器的學習,進而提高網絡參數的效率。

    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm
  • Qualitative Results

    如圖3所示,即使存在嚴重的遮擋,LAB估計的邊界熱圖仍然是非常可信和有重點的。在邊界線索的幫助下,預測的界标對被遮擋的部分也具有一定的魯棒性。

    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm
    為了評估LAB在挑戰表情變化、光照和視圖變化時的魯棒性,圖4 展示了在300W挑戰集上估計的邊界熱圖和預測 landmark。
    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm
    此外,在跨資料集邊界線索的幫助下,COFW-29(29個landmarks)和 landmarks 定位的可視化結果,AFLW-Full(19個landmarks)定位的可視化結果分别如圖5和圖6所示:
    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm
    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm
    98點注釋的多視圖表示和位置如圖7所示。此外,WFLW還提供了豐富的屬性注釋,包括pose、表達式、光照、化妝、遮擋和模糊,以全面分析現有的算法。
    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm
    如圖8所示,由于表情、姿态和遮擋的巨大變化,所提出的資料集中的人臉都是在不受限制的條件下收集的,具有極大的挑戰性。
    [人臉關鍵點檢測] Look at Boundary: A Boundary-Aware Face Alignment Algorithm