回覆列表
  • 1 # Java架構達人

    人臉對齊任務即根據輸入的人臉影象,自動定位出面部關鍵特徵點,如眼睛、鼻尖、嘴角點、眉毛以及人臉各部件輪廓點等,如下圖所示。

    這項技術的應用很廣泛,比如自動人臉識別,表情識別以及人臉動畫自動合成等。由於不同的姿態、表情、光照以及遮擋等因素的影響,準確地定位出各個關鍵特徵點看似很困難。我們簡單地分析一下這個問題,不難發現這個任務其實可以拆分出三個子問題: 1. 如何對人臉表觀影象(輸入)建模 2. 如何對人臉形狀(輸出)建模 3.如何建立人臉表觀影象(模型)與人臉形狀(模型)的關聯 以往的研究工作也離不開這三個方面。人臉形狀建模典型的方法有可變形模板(Deformable Template)、點分佈模型(主動形狀模型Active Shape Model)、圖模型等。 人臉表觀建模又可分為全域性表觀建模和區域性表觀建模。全域性表觀建模簡單的說就是考慮如何建模整張人臉的表觀資訊,典型的方法有主動表觀模型Active Appearance Model(產生式模型)和Boosted Appearance Model(判別式模型)。對應的區域性表觀建模則是對區域性區域的表觀資訊建模,包括顏色模型、投影模型、側剖線模型等。 近來,級聯形狀迴歸模型在特徵點定位任務上取得了重大突破,該方法使用迴歸模型,直接學習從人臉表觀到人臉形狀(或者人臉形狀模型的引數)的對映函式,進而建立從表觀到形狀的對應關係。此類方法不需要複雜的人臉形狀和表觀建模,簡單高效,在可控場景(實驗室條件下采集的人臉)和非可控場景(網路人臉影象等)均取得不錯的定位效果。此外,基於深度學習的人臉對齊方法也取得令人矚目的結果。深度學習結合形狀迴歸框架可以進一步提升定位模型的精度,成為當前特徵定位的主流方法之一。下面將具體介紹級聯形狀迴歸和深度學習這兩大類方法的研究進展。級聯線性迴歸模型 人臉對齊問題可以看作是學習一個迴歸函式F,以圖象I作為輸入,輸出θ為特徵點的位置(人臉形狀):θ = F(I)。 簡單的說,級聯迴歸模型可以統一為以下框架:學習多個迴歸函式{f1 ,…, fn-1, fn}來逼近函式F:

    θ = F(I)= fn (fn-1 (…f1(θ0, I) ,I) , I)

    θi= fi (θi-1, I), i=1,…,n

    所謂的級聯,即當前函式fi的輸入依賴於上一級函式fi-1的輸出θi-1,而每一個fi的學習目標都是逼近特徵點的真實位置θ,θ0為初始形狀。通常情況,fi不是直接回歸真實位置θ,而回歸當前形狀θi-1與真實位置θ之間的差:Δθi = θ - θi-1。 接下來我將詳細介紹幾個典型的形狀迴歸方法,他們根本的不同點在於函式fi的設計不同以及輸入特徵不同。 在加州理工學院從事博士後研究的Piotr Dollár於2010年首次提出級聯形狀迴歸模型CascadedPose Regression(CPR),來預測物體的形狀,該工作發表在國際計算機視覺與模式識別會議CVPR上。如下圖所示,如下圖所示,給定初始形狀θ0,通常為平均形狀,根據初始形狀θ0提取特徵(兩個畫素點的差值)作為函式f1的輸入。每個函式fi建模成Random Fern迴歸器,來預測當前形狀θi-1與目標形狀θ的差Δθi,並根據Δθi預測結果更新當前形狀得θ i = θi-1+Δθi,作為下一級函式fi+1的輸入。該方法在人臉、老鼠和魚三個資料集上取得不錯的實驗結果,通用的演算法框架亦可用於其他形狀估計任務,比如人體姿態估計等。該方法的不足之處在於對初始化形狀θ0比較敏感,使用不同的初始化做多次測試並融合多次預測結果可以一定程度上緩解初始化對於演算法的影響,但並不能完全解決該問題,且多次測試會帶來額外的運算開銷。當目標物體被遮擋時,效能也會變差。

    與上一個工作來自同一課題組的Xavier P. Burgos-Artizzu,針對CPR方法的不足,進一步提出Robust Cascaded Pose Regression(RCPR)方法,並發表在2013年國際計算視覺會議ICCV上。為了解決遮擋問題,Piotr Dollár提出同時預測人臉形狀和特徵點是否被遮擋的狀態,即fi的輸出包含Δθi和每個特徵點是否被遮擋的狀態pi:

    {Δθi , pi }= fi(θi-1, I), i=1,…,n

    當某些特徵點被遮擋時,則不選取該特徵點所在區域的特徵作為輸入,從而避免遮擋對定位的干擾。此外,作者提出智慧重啟技術來解決形狀初始化敏感的問題:隨機初始化一組形狀,執行{f1 ,…,fn-1, fn}的前10%的函式,統計形狀預測的方差,如果方差小於一定閾值,說明這組初始化不錯,則跑完剩下的90%的級聯函式,得到最終的預測結果;如果方差大於一定閾值,則說明初始化不理想,選擇重新初始化一組形狀。該策略想法直接,但效果很不錯。 另外一個很有趣的工作Supervised Descent Method(SDM),從另一個角度思考問題,即考慮如何使用監督梯度下降的方法來求解非線性最小二乘問題,併成功地應用在人臉對齊任務上。不難發現,該方法最終的演算法框架也是一個級聯迴歸模型。與CPR和RCPR不同的地方在於:fi建模成了線性迴歸模型;fi的輸入為與人臉形狀相關的SIFT特徵。該特徵的提取也很簡單,即在當前人臉形狀θi-1的每個特徵點上提取一個128維的SIFT特徵,並將所有SIFT特徵串聯到一起作為fi的輸入。該方法在LFPW和LFW-A&C資料集上取得不錯的定位結果。同時期的另一個工作DRMF則是使用支援向量迴歸SVR來建模迴歸函式fi,並使用形狀相關的HOG特徵(提取方式與形狀相關的SIFT類似)作為fi輸入,來級聯預測人臉形狀。與SDM最大的不同在於,DRMF對於人臉形狀做了引數化的建模。fi的目標變為預測這些形狀引數而不再是直接的人臉形狀。這兩個工作同時發表在CVPR 2013上。由於人臉形狀引數化模型很難完美地刻畫所有形狀變化,SDM的實測效果要優於DRMF。 微軟亞洲研究院孫劍研究員的團隊在CVPR 2014上提出更加高效的級聯形狀迴歸方法Regressing LocalBinary Features(LBF)。和SDM類似,fi也是建模成線性迴歸模型;不同的地方在於,SDM直接使用SIFT特徵,LBF則基於隨機森林迴歸模型在區域性區域學習稀疏二值化特徵。透過學習稀疏二值化特徵,大大減少了運算開銷,比CRP、RCPR、SDM、DRMF等方法具有更高的執行效率(LBF可以在手機上跑到300FPS),並且在IBUG公開評測集上取得優於SDM、RCPR的效能。

    級聯形狀迴歸模型成功的關鍵在於: 1. 使用了形狀相關特徵,即函式fi的輸入和當前的人臉形狀θi-1緊密相關; 2. 函式fi的目標也與當前的人臉形狀θi-1相關,即fi的最佳化目標為當前形狀θi-1與真實位置θ之間的差Δθi。 此類方法在可控和非可控的場景下均取得良好的定位效果,且具有很好的實時性。深度模型 以上介紹的級聯形狀迴歸方法每一個迴歸函式fi都是淺層模型(線性迴歸模型、Random Fern等)。深度網路模型,比如卷積神經網路(CNN)、深度自編碼器(DAE)和受限玻爾茲曼機(RBM)在計算機視覺的諸多問題,如場景分類,目標跟蹤,影象分割等任務中有著廣泛的應用,當然也包括特徵定位問題。具體的方法可以分為兩大類:使用深度模型建模人臉形狀和表觀的變化和基於深度網路學習從人臉表觀到形狀的非線性對映函式。 主動形狀模型ASM和主動表觀模型AAM使用主成分分析(PCA)來建模人臉形狀的變化。由於姿態表情等因素的影響,線性PCA模型很難完美地刻畫不同表情和姿態下的人臉形狀變化。來自倫斯勒理工學院JiQiang教授的課題組在CVPR2013提出使用深度置信網路(DBN)來刻畫不同表情下人臉形狀的複雜非線性變化。此外,為了處理不同姿態的特徵點定位問題,進一步使用3向RBM網路建模從正面到非正面的人臉形狀變化。最終該方法在表情資料庫CK+上取得比線性模型AAM更好的定位結果。該方法在同時具備多姿態多表情的資料庫ISL上也取得較好的定位效果,但對同時出現極端姿態和誇張表情變化的情況還不夠理想。 下圖是深度置信網路(DBN):建模不同表情下的人臉形狀變化的示意圖。

    香港中文大學唐曉鷗教授的課題組在CVPR 2013上提出3級卷積神經網路DCNN來實現人臉對齊的方法。該方法也可以統一在級聯形狀迴歸模型的大框架下,和CPR、RCPR、SDM、LBF等方法不一樣的是,DCNN使用深度模型-卷積神經網路,來實現fi。第一級f1使用人臉影象的三塊不同區域(整張人臉,眼睛和鼻子區域,鼻子和嘴唇區域)作為輸入,分別訓練3個卷積神經網路來預測特徵點的位置,網路結構包含4個卷積層,3個Pooling層和2個全連線層,並融合三個網路的預測來得到更加穩定的定位結果。後面兩級f2, f3在每個特徵點附近抽取特徵,針對每個特徵點單獨訓練一個卷積神經網路(2個卷積層,2個Pooling層和1個全連線層)來修正定位的結果。該方法在LFPW資料集上取得當時最好的定位結果。

    另外一種由粗到精的自編碼器網路(CFAN)來描述從人臉表觀到人臉形狀的複雜非線性對映過程。該方法級聯了多個棧式自編碼器網路fi,每一個fi刻畫從人臉表觀到人臉形狀的部分非線性對映。具體來說,輸入一個低解析度的人臉影象I,第一層自編碼器網路f1可以快速地估計大致的人臉形狀,記作基於全域性特徵的棧式自編碼網路。網路f1包含三個隱層,隱層節點數分別為1600,900,400。然後提高人臉影象的解析度,並根據f1得到的初始人臉形狀θ1,抽取聯合區域性特徵,輸入到下一層自編碼器網路f2來同時最佳化、調整所有特徵點的位置,記作基於區域性特徵的棧式自編碼網路。該方法級聯了3個區域性棧式自編碼網路{f2 , f3, f4}直到在訓練集上收斂。每一個區域性棧式自編碼網路包含三個隱層,隱層節點數分別為1296,784,400。得益於深度模型強大的非線性刻畫能力,該方法在XM2VTS,LFPW,HELEN資料集上取得比DRMF、SDM更好的結果。此外,CFAN可以實時地完成人臉人臉對齊(在I7的桌上型電腦上達到23毫秒/張),比DCNN(120毫秒/張)具有更快的處理速度。 下圖是CFAN:基於由粗到精自編碼器網路的實時人臉對齊方法的示意圖。

    以上基於級聯形狀迴歸和深度學習的方法對於大姿態(左右旋轉-60°~+60°)、各種表情變化都能得到較好的定位結果,處理速度快,具備很好的產品應用前景。針對純側面(±90°)、部分遮擋以及人臉檢測與特徵定位聯合估計等問題的解決仍是目前的研究熱點。

    目前有很多的人臉對齊演算法,比較傳統的有ASM、AAM、CLM和一些列改進演算法,而目前比較流行的有ESR、3D-ESR、SPR、LBF、SDM、CFSS等。

    ASM演算法相對容易,其中STASM是目前正面臉當中比較好的演算法,原作者和CLM比較過。但是STASM速度較慢,大概10frame/s左右。ASM對齊在精度上不如AAM,AAM由於使用全域性紋理資訊,因此精度較高,但是遇到光照和多姿態時,對初始化Shape要求很高,不然容易陷入區域性最佳化。CLM分別繼承了ASM和AAM的一些特徵,效果得到了提升。對區域性器官特徵的機率假設和最佳化演算法的選擇,是CLM各種演算法的本質區別。CLM比較好的論文和文獻有:

    automati feature localtion with constraint models David Cristinacce, Tim Cootes

    Face Alignment through Subspace ConstrainedMean-Shifts 這篇文章綜述了ASM/CLM

    CLM開原始碼較少,但是有很好的從演算法到工程實現的程式碼。

    Constrained LocalModel (CLM) Implementation - Xiaoguang Yan

    很多學者剛接觸到人臉對齊時,不知道它有什麼用處,下面就列舉出人臉對齊的應用領域:(1)人臉器官定位、器官跟蹤。透過人臉對齊,我們能夠定位到人臉的每個部件,提取相應的部件特徵。

    (2)表情識別。透過人臉對齊後,我們能夠利用對齊後的人臉形狀分析人臉的表情狀態。

    (3)人臉漫畫/素描影象生成。透過人臉對齊後,我們能夠進行人臉漫畫和素描生成。如:魔漫相機

    (4)虛擬現實和增強現實。透過人臉對齊後,我們能夠做出很多好玩的應用。如2D應用:

    3D應用:

    (5)人臉老化、年輕化、年齡推斷。特徵融合/影象增強。透過人臉對齊後,我們能夠有效提取人臉特徵,並分析人臉年齡、人臉老化等。

    (6)紋理過渡。如:長得很像某人的狗臉。換臉

    7)性別鑑別。透過人臉對齊,能夠對人臉進行性別識別,男女之間的人臉形狀有一定的差異性。

    8)3D卡通。透過人臉對齊能夠進行3D卡通模擬。

    人臉對齊應用廣泛,有著巨大的研究價值。學者們一定要好好研究哦!

  • 中秋節和大豐收的關聯?
  • 周杰倫新歌賣出3000萬元背後,如何看待數字音樂付費?