姓名:張萌? ? ? ? ? 學(xué)號(hào)17021211113
轉(zhuǎn)自:http://mp.weixin.qq.com/s/CvdeV5xgUF0kStJQdRst0w
【嵌牛導(dǎo)讀】:人臉關(guān)鍵點(diǎn)檢測(cè)是人臉識(shí)別和分析領(lǐng)域中的關(guān)鍵一步,它是諸如自動(dòng)人臉識(shí)別、表情分析、三維人臉重建及三維動(dòng)畫等其它人臉相關(guān)問題的前提和突破口。近些年來(lái),深度學(xué)習(xí)方法由于其自動(dòng)學(xué)習(xí)及持續(xù)學(xué)習(xí)能力,已被成功應(yīng)用到了圖像識(shí)別與分析、語(yǔ)音識(shí)別和自然語(yǔ)言處理等很多領(lǐng)域,且在這些方面都帶來(lái)了很顯著的改善。因此,本文針對(duì)深度學(xué)習(xí)方法進(jìn)行了人臉關(guān)鍵點(diǎn)檢測(cè)的研究。
【嵌牛鼻子】:人臉關(guān)鍵點(diǎn);人臉特征點(diǎn);人臉對(duì)齊;卷積神經(jīng)網(wǎng)絡(luò)
【嵌牛提問】:人臉檢測(cè)關(guān)鍵點(diǎn)是什么?
【嵌牛正文】:目錄
一、引言
二、人臉關(guān)鍵點(diǎn)檢測(cè)方法
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)
三、結(jié)語(yǔ)
參考文獻(xiàn)
一、引言
人臉關(guān)鍵點(diǎn)檢測(cè)也稱為人臉關(guān)鍵點(diǎn)檢測(cè)、定位或者人臉對(duì)齊,是指給定人臉圖像,定位出人臉面部的關(guān)鍵區(qū)域位置,包括眉毛、眼睛、鼻子、嘴巴、臉部輪廓等和人臉檢測(cè)類似,由于受到姿態(tài)和遮擋等因素的影響,人臉關(guān)鍵點(diǎn)檢測(cè)也是一個(gè)富有挑戰(zhàn)性的任務(wù)。
人臉關(guān)鍵點(diǎn)檢測(cè)是人臉識(shí)別任務(wù)中重要的基礎(chǔ)環(huán)節(jié),人臉關(guān)鍵點(diǎn)精確檢測(cè)對(duì)眾多科研和應(yīng)用課題具有關(guān)鍵作用,例如,人臉姿態(tài)矯正、姿態(tài)識(shí)別、表情識(shí)別、疲勞監(jiān)測(cè)、嘴型識(shí)別等。因此,如何獲取高精度人臉關(guān)鍵點(diǎn),一直以來(lái)都是計(jì)算機(jī)視覺、模式識(shí)別、圖像處理等領(lǐng)域的熱點(diǎn)研究問題。
人臉關(guān)鍵點(diǎn)檢測(cè)方法大致分為三種,分別是基 ASM(Active Shape Model)[1] 和 AAM (Active Appearnce Model)[2,3] 的傳統(tǒng)方法;基于級(jí)聯(lián)形狀回歸的方法 [4];基于深度學(xué)習(xí)的方法 [5-10]。若是按照參數(shù)化與否來(lái)分,可分為參數(shù)化方法和非參數(shù)化方法,ASM、AAM 和 CLM[11] 就屬于參數(shù)化方法,而級(jí)聯(lián)回歸和深度學(xué)習(xí)方法屬于非參數(shù)化方法?;趨?shù)化形狀模型的方法可依據(jù)其外觀模型的不同,可進(jìn)一步分為,基于局部的方法 [12-14] 和基于全局的方法 [15-17];對(duì)于非參數(shù)化進(jìn)一步可分為基于樣例的方法 [18,19]、基于圖模型的方法 [20,21]、基于級(jí)聯(lián)回歸的方法 [4,22,23] 和基于深度學(xué)習(xí)的方法 [24-26]。更為詳細(xì)的劃分請(qǐng)參考文獻(xiàn) [27]。目前,應(yīng)用最廣泛,效果精度最高的是基于深度學(xué)習(xí)的方法,因此本文主要針對(duì)深度學(xué)習(xí)在人臉關(guān)鍵點(diǎn)檢測(cè)上的應(yīng)用進(jìn)行研究。
人臉關(guān)鍵點(diǎn)定位方法中具有里程碑式的有如下五種方法:
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 開創(chuàng)深度學(xué)習(xí)人臉關(guān)鍵點(diǎn)檢測(cè)的先河,首次將 CNN 應(yīng)用到人臉關(guān)鍵點(diǎn)定位上。
定量評(píng)價(jià)方面,目前主要的衡量標(biāo)準(zhǔn)是算法所獲取的關(guān)鍵點(diǎn)位置與真實(shí)關(guān)鍵點(diǎn)位置之間的偏差。在評(píng)價(jià)偏差時(shí),由于不同人臉圖像的實(shí)際大小難免會(huì)有所差異,為便于在同樣的尺度下比較算法性能,需要采用一定的數(shù)據(jù)歸一化策略. 目前主流的方法是基于兩眼間的距離進(jìn)行人臉大小的標(biāo)準(zhǔn)化,即:
,其中分子表示估計(jì)值與真實(shí)值的歐式距離,分母表示雙眼距離,即兩眼中心的歐式距離。也有采用邊界框?qū)蔷€作為歸一化因子來(lái)評(píng)價(jià)偏差,如文獻(xiàn) [20]。
傳統(tǒng)人臉關(guān)鍵點(diǎn)檢測(cè)數(shù)據(jù)庫(kù)為室內(nèi)環(huán)境下采集的數(shù)據(jù)庫(kù),比如 Multi-pie、Feret、Frgc、AR、BioID 等人臉數(shù)據(jù)庫(kù)。而現(xiàn)階段人臉關(guān)鍵點(diǎn)檢測(cè)數(shù)據(jù)庫(kù)通常為復(fù)雜環(huán)境下采集的數(shù)據(jù)庫(kù).LFPW 人臉數(shù)據(jù)庫(kù)有 1132 幅訓(xùn)練人臉圖像和 300 幅測(cè)試人臉圖像,大部分為正面人臉圖像,每個(gè)人臉標(biāo)定 29 個(gè)關(guān)鍵點(diǎn)。AFLW 人臉數(shù)據(jù)庫(kù)包含 25993 幅從 Flickr 采集的人臉圖像,每個(gè)人臉標(biāo)定 21 個(gè)關(guān)鍵點(diǎn)。COFW 人臉數(shù)據(jù)庫(kù)包含 LFPW 人臉數(shù)據(jù)庫(kù)訓(xùn)練集中的 845 幅人臉圖像以及其他 500 幅遮擋人臉圖像,而測(cè)試集為 507 幅嚴(yán)重遮擋(同時(shí)包含姿態(tài)和表情的變化)的人臉圖像,每個(gè)人臉標(biāo)定 29 個(gè)關(guān)鍵點(diǎn)。MVFW 人臉數(shù)據(jù)庫(kù)為多視角人臉數(shù)據(jù)集,包括 2050 幅訓(xùn)練人臉圖像和 450 幅測(cè)試人臉圖像,每個(gè)人臉標(biāo)定 68 個(gè)關(guān)鍵點(diǎn)。OCFW 人臉數(shù)據(jù)庫(kù)包含 2951 幅訓(xùn)練人臉圖像(均為未遮擋人臉)和 1246 幅測(cè)試人臉圖像(均為遮擋人臉),每個(gè)人臉標(biāo)定 68 個(gè)關(guān)鍵點(diǎn)。
二、人臉關(guān)鍵點(diǎn)檢測(cè)方法
人臉關(guān)鍵點(diǎn)檢測(cè)方法根據(jù)是否需要參數(shù)化模型可分為以下兩類,基于參數(shù)化形狀模型的方法和基于非參數(shù)形狀模型的方法。目前,最為常用的是基于非參數(shù)形狀模型的深度學(xué)習(xí)方法,因此本文討論深度學(xué)習(xí)方法。但是,為了更好的理解人臉關(guān)鍵點(diǎn)的發(fā)展和歷史,本文也簡(jiǎn)單介紹了最為經(jīng)典的人臉關(guān)鍵點(diǎn)檢測(cè)方法:ASM 和 AAM。
2.1 ASM (Active Shape Models)
ASM(Active Shape Model)[1] 是由 Cootes 于 1995 年提出的經(jīng)典的人臉關(guān)鍵點(diǎn)檢測(cè)算法,主動(dòng)形狀模型即通過形狀模型對(duì)目標(biāo)物體進(jìn)行抽象,ASM 是一種基于點(diǎn)分布模型(Point Distribution Model, PDM)的算法。在 PDM 中,外形相似的物體,例如人臉、人手、心臟、肺部等的幾何形狀可以通過若干關(guān)鍵點(diǎn)(landmarks)的坐標(biāo)依次串聯(lián)形成一個(gè)形狀向量來(lái)表示。ASM 算法需要通過人工標(biāo)定的方法先標(biāo)定訓(xùn)練集,經(jīng)過訓(xùn)練獲得形狀模型,再通過關(guān)鍵點(diǎn)的匹配實(shí)現(xiàn)特定物體的匹配。
ASM 主要分為兩步:第一步:訓(xùn)練。首先,構(gòu)建形狀模型:搜集 n 個(gè)訓(xùn)練樣本(n=400);手動(dòng)標(biāo)記臉部關(guān)鍵點(diǎn);將訓(xùn)練集中關(guān)鍵點(diǎn)的坐標(biāo)串成特征向量;對(duì)形狀進(jìn)行歸一化和對(duì)齊(對(duì)齊采用 Procrustes 方法);對(duì)對(duì)齊后的形狀特征做 PCA 處理。接著,為每個(gè)關(guān)鍵點(diǎn)構(gòu)建局部特征。目的是在每次迭代搜索過程中每個(gè)關(guān)鍵點(diǎn)可以尋找新的位置。局部特征一般用梯度特征,以防光照變化。有的方法沿著邊緣的法線方向提取,有的方法在關(guān)鍵點(diǎn)附近的矩形區(qū)域提取。第二步:搜索。首先:計(jì)算眼睛(或者眼睛和嘴巴)的位置,做簡(jiǎn)單的尺度和旋轉(zhuǎn)變化,對(duì)齊人臉;接著,在對(duì)齊后的各個(gè)點(diǎn)附近搜索,匹配每個(gè)局部關(guān)鍵點(diǎn)(常采用馬氏距離),得到初步形狀;再用平均人臉(形狀模型)修正匹配結(jié)果;迭代直到收斂。
ASM 算法的優(yōu)點(diǎn)在于模型簡(jiǎn)單直接,架構(gòu)清晰明確,易于理解和應(yīng)用,而且對(duì)輪廓形狀有著較強(qiáng)的約束,但是其近似于窮舉搜索的關(guān)鍵點(diǎn)定位方式在一定程度上限制了其運(yùn)算效率。
2.2 AAM(Active Appearance Models)
1998 年,Cootes 對(duì) ASM 進(jìn)行改進(jìn),不僅采用形狀約束,而且又加入整個(gè)臉部區(qū)域的紋理特征,提出了 AAM 算法 [2]。AAM 于 ASM 一樣,主要分為兩個(gè)階段,模型建立階段和模型匹配階段。其中模型建立階段包括對(duì)訓(xùn)練樣本分別建立形狀模型 (Shape Model) 和紋理模型 (Texture Model),然后將兩個(gè)模型進(jìn)行結(jié)合,形成 AAM 模型。
2.3 CPR(Cascaded pose regression)
2010 年,Dollar 提出 CPR(Cascaded Pose Regression, 級(jí)聯(lián)姿勢(shì)回歸)[4],CPR 通過一系列回歸器將一個(gè)指定的初始預(yù)測(cè)值逐步細(xì)化,每一個(gè)回歸器都依靠前一個(gè)回歸器的輸出來(lái)執(zhí)行簡(jiǎn)單的圖像操作,整個(gè)系統(tǒng)可自動(dòng)的從訓(xùn)練樣本中學(xué)習(xí)。
人臉關(guān)鍵點(diǎn)檢測(cè)的目的是估計(jì)向量
,其中 K 表示關(guān)鍵點(diǎn)的個(gè)數(shù),由于每個(gè)關(guān)鍵點(diǎn)有橫縱兩個(gè)坐標(biāo),所以 S 得長(zhǎng)度為 2K。CPR 檢測(cè)流程如圖所示,一共有 T 個(gè)階段,在每個(gè)階段中首先進(jìn)行特征提取,得到, 這里使用的是 shape-indexed features,也可以使用諸如 HOG、SIFT 等人工設(shè)計(jì)的特征,或者其他可學(xué)習(xí)特征(learning based features),然后通過訓(xùn)練得到的回歸器 R 來(lái)估計(jì)增量ΔS( update vector),把ΔS 加到前一個(gè)階段的 S 上得到新的 S,這樣通過不斷的迭代即可以得到最終的 S(shape)。
2.4 DCNN
2013 年,Sun 等人 [5] 首次將 CNN 應(yīng)用到人臉關(guān)鍵點(diǎn)檢測(cè),提出一種級(jí)聯(lián)的 CNN(擁有三個(gè)層級(jí))——DCNN(Deep Convolutional Network),此種方法屬于級(jí)聯(lián)回歸方法。作者通過精心設(shè)計(jì)擁有三個(gè)層級(jí)的級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò),不僅改善初始不當(dāng)導(dǎo)致陷入局部最優(yōu)的問題,而且借助于 CNN 強(qiáng)大的特征提取能力,獲得更為精準(zhǔn)的關(guān)鍵點(diǎn)檢測(cè)。
如圖所示,DCNN 由三個(gè) Level 構(gòu)成。Level-1 由 3 個(gè) CNN 組成;Level-2 由 10 個(gè) CNN 組成(每個(gè)關(guān)鍵點(diǎn)采用兩個(gè) CNN);Level-3 同樣由 10 個(gè) CNN 組成。
Level-1 分 3 個(gè) CNN,分別是 F1(Face 1)、EN1(Eye,Nose)、NM1(Nose,Mouth);F1 輸入尺寸為 39*39,輸出 5 個(gè)關(guān)鍵點(diǎn)的坐標(biāo);EN1 輸入尺寸為 39*31,輸出是 3 個(gè)關(guān)鍵點(diǎn)的坐標(biāo);NM11 輸入尺寸為 39*31,輸出是 3 個(gè)關(guān)鍵點(diǎn)。Level-1 的輸出是由三個(gè) CNN 輸出取平均得到。
Level-2,由 10 個(gè) CNN 構(gòu)成,輸入尺寸均為 15*15,每?jī)蓚€(gè)組成一對(duì),一對(duì) CNN 對(duì)一個(gè)關(guān)鍵點(diǎn)進(jìn)行預(yù)測(cè),預(yù)測(cè)結(jié)果同樣是采取平均。
Level-3 與 Level-2 一樣,由 10 個(gè) CNN 構(gòu)成,輸入尺寸均為 15*15,每?jī)蓚€(gè)組成一對(duì)。Level-2 和 Level-3 是對(duì) Level-1 得到的粗定位進(jìn)行微調(diào),得到精細(xì)的關(guān)鍵點(diǎn)定位。
Level-1 之所以比 Level-2 和 Level-3 的輸入要大,是因?yàn)樽髡哒J(rèn)為,由于人臉檢測(cè)器的原因,邊界框的相對(duì)位置可能會(huì)在大范圍內(nèi)變化,再加上面部姿態(tài)的變化,最終導(dǎo)致輸入圖像的多樣性,因此在 Level-1 應(yīng)該需要有足夠大的輸入尺寸。Level-1 與 Level-2 和 Level-3 還有一點(diǎn)不同之處在于,Level-1 采用的是局部權(quán)值共享(Lcally Sharing Weights),作者認(rèn)為傳統(tǒng)的全局權(quán)值共享是考慮到,某一特征可能在圖像中任何位置出現(xiàn),所以采用全局權(quán)值共享。然而,對(duì)于類似人臉這樣具有固定空間結(jié)構(gòu)的圖像而言,全局權(quán)值共享就不奏效了。因?yàn)檠劬褪窃谏厦妫亲泳褪窃谥虚g,嘴巴就是在下面的。所以作者借鑒文獻(xiàn) [28] 中的思想,采用局部權(quán)值共享,作者通過實(shí)驗(yàn)證明了局部權(quán)值共享給網(wǎng)絡(luò)帶來(lái)性能提升。
DCNN 采用級(jí)聯(lián)回歸的思想,從粗到精的逐步得到精確的關(guān)鍵點(diǎn)位置,不僅設(shè)計(jì)了三級(jí)級(jí)聯(lián)的卷積神經(jīng)網(wǎng)絡(luò),還引入局部權(quán)值共享機(jī)制,從而提升網(wǎng)絡(luò)的定位性能。最終在數(shù)據(jù)集 BioID 和 LFPW 上均獲得當(dāng)時(shí)最優(yōu)結(jié)果。速度方面,采用 3.3GHz 的 CPU,每 0.12 秒檢測(cè)一張圖片的 5 個(gè)關(guān)鍵點(diǎn)。
2.5 Face++版 DCNN
2013 年,F(xiàn)ace++在 DCNN 模型上進(jìn)行改進(jìn),提出從粗到精的人臉關(guān)鍵點(diǎn)檢測(cè)算法 [6],實(shí)現(xiàn)了 68 個(gè)人臉關(guān)鍵點(diǎn)的高精度定位。該算法將人臉關(guān)鍵點(diǎn)分為內(nèi)部關(guān)鍵點(diǎn)和輪廓關(guān)鍵點(diǎn),內(nèi)部關(guān)鍵點(diǎn)包含眉毛、眼睛、鼻子、嘴巴共計(jì) 51 個(gè)關(guān)鍵點(diǎn),輪廓關(guān)鍵點(diǎn)包含 17 個(gè)關(guān)鍵點(diǎn)。
針對(duì)內(nèi)部關(guān)鍵點(diǎn)和外部關(guān)鍵點(diǎn),該算法并行的采用兩個(gè)級(jí)聯(lián)的 CNN 進(jìn)行關(guān)鍵點(diǎn)檢測(cè),網(wǎng)絡(luò)結(jié)構(gòu)如圖所示。
針對(duì)內(nèi)部 51 個(gè)關(guān)鍵點(diǎn),采用四個(gè)層級(jí)的級(jí)聯(lián)網(wǎng)絡(luò)進(jìn)行檢測(cè)。其中,Level-1 主要作用是獲得面部器官的邊界框;Level-2 的輸出是 51 個(gè)關(guān)鍵點(diǎn)預(yù)測(cè)位置,這里起到一個(gè)粗定位作用,目的是為了給 Level-3 進(jìn)行初始化;Level-3 會(huì)依據(jù)不同器官進(jìn)行從粗到精的定位;Level-4 的輸入是將 Level-3 的輸出進(jìn)行一定的旋轉(zhuǎn),最終將 51 個(gè)關(guān)鍵點(diǎn)的位置進(jìn)行輸出。針對(duì)外部 17 個(gè)關(guān)鍵點(diǎn),僅采用兩個(gè)層級(jí)的級(jí)聯(lián)網(wǎng)絡(luò)進(jìn)行檢測(cè)。Level-1 與內(nèi)部關(guān)鍵點(diǎn)檢測(cè)的作用一樣,主要是獲得輪廓的 bounding box;Level-2 直接預(yù)測(cè) 17 個(gè)關(guān)鍵點(diǎn),沒有從粗到精定位的過程,因?yàn)檩喞P(guān)鍵點(diǎn)的區(qū)域較大,若加上 Level-3 和 Level-4,會(huì)比較耗時(shí)間。最終面部 68 個(gè)關(guān)鍵點(diǎn)由兩個(gè)級(jí)聯(lián) CNN 的輸出進(jìn)行疊加得到。
算法主要?jiǎng)?chuàng)新點(diǎn)由以下三點(diǎn):(1)把人臉的關(guān)鍵點(diǎn)定位問題,劃分為內(nèi)部關(guān)鍵點(diǎn)和輪廓關(guān)鍵點(diǎn)分開預(yù)測(cè),有效的避免了 loss 不均衡問題;(2)在內(nèi)部關(guān)鍵點(diǎn)檢測(cè)部分,并未像 DCNN 那樣每個(gè)關(guān)鍵點(diǎn)采用兩個(gè) CNN 進(jìn)行預(yù)測(cè),而是每個(gè)器官采用一個(gè) CNN 進(jìn)行預(yù)測(cè),從而減少計(jì)算量;(3)相比于 DCNN,沒有直接采用人臉檢測(cè)器返回的結(jié)果作為輸入,而是增加一個(gè)邊界框檢測(cè)層(Level-1),可以大大提高關(guān)鍵點(diǎn)粗定位網(wǎng)絡(luò)的精度。
Face++版 DCNN 首次利用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行 68 個(gè)人臉關(guān)鍵點(diǎn)檢測(cè),針對(duì)以往人臉關(guān)鍵點(diǎn)檢測(cè)受人臉檢測(cè)器影響的問題,作者設(shè)計(jì) Level-1 卷積神經(jīng)網(wǎng)絡(luò)進(jìn)一步提取人臉邊界框,為人臉關(guān)鍵點(diǎn)檢測(cè)獲得更為準(zhǔn)確的人臉位置信息,最終在當(dāng)年 300-W 挑戰(zhàn)賽上獲得領(lǐng)先成績(jī)。
2.6 TCDCN
2014 年,Zhang 等人將 MTL(Multi-Task Learning)應(yīng)用到人臉關(guān)鍵點(diǎn)檢測(cè)中,提出 TCDCN(Tasks-Constrained Deep Convolutional Network)[7]。作者認(rèn)為,在進(jìn)行人臉關(guān)鍵點(diǎn)檢測(cè)任務(wù)時(shí),結(jié)合一些輔助信息可以幫助更好的定位關(guān)鍵點(diǎn),這些信息如,性別、是否帶眼鏡、是否微笑和臉部的姿勢(shì)等等。作者將人臉關(guān)鍵點(diǎn)檢測(cè)(5 個(gè)關(guān)鍵點(diǎn))與性別、是否帶眼鏡、是否微笑及臉部的姿勢(shì)這四個(gè)子任務(wù)結(jié)合起來(lái)構(gòu)成一個(gè)多任務(wù)學(xué)習(xí)模型,模型框架如圖所示。
網(wǎng)絡(luò)輸出為 40*40 的灰度圖,經(jīng)過 CNN 最終得到 2*2*64 的特征圖,再通過一層含 100 個(gè)神經(jīng)元的全連接層輸出最終提取得到的共享特征。該特征為所有任務(wù)共同享用,對(duì)于關(guān)鍵點(diǎn)檢測(cè)問題,就采用線性回歸模型;對(duì)于分類問題,就采用邏輯回歸。
在傳統(tǒng) MLT 中,各任務(wù)重要程度是一致的,其目標(biāo)方程如下:
其中,表示與權(quán)值矩陣相乘之后輸入到函數(shù),表示損失函數(shù),是正則項(xiàng)??梢钥吹綄?duì)于各任務(wù) t 而言,其重要性是相同的,但是在多任務(wù)學(xué)習(xí)中,往往不同任務(wù)的學(xué)習(xí)難易程度不同,若采用相同的損失權(quán)重,會(huì)導(dǎo)致學(xué)習(xí)任務(wù)難以收斂。文章針對(duì)多任務(wù)學(xué)習(xí)中,不同學(xué)習(xí)難度問題進(jìn)行了優(yōu)化,提出帶權(quán)值的目標(biāo)函數(shù):
其中,第一項(xiàng)表示主任務(wù)的損失函數(shù),即人臉關(guān)鍵點(diǎn)檢測(cè)的損失函數(shù),第二項(xiàng)表示其余各子任務(wù)的損失函數(shù),其中表示任務(wù) a 的重要性。針對(duì)人臉關(guān)鍵點(diǎn)檢測(cè)任務(wù),本文結(jié)合了四個(gè)子任務(wù),分別是:性別、是否帶眼鏡、是否微笑和臉部的姿勢(shì),目標(biāo)函數(shù)為:
其中,第一項(xiàng)是平方和誤差,表示人臉關(guān)鍵點(diǎn)損失函數(shù),第二項(xiàng)是分類任務(wù),采用的是交叉熵誤差,第三項(xiàng)即正則項(xiàng)。
針對(duì)多任務(wù)學(xué)習(xí)的另外一個(gè)問題——各任務(wù)收斂速度不同,本文提出一種新的提前停止(Early Stopping)方法。當(dāng)某個(gè)子任務(wù)達(dá)到最好表現(xiàn)以后,這個(gè)子任務(wù)就對(duì)主任務(wù)已經(jīng)沒有幫助,就可以停止這個(gè)任務(wù)。文章給出自動(dòng)停止子任務(wù)的計(jì)算公式,如下:
其中,表示訓(xùn)練的誤差,表示驗(yàn)證的誤差,為閾值,第一項(xiàng)表示訓(xùn)練誤差的趨勢(shì),第二項(xiàng)表示泛化誤差與訓(xùn)練誤差之比,當(dāng)兩項(xiàng)之積大于閾值,則該任務(wù)停止。
TCDCN 采用多任務(wù)學(xué)習(xí)方法對(duì)人臉關(guān)鍵點(diǎn)進(jìn)行檢測(cè),針對(duì)多任務(wù)學(xué)習(xí)在人臉關(guān)鍵點(diǎn)檢測(cè)任務(wù)中的兩個(gè)主要問題——不同任務(wù)學(xué)習(xí)難易程度不同以及不同任務(wù)收斂速度不同,分別提出了新目標(biāo)函數(shù)和提前停止策略加以改進(jìn),最終在 AFLW 和 AFW 數(shù)據(jù)集上獲得領(lǐng)先的結(jié)果。同時(shí)對(duì)比于級(jí)聯(lián) CNN 方法,在 Intel Core i5 cpu 上,級(jí)聯(lián) CNN 需要 0.12s,而 TCDCN 僅需要 17ms,速度提升七倍有余。
代碼鏈接: https://github.com/zhzhanp/TCDCN-face-alignment
2.7 MTCNN
2016 年,Zhang 等人提出一種多任務(wù)級(jí)聯(lián)卷積神經(jīng)網(wǎng)絡(luò)(MTCNN, Multi-task Cascaded Convolutional Networks)[9] 用以同時(shí)處理人臉檢測(cè)和人臉關(guān)鍵點(diǎn)定位問題。作者認(rèn)為人臉檢測(cè)和人臉關(guān)鍵點(diǎn)檢測(cè)兩個(gè)任務(wù)之間往往存在著潛在的聯(lián)系,然而大多數(shù)方法都未將兩個(gè)任務(wù)有效的結(jié)合起來(lái),本文為了充分利用兩任務(wù)之間潛在的聯(lián)系,提出一種多任務(wù)級(jí)聯(lián)的人臉檢測(cè)框架,將人臉檢測(cè)和人臉關(guān)鍵點(diǎn)檢測(cè)同時(shí)進(jìn)行。
MTCNN 包含三個(gè)級(jí)聯(lián)的多任務(wù)卷積神經(jīng)網(wǎng)絡(luò),分別是 Proposal Network (P-Net)、Refine Network (R-Net)、Output Network (O-Net),每個(gè)多任務(wù)卷積神經(jīng)網(wǎng)絡(luò)均有三個(gè)學(xué)習(xí)任務(wù),分別是人臉分類、邊框回歸和關(guān)鍵點(diǎn)定位。網(wǎng)絡(luò)結(jié)構(gòu)如圖所示:
MTCNN 實(shí)現(xiàn)人臉檢測(cè)和關(guān)鍵點(diǎn)定位分為三個(gè)階段。首先由 P-Net 獲得了人臉區(qū)域的候選窗口和邊界框的回歸向量,并用該邊界框做回歸,對(duì)候選窗口進(jìn)行校準(zhǔn),然后通過非極大值抑制(NMS)來(lái)合并高度重疊的候選框。然后將 P-Net 得出的候選框作為輸入,輸入到 R-Net,R-Net 同樣通過邊界框回歸和 NMS 來(lái)去掉那些 false-positive 區(qū)域,得到更為準(zhǔn)確的候選框;最后,利用 O-Net 輸出 5 個(gè)關(guān)鍵點(diǎn)的位置。
在具體訓(xùn)練過程中,作者就多任務(wù)學(xué)習(xí)的損失函數(shù)計(jì)算方式進(jìn)行相應(yīng)改進(jìn)。在多任務(wù)學(xué)習(xí)中,當(dāng)不同類型的訓(xùn)練圖像輸入到網(wǎng)絡(luò)時(shí),有些任務(wù)時(shí)是不進(jìn)行學(xué)習(xí)的,因此相應(yīng)的損失應(yīng)為 0。例如,當(dāng)訓(xùn)練圖像為背景(Non-face)時(shí),邊界框和關(guān)鍵點(diǎn)的 loss 應(yīng)為 0,文中提供計(jì)算公式自動(dòng)確定 loss 的選取,公式為:
其中,表示任務(wù)的重要程度,在 P-Net 和 R-Net 中,
, 在 R-Net 中,由于要對(duì)關(guān)鍵點(diǎn)進(jìn)行檢測(cè),所以相應(yīng)的增大任務(wù)的重要性,。作為樣本類型指示器。
為了提升網(wǎng)絡(luò)性能,需要挑選出困難樣本(Hard Sample),傳統(tǒng)方法是通過研究訓(xùn)練好的模型進(jìn)行挑選,而本文提出一種能在訓(xùn)練過程中進(jìn)行挑選困難的在線挑選方法。方法為,在 mini-batch 中,對(duì)每個(gè)樣本的損失進(jìn)行排序,挑選前 70% 較大的損失對(duì)應(yīng)的樣本作為困難樣本,同時(shí)在反向傳播時(shí),忽略那 30% 的樣本,因?yàn)槟?30% 樣本對(duì)更新作用不大。
實(shí)驗(yàn)結(jié)果表明,MTCNN 在人臉檢測(cè)數(shù)據(jù)集 FDDB 和 WIDER FACE 以及人臉關(guān)鍵點(diǎn)定位數(shù)據(jù)集 LFPW 均獲得當(dāng)時(shí)最佳成績(jī)。在運(yùn)行時(shí)間方面,采用 2.60GHz 的 CPU 可以達(dá)到 16fps,采用 Nvidia Titan Black 可達(dá) 99fps。
代碼實(shí)現(xiàn):
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 在人臉關(guān)鍵點(diǎn)定位任務(wù)中到底學(xué)習(xí)到的是什么樣的特征,在采用 GMM(Gaussian Mixture Model, 混合高斯模型)對(duì)不同層的特征進(jìn)行聚類分析,發(fā)現(xiàn)網(wǎng)絡(luò)進(jìn)行的是層次的,由粗到精的特征定位,越深層提取到的特征越能反應(yīng)出人臉關(guān)鍵點(diǎn)的位置。針對(duì)這一發(fā)現(xiàn),提出了 TCNN(Tweaked Convolutional Neural Networks)[8],其網(wǎng)絡(luò)結(jié)構(gòu)如圖所示:
上圖為 Vanilla CNN,針對(duì) FC5 得到的特征進(jìn)行 K 個(gè)類別聚類,將訓(xùn)練圖像按照所分類別進(jìn)行劃分,用以訓(xùn)練所對(duì)應(yīng)的 FC6K。測(cè)試時(shí),圖片首先經(jīng)過 Vanilla CNN 提取特征,即 FC5 的輸出。將 FC5 輸出的特征與 K 個(gè)聚類中心進(jìn)行比較,將 FC5 輸出的特征劃分至相應(yīng)的類別中,然后選擇與之相應(yīng)的 FC6 進(jìn)行連接,最終得到輸出。
作者通過對(duì) Vanilla CNN 中間層特征聚類分析得出的結(jié)論是什么呢?又是如何通過中間層聚類分析得出靈感從而設(shè)計(jì) TCNN 呢?
作者對(duì) Vanilla CNN 中間各層特征進(jìn)行聚類分析,并統(tǒng)計(jì)出關(guān)鍵點(diǎn)在各層之間的變化程度,如圖所示:
從圖中可知,越深層提取到的特征越緊密,因此越深層提取到的特征越能反應(yīng)出人臉關(guān)鍵點(diǎn)的位置。作者在采用 K=64 時(shí),對(duì)所劃分簇的樣本進(jìn)行平均后繪圖如下:
從圖上可發(fā)現(xiàn),每一個(gè)簇的樣本反應(yīng)了頭部的某種姿態(tài),甚至出現(xiàn)了表情和性別的差異。因此可推知,人臉關(guān)鍵點(diǎn)的位置常常和人臉的屬性相關(guān)聯(lián)。因此為了得到更準(zhǔn)確的關(guān)鍵點(diǎn)定位,作者使用具有相似特征的圖片訓(xùn)練對(duì)應(yīng)的回歸器,最終在人臉關(guān)鍵點(diǎn)檢測(cè)數(shù)據(jù)集 AFLW,AFW 和 300W 上均獲得當(dāng)時(shí)最佳效果。
2.9 DAN(Deep Alignment Networks)
2017 年,Kowalski 等人提出一種新的級(jí)聯(lián)深度神經(jīng)網(wǎng)絡(luò)——DAN(Deep Alignment Network)[10],以往級(jí)聯(lián)神經(jīng)網(wǎng)絡(luò)輸入的是圖像的某一部分,與以往不同,DAN 各階段網(wǎng)絡(luò)的輸入均為整張圖片。當(dāng)網(wǎng)絡(luò)均采用整張圖片作為輸入時(shí),DAN 可以有效的克服頭部姿態(tài)以及初始化帶來(lái)的問題,從而得到更好的檢測(cè)效果。之所以 DAN 能將整張圖片作為輸入,是因?yàn)槠浼尤肓岁P(guān)鍵點(diǎn)熱圖(Landmark Heatmaps),關(guān)鍵點(diǎn)熱圖的使用是本文的主要?jiǎng)?chuàng)新點(diǎn)。DAN 基本框架如圖所示:
DAN 包含多個(gè)階段,每一個(gè)階段含三個(gè)輸入和一個(gè)輸出,輸入分別是被矯正過的圖片、關(guān)鍵點(diǎn)熱圖和由全連接層生成的特征圖,輸出是面部形狀(Face Shape)。其中,CONNECTION LAYER 的作用是將本階段得輸出進(jìn)行一系列變換,生成下一階段所需要的三個(gè)輸入,具體操作如下圖所示:
從第一階段開始講起,第一階段的輸入僅有原始圖片和 S0。面部關(guān)鍵點(diǎn)的初始化即為 S0,S0 是由所有關(guān)鍵點(diǎn)取平均得到,第一階段輸出 S1。對(duì)于第二階段,首先,S1 經(jīng)第一階段的 CONNECTION LAYERS 進(jìn)行轉(zhuǎn)換,分別得到轉(zhuǎn)換后圖片 T2(I)、S1 所對(duì)應(yīng)的熱圖 H2 和第一階段 fc1 層輸出,這三個(gè)正是第二階段的輸入。如此周而復(fù)始,直到最后一個(gè)階段輸出 SN。文中給出在數(shù)據(jù)集 IBUG 上,經(jīng)過第一階段后的 T2(I)、T2(S1)和特征圖,如圖所示:
從圖中發(fā)現(xiàn),DAN 要做的「變換」,就是把圖片給矯正了,第一行數(shù)據(jù)尤為明顯,那么 DAN 對(duì)姿態(tài)變換具有很好的適應(yīng)能力,或許就得益于這個(gè)「變換」。至于 DAN 采用何種「變換」,需要到代碼中具體探究。
接下來(lái)看一看,St 是如何由 St-1 以及該階段 CNN 得到,先看 St 計(jì)算公式:
其中是由 CNN 輸出的,各階段 CNN 網(wǎng)絡(luò)結(jié)構(gòu)如圖所示:
該 CNN 的輸入均是經(jīng)過了「變換」——的操作,因此得到的偏移量是在新特征空間下的偏移量,在經(jīng)過偏移之后應(yīng)經(jīng)過一個(gè)反變換還原到原始空間。而這里提到的新特征空間,或許是將圖像進(jìn)行了「矯正」,使得網(wǎng)絡(luò)更好的處理圖像。
關(guān)鍵點(diǎn)熱度圖的計(jì)算就是一個(gè)中心衰減,關(guān)鍵點(diǎn)處值最大,越遠(yuǎn)則值越小,公式如下:
為什么需要從 fc1 層生成一張?zhí)卣鲌D?文中提到「Such a connection allows any information learned by the preceding stage to be transferred to the consecutive stage.」其實(shí)就是人為給 CNN 增加上一階段信息。
總而言之,DAN 是一個(gè)級(jí)聯(lián)思想的關(guān)鍵點(diǎn)檢測(cè)方法,通過引入關(guān)鍵點(diǎn)熱圖作為補(bǔ)充,DAN 可以從整張圖片進(jìn)行提取特征,從而獲得更為精確的定位。
代碼實(shí)現(xiàn):
Theano:https://github.com/MarekKowalski/DeepAlignmentNetwork
TensorFlow:https://github.com/kpzhang93/MTCNN_face_detection_alignment
三、結(jié)語(yǔ)
深度學(xué)習(xí)技術(shù)的出現(xiàn),有效促進(jìn)了不同尺度和不同任務(wù)信息之間的融合,使得信息的結(jié)合方式由平面開始向立體方法發(fā)展,對(duì)于人臉關(guān)鍵點(diǎn)提取模型的發(fā)展,具有突出的實(shí)際意義。正因?yàn)槿绱耍疚膶?duì)目前人臉關(guān)鍵點(diǎn)檢測(cè)任務(wù)中常用的深度學(xué)習(xí)方法進(jìn)行綜述。
盡管深度學(xué)習(xí)方法在人臉關(guān)鍵點(diǎn)檢測(cè)任務(wù)上已經(jīng)獲得了長(zhǎng)足的發(fā)展,算法性能不斷提升,與實(shí)際應(yīng)用的要求也越來(lái)越接近。然而,該任務(wù)的研究還遠(yuǎn)未結(jié)束,目前還有一些關(guān)鍵性難題亟待解決。在此總結(jié)三點(diǎn):
(1)缺乏統(tǒng)一的方法集成框架。近年來(lái),隨著深度學(xué)習(xí)、回歸分析等技術(shù)的應(yīng)用,人臉關(guān)鍵點(diǎn)檢測(cè)技術(shù)的方法模型更為豐富。但若要完全解決關(guān)鍵點(diǎn)檢測(cè)問題,還需要建立一個(gè)統(tǒng)一的綜合性方法框架。因此,如果要實(shí)現(xiàn)任意情況下的高精度人臉關(guān)鍵點(diǎn)提取,就需要建立一個(gè)集成各類情況下最優(yōu)方法的綜合方法框架。
(2)缺少簡(jiǎn)潔模型。近年來(lái)出現(xiàn)的方法正變得越來(lái)越復(fù)雜、參數(shù)越來(lái)越多、其所綜合利用的信息和技術(shù)也越來(lái)越繁雜。遵循奧卡姆剃刀原理,過于復(fù)雜的模型,必然難以成為最優(yōu)解決方案. 目前的人臉關(guān)鍵點(diǎn)提取研究,迫切需要發(fā)展能夠以簡(jiǎn)單清晰的模型和方法解決問題的合理思路。
(3)多變的人臉姿態(tài)和遮擋。姿態(tài)和遮擋是人臉關(guān)鍵點(diǎn)檢測(cè)所面臨的經(jīng)典難題,近年來(lái)也出現(xiàn)了很多處理這兩方面問題的思路和方法,但目前在實(shí)際應(yīng)用中,尤其在實(shí)時(shí)低圖像質(zhì)量條件下,對(duì)于這兩類難題的處理還難以令人滿意. 尤其當(dāng)姿態(tài)發(fā)生快速和劇烈改變,以及遮擋比例較大時(shí),現(xiàn)有方法的精度距離實(shí)際應(yīng)用的要求還有較大差距,需要進(jìn)一步研究和提升。
本文針對(duì)近年人臉關(guān)鍵點(diǎn)檢測(cè)方法中的深度學(xué)習(xí)方法進(jìn)行了綜述研究。本文對(duì)人臉關(guān)鍵點(diǎn)檢測(cè)任務(wù)進(jìn)行了詳細(xì)描述,并將具有代表性的深度學(xué)習(xí)網(wǎng)絡(luò)模型,從模型設(shè)計(jì)思路到模型框架均進(jìn)行較為深入的探究。在所面臨的挑戰(zhàn)性問題和開展相關(guān)研究所需的基礎(chǔ)知識(shí)方面,本文亦拋磚引玉,希望本文能對(duì)相關(guān)科研人員了解人臉關(guān)鍵點(diǎn)檢測(cè)問題并開展相關(guān)研究起到微薄的作用。
參考文獻(xiàn)
[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.