從傳統方法到深度學習,人臉關鍵點檢測方法綜述

 2017-12-17 11:49:00.0

原標題:從傳統方法到深度學習,人臉關鍵點檢測方法綜述

作者:餘霆嵩

人臉關鍵點檢測是人臉識別和分析領域中的關鍵一步,它是諸如自動人臉識別、表情分析、三維人臉重建及三維動畫等其它人臉相關問題的前提和突破口。近些年來,深度學習方法由於其自動學習及持續學習能力,已被成功應用到了圖像識別與分析、語音識別和自然語言處理等很多領域,且在這些方面都帶來了很顯著的改善。因此,本文針對深度學習方法進行了人臉關鍵點檢測的研究。

關鍵詞:人臉關鍵點;人臉特徵點;人臉對齊;卷積神經網絡

目錄

一、引言

二、人臉關鍵點檢測方法

2.1 ASM (Active Shape Models)

2.2 AAM(Active Appearance Models)

2.3 CPR(Cascaded pose regression)

2.4 DCNN

2.5 Face++版 DCNN

2.6 TCDCN

2.7 MTCNN

2.8 TCNN(Tweaked Convolutional Neural Networks)

2.9 DAN(Deep Alignment Networks)

三、結語

參考文獻

一、引言

人臉關鍵點檢測也稱爲人臉關鍵點檢測、定位或者人臉對齊,是指給定人臉圖像,定位出人臉面部的關鍵區域位置,包括眉毛、眼睛、鼻子、嘴巴、臉部輪廓等和人臉檢測類似,由於受到姿態和遮擋等因素的影響,人臉關鍵點檢測也是一個富有挑戰性的任務。

人臉關鍵點檢測是人臉識別任務中重要的基礎環節,人臉關鍵點精確檢測對衆多科研和應用課題具有關鍵作用,例如,人臉姿態矯正、姿態識別、表情識別、疲勞監測、嘴型識別等。因此,如何獲取高精度人臉關鍵點,一直以來都是計算機視覺、模式識別、圖像處理等領域的熱點研究問題。

人臉關鍵點檢測方法大致分爲三種,分別是基 ASM(Active Shape Model)[1] 和 AAM (Active Appearnce Model)[2,3] 的傳統方法;基於級聯形狀迴歸的方法 [4];基於深度學習的方法 [5-10]。若是按照參數化與否來分,可分爲參數化方法和非參數化方法,ASM、AAM 和 CLM[11] 就屬於參數化方法,而級聯迴歸和深度學習方法屬於非參數化方法。基於參數化形狀模型的方法可依據其外觀模型的不同,可進一步分爲,基於局部的方法 [12-14] 和基於全局的方法 [15-17];對於非參數化進一步可分爲基於樣例的方法 [18,19]、基於圖模型的方法 [20,21]、基於級聯迴歸的方法 [4,22,23] 和基於深度學習的方法 [24-26]。更爲詳細的劃分請參考文獻 [27]。目前,應用最廣泛,效果精度最高的是基於深度學習的方法,因此本文主要針對深度學習在人臉關鍵點檢測上的應用進行研究。

人臉關鍵點定位方法中具有里程碑式的有如下五種方法:

1) 1995 年,Cootes 的 ASM(Active Shape Model)。

2) 1998 年,Cootes 的 AAM(Active Appearance Model) 算法。

3) 2006 年,Ristinacce 的 CLM(Constrained Local Model)算法。

4) 2010 年,Rollar 的 cascaded Regression 算法。

5) 2013 年,Sun 開創深度學習人臉關鍵點檢測的先河,首次將 CNN 應用到人臉關鍵點定位上。

定量評價方面,目前主要的衡量標準是算法所獲取的關鍵點位置與真實關鍵點位置之間的偏差。在評價偏差時,由於不同人臉圖像的實際大小難免會有所差異,爲便於在同樣的尺度下比較算法性能,需要採用一定的數據歸一化策略. 目前主流的方法是基於兩眼間的距離進行人臉大小的標準化,即:

,其中分子表示估計值與真實值的歐式距離,分母表示雙眼距離,即兩眼中心的歐式距離。也有采用邊界框對角線作爲歸一化因子來評價偏差,如文獻 [20]。

傳統人臉關鍵點檢測數據庫爲室內環境下采集的數據庫,比如 Multi-pie、Feret、Frgc、AR、BioID 等人臉數據庫。而現階段人臉關鍵點檢測數據庫通常爲複雜環境下采集的數據庫.LFPW 人臉數據庫有 1132 幅訓練人臉圖像和 300 幅測試人臉圖像,大部分爲正面人臉圖像,每個人臉標定 29 個關鍵點。AFLW 人臉數據庫包含 25993 幅從 Flickr 採集的人臉圖像,每個人臉標定 21 個關鍵點。COFW 人臉數據庫包含 LFPW 人臉數據庫訓練集中的 845 幅人臉圖像以及其他 500 幅遮擋人臉圖像,而測試集爲 507 幅嚴重遮擋(同時包含姿態和表情的變化)的人臉圖像,每個人臉標定 29 個關鍵點。MVFW 人臉數據庫爲多視角人臉數據集,包括 2050 幅訓練人臉圖像和 450 幅測試人臉圖像,每個人臉標定 68 個關鍵點。OCFW 人臉數據庫包含 2951 幅訓練人臉圖像(均爲未遮擋人臉)和 1246 幅測試人臉圖像(均爲遮擋人臉),每個人臉標定 68 個關鍵點。

二、人臉關鍵點檢測方法

人臉關鍵點檢測方法根據是否需要參數化模型可分爲以下兩類,基於參數化形狀模型的方法和基於非參數形狀模型的方法。目前,最爲常用的是基於非參數形狀模型的深度學習方法,因此本文討論深度學習方法。但是,爲了更好的理解人臉關鍵點的發展和歷史,本文也簡單介紹了最爲經典的人臉關鍵點檢測方法:ASM 和 AAM。

2.1 ASM (Active Shape Models)

ASM(Active Shape Model)[1] 是由 Cootes 於 1995 年提出的經典的人臉關鍵點檢測算法,主動形狀模型即通過形狀模型對目標物體進行抽象,ASM 是一種基於點分佈模型(Point Distribution Model, PDM)的算法。在 PDM 中,外形相似的物體,例如人臉、人手、心臟、肺部等的幾何形狀可以通過若干關鍵點(landmarks)的座標依次串聯形成一個形狀向量來表示。ASM 算法需要通過人工標定的方法先標定訓練集,經過訓練獲得形狀模型,再通過關鍵點的匹配實現特定物體的匹配。

ASM 主要分爲兩步:第一步:訓練。首先,構建形狀模型:蒐集 n 個訓練樣本(n=400);手動標記臉部關鍵點;將訓練集中關鍵點的座標串成特徵向量;對形狀進行歸一化和對齊(對齊採用 Procrustes 方法);對對齊後的形狀特徵做 PCA 處理。接着,爲每個關鍵點構建局部特徵。目的是在每次迭代搜索過程中每個關鍵點可以尋找新的位置。局部特徵一般用梯度特徵,以防光照變化。有的方法沿着邊緣的法線方向提取,有的方法在關鍵點附近的矩形區域提取。第二步:搜索。首先:計算眼睛(或者眼睛和嘴巴)的位置,做簡單的尺度和旋轉變化,對齊人臉;接着,在對齊後的各個點附近搜索,匹配每個局部關鍵點(常採用馬氏距離),得到初步形狀;再用平均人臉(形狀模型)修正匹配結果;迭代直到收斂。

ASM 算法的優點在於模型簡單直接,架構清晰明確,易於理解和應用,而且對輪廓形狀有着較強的約束,但是其近似於窮舉搜索的關鍵點定位方式在一定程度上限制了其運算效率。

2.2 AAM(Active Appearance Models)

1998 年,Cootes 對 ASM 進行改進,不僅採用形狀約束,而且又加入整個臉部區域的紋理特徵,提出了 AAM 算法 [2]。AAM 於 ASM 一樣,主要分爲兩個階段,模型建立階段和模型匹配階段。其中模型建立階段包括對訓練樣本分別建立形狀模型 (Shape Model) 和紋理模型 (Texture Model),然後將兩個模型進行結合,形成 AAM 模型。

2.3 CPR(Cascaded pose regression)

2010 年,Dollar 提出 CPR(Cascaded Pose Regression, 級聯姿勢迴歸)[4],CPR 通過一系列迴歸器將一個指定的初始預測值逐步細化,每一個迴歸器都依靠前一個迴歸器的輸出來執行簡單的圖像操作,整個系統可自動的從訓練樣本中學習。

人臉關鍵點檢測的目的是估計向量

,其中 K 表示關鍵點的個數,由於每個關鍵點有橫縱兩個座標,所以 S 得長度爲 2K。CPR 檢測流程如圖所示,一共有 T 個階段,在每個階段中首先進行特徵提取,得到, 這裏使用的是 shape-indexed features,也可以使用諸如 HOG、SIFT 等人工設計的特徵,或者其他可學習特徵(learning based features),然後通過訓練得到的迴歸器 R 來估計增量ΔS( update vector),把ΔS 加到前一個階段的 S 上得到新的 S,這樣通過不斷的迭代即可以得到最終的 S(shape)。

2.4 DCNN

2013 年,Sun 等人 [5] 首次將 CNN 應用到人臉關鍵點檢測,提出一種級聯的 CNN(擁有三個層級)——DCNN(Deep Convolutional Network),此種方法屬於級聯迴歸方法。作者通過精心設計擁有三個層級的級聯卷積神經網絡,不僅改善初始不當導致陷入局部最優的問題,而且藉助於 CNN 強大的特徵提取能力,獲得更爲精準的關鍵點檢測。

如圖所示,DCNN 由三個 Level 構成。Level-1 由 3 個 CNN 組成;Level-2 由 10 個 CNN 組成(每個關鍵點採用兩個 CNN);Level-3 同樣由 10 個 CNN 組成。

Level-1 分 3 個 CNN,分別是 F1(Face 1)、EN1(Eye,Nose)、NM1(Nose,Mouth);F1 輸入尺寸爲 39*39,輸出 5 個關鍵點的座標;EN1 輸入尺寸爲 39*31,輸出是 3 個關鍵點的座標;NM11 輸入尺寸爲 39*31,輸出是 3 個關鍵點。Level-1 的輸出是由三個 CNN 輸出取平均得到。

Level-2,由 10 個 CNN 構成,輸入尺寸均爲 15*15,每兩個組成一對,一對 CNN 對一個關鍵點進行預測,預測結果同樣是採取平均。

Level-3 與 Level-2 一樣,由 10 個 CNN 構成,輸入尺寸均爲 15*15,每兩個組成一對。Level-2 和 Level-3 是對 Level-1 得到的粗定位進行微調,得到精細的關鍵點定位。

Level-1 之所以比 Level-2 和 Level-3 的輸入要大,是因爲作者認爲,由於人臉檢測器的原因,邊界框的相對位置可能會在大範圍內變化,再加上面部姿態的變化,最終導致輸入圖像的多樣性,因此在 Level-1 應該需要有足夠大的輸入尺寸。Level-1 與 Level-2 和 Level-3 還有一點不同之處在於,Level-1 採用的是局部權值共享(Lcally Sharing Weights),作者認爲傳統的全局權值共享是考慮到,某一特徵可能在圖像中任何位置出現,所以採用全局權值共享。然而,對於類似人臉這樣具有固定空間結構的圖像而言,全局權值共享就不奏效了。因爲眼睛就是在上面,鼻子就是在中間,嘴巴就是在下面的。所以作者借鑑文獻 [28] 中的思想,採用局部權值共享,作者通過實驗證明了局部權值共享給網絡帶來性能提升。

DCNN 採用級聯迴歸的思想,從粗到精的逐步得到精確的關鍵點位置,不僅設計了三級級聯的卷積神經網絡,還引入局部權值共享機制,從而提升網絡的定位性能。最終在數據集 BioID 和 LFPW 上均獲得當時最優結果。速度方面,採用 3.3GHz 的 CPU,每 0.12 秒檢測一張圖片的 5 個關鍵點。

2.5 Face++版 DCNN

2013 年,Face++在 DCNN 模型上進行改進,提出從粗到精的人臉關鍵點檢測算法 [6],實現了 68 個人臉關鍵點的高精度定位。該算法將人臉關鍵點分爲內部關鍵點和輪廓關鍵點,內部關鍵點包含眉毛、眼睛、鼻子、嘴巴共計 51 個關鍵點,輪廓關鍵點包含 17 個關鍵點。

針對內部關鍵點和外部關鍵點,該算法並行的採用兩個級聯的 CNN 進行關鍵點檢測,網絡結構如圖所示。

針對內部 51 個關鍵點,採用四個層級的級聯網絡進行檢測。其中,Level-1 主要作用是獲得面部器官的邊界框;Level-2 的輸出是 51 個關鍵點預測位置,這裏起到一個粗定位作用,目的是爲了給 Level-3 進行初始化;Level-3 會依據不同器官進行從粗到精的定位;Level-4 的輸入是將 Level-3 的輸出進行一定的旋轉,最終將 51 個關鍵點的位置進行輸出。針對外部 17 個關鍵點,僅採用兩個層級的級聯網絡進行檢測。Level-1 與內部關鍵點檢測的作用一樣,主要是獲得輪廓的 bounding box;Level-2 直接預測 17 個關鍵點,沒有從粗到精定位的過程,因爲輪廓關鍵點的區域較大,若加上 Level-3 和 Level-4,會比較耗時間。最終面部 68 個關鍵點由兩個級聯 CNN 的輸出進行疊加得到。

算法主要創新點由以下三點:(1)把人臉的關鍵點定位問題,劃分爲內部關鍵點和輪廓關鍵點分開預測,有效的避免了 loss 不均衡問題;(2)在內部關鍵點檢測部分,並未像 DCNN 那樣每個關鍵點採用兩個 CNN 進行預測,而是每個器官採用一個 CNN 進行預測,從而減少計算量;(3)相比於 DCNN,沒有直接採用人臉檢測器返回的結果作爲輸入,而是增加一個邊界框檢測層(Level-1),可以大大提高關鍵點粗定位網絡的精度。

Face++版 DCNN 首次利用卷積神經網絡進行 68 個人臉關鍵點檢測,針對以往人臉關鍵點檢測受人臉檢測器影響的問題,作者設計 Level-1 卷積神經網絡進一步提取人臉邊界框,爲人臉關鍵點檢測獲得更爲準確的人臉位置信息,最終在當年 300-W 挑戰賽上獲得領先成績。

2.6 TCDCN

2014 年,Zhang 等人將 MTL(Multi-Task Learning)應用到人臉關鍵點檢測中,提出 TCDCN(Tasks-Constrained Deep Convolutional Network)[7]。作者認爲,在進行人臉關鍵點檢測任務時,結合一些輔助信息可以幫助更好的定位關鍵點,這些信息如,性別、是否帶眼鏡、是否微笑和臉部的姿勢等等。作者將人臉關鍵點檢測(5 個關鍵點)與性別、是否帶眼鏡、是否微笑及臉部的姿勢這四個子任務結合起來構成一個多任務學習模型,模型框架如圖所示。

網絡輸出爲 40*40 的灰度圖,經過 CNN 最終得到 2*2*64 的特徵圖,再通過一層含 100 個神經元的全連接層輸出最終提取得到的共享特徵。該特徵爲所有任務共同享用,對於關鍵點檢測問題,就採用線性迴歸模型;對於分類問題,就採用邏輯迴歸。

在傳統 MLT 中,各任務重要程度是一致的,其目標方程如下:

其中,表示與權值矩陣相乘之後輸入到函數表示損失函數,是正則項。可以看到對於各任務 t 而言,其重要性是相同的,但是在多任務學習中,往往不同任務的學習難易程度不同,若採用相同的損失權重,會導致學習任務難以收斂。文章針對多任務學習中,不同學習難度問題進行了優化,提出帶權值的目標函數:

其中,第一項表示主任務的損失函數,即人臉關鍵點檢測的損失函數,第二項表示其餘各子任務的損失函數,其中表示任務 a 的重要性。針對人臉關鍵點檢測任務,本文結合了四個子任務,分別是:性別、是否帶眼鏡、是否微笑和臉部的姿勢,目標函數爲:

其中,第一項是平方和誤差,表示人臉關鍵點損失函數,第二項是分類任務,採用的是交叉熵誤差,第三項即正則項。

針對多任務學習的另外一個問題——各任務收斂速度不同,本文提出一種新的提前停止(Early Stopping)方法。當某個子任務達到最好表現以後,這個子任務就對主任務已經沒有幫助,就可以停止這個任務。文章給出自動停止子任務的計算公式,如下:

其中,表示訓練的誤差,表示驗證的誤差,爲閾值,第一項表示訓練誤差的趨勢,第二項表示泛化誤差與訓練誤差之比,當兩項之積大於閾值,則該任務停止。

TCDCN 採用多任務學習方法對人臉關鍵點進行檢測,針對多任務學習在人臉關鍵點檢測任務中的兩個主要問題——不同任務學習難易程度不同以及不同任務收斂速度不同,分別提出了新目標函數和提前停止策略加以改進,最終在 AFLW 和 AFW 數據集上獲得領先的結果。同時對比於級聯 CNN 方法,在 Intel Core i5 cpu 上,級聯 CNN 需要 0.12s,而 TCDCN 僅需要 17ms,速度提升七倍有餘。

代碼鏈接: https://github.com/zhzhanp/TCDCN-face-alignment

2.7 MTCNN

2016 年,Zhang 等人提出一種多任務級聯卷積神經網絡(MTCNN, Multi-task Cascaded Convolutional Networks)[9] 用以同時處理人臉檢測和人臉關鍵點定位問題。作者認爲人臉檢測和人臉關鍵點檢測兩個任務之間往往存在着潛在的聯繫,然而大多數方法都未將兩個任務有效的結合起來,本文爲了充分利用兩任務之間潛在的聯繫,提出一種多任務級聯的人臉檢測框架,將人臉檢測和人臉關鍵點檢測同時進行。

MTCNN 包含三個級聯的多任務卷積神經網絡,分別是 Proposal Network (P-Net)、Refine Network (R-Net)、Output Network (O-Net),每個多任務卷積神經網絡均有三個學習任務,分別是人臉分類、邊框迴歸和關鍵點定位。網絡結構如圖所示:

MTCNN 實現人臉檢測和關鍵點定位分爲三個階段。首先由 P-Net 獲得了人臉區域的候選窗口和邊界框的迴歸向量,並用該邊界框做迴歸,對候選窗口進行校準,然後通過非極大值抑制(NMS)來合併高度重疊的候選框。然後將 P-Net 得出的候選框作爲輸入,輸入到 R-Net,R-Net 同樣通過邊界框迴歸和 NMS 來去掉那些 false-positive 區域,得到更爲準確的候選框;最後,利用 O-Net 輸出 5 個關鍵點的位置。

在具體訓練過程中,作者就多任務學習的損失函數計算方式進行相應改進。在多任務學習中,當不同類型的訓練圖像輸入到網絡時,有些任務時是不進行學習的,因此相應的損失應爲 0。例如,當訓練圖像爲背景(Non-face)時,邊界框和關鍵點的 loss 應爲 0,文中提供計算公式自動確定 loss 的選取,公式爲:

其中,表示任務的重要程度,在 P-Net 和 R-Net 中,

, 在 R-Net 中,由於要對關鍵點進行檢測,所以相應的增大任務的重要性,作爲樣本類型指示器。

爲了提升網絡性能,需要挑選出困難樣本(Hard Sample),傳統方法是通過研究訓練好的模型進行挑選,而本文提出一種能在訓練過程中進行挑選困難的在線挑選方法。方法爲,在 mini-batch 中,對每個樣本的損失進行排序,挑選前 70% 較大的損失對應的樣本作爲困難樣本,同時在反向傳播時,忽略那 30% 的樣本,因爲那 30% 樣本對更新作用不大。

實驗結果表明,MTCNN 在人臉檢測數據集 FDDB 和 WIDER FACE 以及人臉關鍵點定位數據集 LFPW 均獲得當時最佳成績。在運行時間方面,採用 2.60GHz 的 CPU 可以達到 16fps,採用 Nvidia Titan Black 可達 99fps。

代碼實現:

Matlab:https://github.com/kpzhang93/MTCNN_face_detection_alignment

Caffe:https://github.com/dlunion/mtcnn

Python:https://github.com/DuinoDu/mtcnn

2.8 TCNN(Tweaked Convolutional Neural Networks)

2016 年,Wu 等人研究了 CNN 在人臉關鍵點定位任務中到底學習到的是什麼樣的特徵,在採用 GMM(Gaussian Mixture Model, 混合高斯模型)對不同層的特徵進行聚類分析,發現網絡進行的是層次的,由粗到精的特徵定位,越深層提取到的特徵越能反應出人臉關鍵點的位置。針對這一發現,提出了 TCNN(Tweaked Convolutional Neural Networks)[8],其網絡結構如圖所示:

上圖爲 Vanilla CNN,針對 FC5 得到的特徵進行 K 個類別聚類,將訓練圖像按照所分類別進行劃分,用以訓練所對應的 FC6K。測試時,圖片首先經過 Vanilla CNN 提取特徵,即 FC5 的輸出。將 FC5 輸出的特徵與 K 個聚類中心進行比較,將 FC5 輸出的特徵劃分至相應的類別中,然後選擇與之相應的 FC6 進行連接,最終得到輸出。

作者通過對 Vanilla CNN 中間層特徵聚類分析得出的結論是什麼呢?又是如何通過中間層聚類分析得出靈感從而設計 TCNN 呢?

作者對 Vanilla CNN 中間各層特徵進行聚類分析,並統計出關鍵點在各層之間的變化程度,如圖所示:

從圖中可知,越深層提取到的特徵越緊密,因此越深層提取到的特徵越能反應出人臉關鍵點的位置。作者在採用 K=64 時,對所劃分簇的樣本進行平均後繪圖如下:

從圖上可發現,每一個簇的樣本反應了頭部的某種姿態,甚至出現了表情和性別的差異。因此可推知,人臉關鍵點的位置常常和人臉的屬性相關聯。因此爲了得到更準確的關鍵點定位,作者使用具有相似特徵的圖片訓練對應的迴歸器,最終在人臉關鍵點檢測數據集 AFLW,AFW 和 300W 上均獲得當時最佳效果。

2.9 DAN(Deep Alignment Networks)

2017 年,Kowalski 等人提出一種新的級聯深度神經網絡——DAN(Deep Alignment Network)[10],以往級聯神經網絡輸入的是圖像的某一部分,與以往不同,DAN 各階段網絡的輸入均爲整張圖片。當網絡均採用整張圖片作爲輸入時,DAN 可以有效的克服頭部姿態以及初始化帶來的問題,從而得到更好的檢測效果。之所以 DAN 能將整張圖片作爲輸入,是因爲其加入了關鍵點熱圖(Landmark Heatmaps),關鍵點熱圖的使用是本文的主要創新點。DAN 基本框架如圖所示:

DAN 包含多個階段,每一個階段含三個輸入和一個輸出,輸入分別是被矯正過的圖片、關鍵點熱圖和由全連接層生成的特徵圖,輸出是面部形狀(Face Shape)。其中,CONNECTION LAYER 的作用是將本階段得輸出進行一系列變換,生成下一階段所需要的三個輸入,具體操作如下圖所示:

從第一階段開始講起,第一階段的輸入僅有原始圖片和 S0。面部關鍵點的初始化即爲 S0,S0 是由所有關鍵點取平均得到,第一階段輸出 S1。對於第二階段,首先,S1 經第一階段的 CONNECTION LAYERS 進行轉換,分別得到轉換後圖片 T2(I)、S1 所對應的熱圖 H2 和第一階段 fc1 層輸出,這三個正是第二階段的輸入。如此周而復始,直到最後一個階段輸出 SN。文中給出在數據集 IBUG 上,經過第一階段後的 T2(I)、T2(S1)和特徵圖,如圖所示:

從圖中發現,DAN 要做的「變換」,就是把圖片給矯正了,第一行數據尤爲明顯,那麼 DAN 對姿態變換具有很好的適應能力,或許就得益於這個「變換」。至於 DAN 採用何種「變換」,需要到代碼中具體探究。

接下來看一看,St 是如何由 St-1 以及該階段 CNN 得到,先看 St 計算公式:

其中是由 CNN 輸出的,各階段 CNN 網絡結構如圖所示:

該 CNN 的輸入均是經過了「變換」——的操作,因此得到的偏移量是在新特徵空間下的偏移量,在經過偏移之後應經過一個反變換還原到原始空間。而這裏提到的新特徵空間,或許是將圖像進行了「矯正」,使得網絡更好的處理圖像。

關鍵點熱度圖的計算就是一箇中心衰減,關鍵點處值最大,越遠則值越小,公式如下:

爲什麼需要從 fc1 層生成一張特徵圖?文中提到「Such a connection allows any information learned by the preceding stage to be transferred to the consecutive stage.」其實就是人爲給 CNN 增加上一階段信息。

總而言之,DAN 是一個級聯思想的關鍵點檢測方法,通過引入關鍵點熱圖作爲補充,DAN 可以從整張圖片進行提取特徵,從而獲得更爲精確的定位。

代碼實現:

Theano:https://github.com/MarekKowalski/DeepAlignmentNetwork

TensorFlow:https://github.com/kpzhang93/MTCNN_face_detection_alignment

三、結語

深度學習技術的出現,有效促進了不同尺度和不同任務信息之間的融合,使得信息的結合方式由平面開始向立體方法發展,對於人臉關鍵點提取模型的發展,具有突出的實際意義。正因爲如此,本文對目前人臉關鍵點檢測任務中常用的深度學習方法進行綜述。

儘管深度學習方法在人臉關鍵點檢測任務上已經獲得了長足的發展,算法性能不斷提升,與實際應用的要求也越來越接近。然而,該任務的研究還遠未結束,目前還有一些關鍵性難題亟待解決。在此總結三點:

(1)缺乏統一的方法集成框架。近年來,隨着深度學習、迴歸分析等技術的應用,人臉關鍵點檢測技術的方法模型更爲豐富。但若要完全解決關鍵點檢測問題,還需要建立一個統一的綜合性方法框架。因此,如果要實現任意情況下的高精度人臉關鍵點提取,就需要建立一個集成各類情況下最優方法的綜合方法框架。

(2)缺少簡潔模型。近年來出現的方法正變得越來越複雜、參數越來越多、其所綜合利用的信息和技術也越來越繁雜。遵循奧卡姆剃刀原理,過於複雜的模型,必然難以成爲最優解決方案. 目前的人臉關鍵點提取研究,迫切需要發展能夠以簡單清晰的模型和方法解決問題的合理思路。

(3)多變的人臉姿態和遮擋。姿態和遮擋是人臉關鍵點檢測所面臨的經典難題,近年來也出現了很多處理這兩方面問題的思路和方法,但目前在實際應用中,尤其在實時低圖像質量條件下,對於這兩類難題的處理還難以令人滿意. 尤其當姿態發生快速和劇烈改變,以及遮擋比例較大時,現有方法的精度距離實際應用的要求還有較大差距,需要進一步研究和提升。

本文針對近年人臉關鍵點檢測方法中的深度學習方法進行了綜述研究。本文對人臉關鍵點檢測任務進行了詳細描述,並將具有代表性的深度學習網絡模型,從模型設計思路到模型框架均進行較爲深入的探究。在所面臨的挑戰性問題和開展相關研究所需的基礎知識方面,本文亦拋磚引玉,希望本文能對相關科研人員瞭解人臉關鍵點檢測問題並開展相關研究起到微薄的作用。

參考文獻

[1] T.F. Cootes, C.J. Taylor, D.H. Cooper, et al. Active Shape Models-Their Training and Application[J]. Computer Vision and Image Understanding, 1995, 61(1):38-59.

[2] G. J. Edwards, T. F. Cootes, C. J. Taylor. Face recognition using active appearance models[J]. Computer Vision—Eccv』, 1998, 1407(6):581-595.

[3] Cootes T F, Edwards G J, Taylor C J. Active appearance models[C]// European Conference on Computer Vision. Springer Berlin Heidelberg, 1998:484-498.

[4] Dollár P, Welinder P, Perona P. Cascaded pose regression[J]. IEEE, 2010, 238(6):1078-1085.

[5] Sun Y, Wang X, Tang X. Deep Convolutional Network Cascade for Facial Point Detection[C]// Computer Vision and Pattern Recognition. IEEE, 2013:3476-3483.

[6] Zhou E, Fan H, Cao Z, et al. Extensive Facial Landmark Localization with Coarse-to-Fine Convolutional Network Cascade[C]// IEEE International Conference on Computer Vision Workshops. IEEE, 2014:386-391.

[7] Zhang Z, Luo P, Chen C L, et al. Facial Landmark Detection by Deep Multi-task Learning[C]// European Conference on Computer Vision. 2014:94-108.

[8] Wu Y, Hassner T. Facial Landmark Detection with Tweaked Convolutional Neural Networks[J]. Computer Science, 2015.

[9] Zhang K, Zhang Z, Li Z, et al. Joint Face Detection and Alignment Using Multitask Cascaded Convolutional Networks[J]. IEEE Signal Processing Letters, 2016, 23(10):1499-1503.

[10] Kowalski M, Naruniec J, Trzcinski T. Deep Alignment Network: A Convolutional Neural Network for Robust Face Alignment[J]. 2017:2034-2043.

[11] Cristinacce D, Cootes T F. Feature Detection and Tracking with Constrained Local Models[C]// British Machine Vision Conference 2006, Edinburgh, Uk, September. DBLP, 2006:929-938.

[12] Lucey S, Wang Y, Cox M, et al. Efficient Constrained Local Model Fitting for Non-Rigid Face Alignment[J]. Image & Vision Computing, 2009, 27(12):1804.

[13] Wang Y, Lucey S, Cohn J F. Enforcing convexity for improved alignment with constrained local models[C]// IEEE Conference on Computer Vision & Pattern Recognition. Proc IEEE Comput Soc Conf Comput Vis Pattern Recognit, 2008:1.

[14] Saragih J M, Lucey S, Cohn J F. Deformable Model Fitting by Regularized Landmark Mean-Shift[M]. Kluwer Academic Publishers, 2011.

[15] Papandreou G, Maragos P. Adaptive and constrained algorithms for inverse compositional Active Appearance Model fitting[C]// Computer Vision and Pattern Recognition, 2008. CVPR 2008. IEEE Conference on. IEEE, 2014:1-8.

[16] Matthews I, Baker S. Active Appearance Models Revisited[J]. International Journal of Computer Vision, 2004, 60(2):135-164.

[17] Amberg B, Blake A, Vetter T. On compositional Image Alignment, with an application to Active Appearance Models[C]// Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on. IEEE, 2009:1714-1721.

[18] Smith B M, Zhang L, Brandt J, et al. Exemplar-Based Face Parsing[C]// Computer Vision and Pattern Recognition. IEEE, 2013:3484-3491.

[19] Zhou F, Brandt J, Lin Z. Exemplar-Based Graph Matching for Robust Facial Landmark Localization[C]// IEEE International Conference on Computer Vision. IEEE Computer Society, 2013:1025-1032.

[20] Coughlan J M, Ferreira S J. Finding Deformable Shapes Using Loopy Belief Propagation[C]// European Conference on Computer Vision. Springer-Verlag, 2002:453-468.

[21] Liang L, Wen F, Xu Y Q, et al. Accurate Face Alignment using Shape Constrained Markov Network[C]// IEEE Computer Society Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2006:1313-1319.

[22] Wei Y. Face alignment by Explicit Shape Regression[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2012:2887-2894.

[23] Xiong X, Torre F D L. Supervised Descent Method and Its Applications to Face Alignment[C]// Computer Vision and Pattern Recognition. IEEE, 2013:532-539.

[24] Tang X, Wang X, Luo P. Hierarchical face parsing via deep learning[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2012:2480-2487.

[25] Wu Y, Wang Z, Ji Q. Facial Feature Tracking Under Varying Facial Expressions and Face Poses Based on Restricted Boltzmann Machines[C]// Computer Vision and Pattern Recognition. IEEE, 2013:3452-3459.

[26] Zhang J, Shan S, Kan M, et al. Coarse-to-Fine Auto-Encoder Networks (CFAN) for Real-Time Face Alignment[C]// European Conference on Computer Vision. Springer, Cham, 2014:1-16.

[27] Wang N, Gao X, Tao D, et al. Facial Feature Point Detection: A Comprehensive Survey[J]. Neurocomputing, 2017.

[28] Learnedmiller E, Lee H, Huang G B. Learning hierarchical representations for face verification with convolutional deep belief networks[C]// Computer Vision and Pattern Recognition. IEEE, 2012:2518-2525.

個人介紹:

餘霆嵩,廣東工業大學研三學生,研究方向:深度學習,目標檢測,圖像分類。

文章來源:機器之心