人臉專集3 | 人臉關鍵點檢測(下)—文末源碼

2021-02-21 計算機視覺研究院

今天繼續上期的《人臉關鍵點檢測》,精彩的現在才真正的開始,後文會陸續講解現在流行的技術,有興趣的我們一起來學習!

Deep learning based methods

 

近年來,深度學習成為解決計算機視覺問題的常用工具。對於人臉關鍵點檢測和跟蹤,有從傳統方法向基於深度學習的方法轉變的趨勢。

在早期的工作中(Wu, Y., Wang, Z., Ji, Q.: Facial feature tracking under varying facial expressions and face poses based on restricted boltzmann machines. In: IEEE Conference on Computer Vision and Pattern Recognition, pp. 3452–3459 (2013)),深層Boltzmann模型,一個概率深度模型,被用來捕捉由於姿態和表情而引起的面部形狀變化,用於人臉裡程碑的檢測和跟蹤。近年來,卷積神經網絡模型成為人臉關鍵點檢測,主要是深度學習模型,並且大多採用全局直接回歸或級聯回歸框架。這些方法大致可分為純學習法和混合學習法。

純學習方法直接預測人臉關鍵點位置,而混合學習方法則將深度學習方法與計算機視覺投影模型相結合進行預測。

純學習方法:這類方法使用強大的CNNs模型從人臉圖像中直接預測關鍵點位置。在早期的工作中(Sun, Y., Wang, X., Tang, X.: Deep convolutional network cascade for facial point detection. In: IEEE Conference on Computer Vision and Pattern Recognition, pp. 3476–3483 (2013)),它以級聯的方式預測了五個人臉關鍵點。在第一層,它應用一個包含四個卷積層的CNN模型(下圖)來預測由面部邊界框確定的人臉圖像的關鍵點位置。然後,幾個淺層網絡對每個點進行局部細化。

從那以後,在兩個方向上都比早起某些工作有一些改進。在第一個方向上,(Zhang, Z., Luo, P., Loy, C., Tang, X.: Facial landmark detection by deep multi-task learning. In: European Conference on Computer Vision, Part II, pp. 94–108(2014)和Zhang, Z., Luo, P., Loy, C.C., Tang, X.: Learning deep representation for face alignment with auxiliary attributes. IEEE Transactions on Pattern Analysis and Machine Intelligence 38(5), 918–930 (2016))利用多任務學習的思想來提高性能。直覺是,多個任務可以共享相同的表示,它們的聯合關係將提高單個任務的性能。例如,多任務學習與CNN模型相結合,共同預測面部特徵、面部頭部姿態、面部屬性等。在該工作(Ranjan, R., Patel, V.M., Chellappa, R.: Hyperface: A deep multi-task learning framework for face detection, landmark localization, pose estimation, and gender recognition. CoRR abs/1603.01249 (2016). URL http://arxiv.org/abs/1603.01249)提出了一個類似的多任務CNN框架,以聯合執行人臉檢測、地標定位、姿態估計和性別識別。不同的是它結合了多個卷積層的特徵,以利用粗特徵表示和精細特徵表示。

在第二個方向上,一些工作改進了方法的級聯程序(Sun, Y., Wang, X., Tang, X.: Deep convolutional network cascade for facial point detection. In: IEEE Conference on Computer Vision and Pattern Recognition, pp. 3476–3483 (2013))。例如,某paper構造了類似的級聯CNN模型來預測更多的點(68個關鍵點而不是5個)(Zhou, E., Fan, H., Cao, Z., Jiang, Y., Yin, Q.: Extensive facial landmark localization with coarse-to-fine convolutional network cascade. In: IEEE International Conference on Computer Vision Workshops, pp. 386–391 (2013))。它從所有68個點的預測開始,並逐步將預測分解為局部的面部成分。在該paper(Zhang, J., Shan, S., Kan, M., Chen, X.: Coarse-to-fine auto-encoder networks (CFAN) for real-time face alignment. In: European Conference on Computer Vision, Part II, pp. 1–16 (2014))中,深層自動編碼器模型用於執行相同的級聯關鍵點搜索。而在(Trigeorgis, G., Snape, P., Nicolaou, M.A., Antonakos, E., Zafeiriou, S.: Mnemonic descent method: A recurrent process applied for end-to-end face alignment. In: IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 4177–4187. Las Vegas, NV, USA (2016))中,Trigeorgis等人沒有以級聯的方式訓練多個網絡,訓練了一種深度卷積遞歸神經網絡(RNN),用於端到端面部關鍵點的檢測,以模擬級聯行為。級聯階段嵌入到RNN的不同時間切片中。

混合深度方法將CNN與3D視覺相結合,如投影模型和三維形變形狀模型(上圖)。它們不是直接預測二維面部關鍵點位置,而是預測三維形狀可變形模型係數和頭部姿態。然後,通過計算機視覺投影模型確定二維關鍵點位置。例如,(Zhu, X., Lei, Z., Liu, X., Shi, H., Li, S.: Face alignment across large poses: A 3d solution. In: IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV (2016))建立了一個密集的三維人臉模型。然後,採用迭代級聯回歸框架和深度CNN模型對三維人臉形狀係數和姿態參數進行更新。在每一次迭代中,利用視覺投影模型將三維形狀投影到二維,並將二維形狀作為CNN回歸預測模型的附加輸入,以融合目前估計的三維參數。類似地,(Kanade, T., Cohn, J.F., Tian, Y.: Comprehensive database for facial expression analysis. In: IEEE International Conference on Automatic Face and Gesture Recognition, pp. 46–53)在第一個級聯CNN模型中使用整個面部外觀來預測三維形狀參數和姿態的更新,而在後期級聯CNN模型中使用局部斑塊來細化關鍵點。

與純學習方法相比,混合方法的三維形狀變形模型和姿態參數是表示二維關鍵點位置的更為緊湊的方法。因此,CNN中需要估計的參數較少,形狀約束可以顯式地嵌入到預測中。此外,由於引入了三維姿態參數,它們可以更好地處理姿態變化。

在之前講解中,我們討論了面部表情三種主要類別中的關鍵點檢測方法:整體方法、約束局部方法(CLM)和基於回歸的方法。三種主要的方法存在著相似之處和相互關係。

首先,整體方法和CLMs都將使用顯式構造的面部形狀模型捕捉全局面部形狀模式,這些模型通常在它們之間共享。CLMs改進了整體方法,因為它們使用局部外觀,而不是整體的面部外觀。所需的動機是將整體的面部外觀建模更困難,並且局部圖像修補程序與整體外觀模型相比,光照改變和面部遮擋更加魯棒。

第二,基於回歸的方法,尤其是用於級聯回歸方法與整體AAM共享相似的直覺。例如,它們通過擬合外觀來估計關鍵點,並且它們全部可以被配製成非線性的平方問題。然而,整體方法預測2D形狀,外觀模型係數通過擬合整體外觀模型,而級聯回歸方法直接通過擬合局部外觀而不顯式2D形狀模型來預測關鍵點。該配件整體方法的問題可以用基於LearnBased的方法或分析方式來解決,如前面所討論的那樣,所有級聯回歸方法執行通過學習進行估計。雖然整體模型的基於學習的擬合方法通常使用相同的方法,用於以迭代方式進行係數更新的模型,級聯回歸方法以級聯方式學習不同的回歸模型。

AAM模型在之前討論為一種特定類型的整體方法非常類似於監督下降方法(SDM)(Xiong, X., De la Torre Frade, F.: Supervised descent method and its applications to face alignment. In: IEEE International Conference on Computer Vision and Pattern Recognition (2013))作為一種特定類型的方法級聯回歸方法。兩個級聯學習從形狀索引特徵到形狀(係數)更新的映射的模型。經訓練的模型在當前級聯階段中,將修改訓練用於在下一狀態下訓練回歸模型的數據。雖然以前的整體方法適合整體外觀並預測模型係數,但SDM擬合局部外觀並預測關鍵點位置。

第三,在CLM中使用的基於regressional的局部外觀模型中存在相似性。之前的基於回歸方法,兩者都預測從關鍵點位置的初始猜測的位置更新。以前的方法獨立地預測每個關鍵點位置,而後來的方法預測它們是聯合的,形狀約束可以隱式嵌入。以前的方法通常執行一步預測,相同的回歸模型,而後面的方法可以以級聯方式應用不同的回歸函數。

第四,與整體方法和約束局部方法相比,基於回歸的方法可能會更有希望。基於回歸的方法繞過顯式面部形狀建模並隱式嵌入人臉形狀模式約束。基於回歸的方法直接預測關鍵點,而不是整體方法中的模型係數。直接預測形狀通常可以由於小模型係數,實現較好的精度錯誤可能導致大的關鍵點誤差。

下期我們針對各種因素進行講解,並在流行的數據集上的實驗效果做詳細描述,最後給出未來趨勢及著重點。

 

https://github.com/luoyetx/deep-landmark

https://github.com/yinguobing/cnn-facial-landmark

如果想加入我們「計算機視覺研究院」,請掃二維碼加入我們。我們會按照你的需求將你拉入對應的學習群!計算機視覺研究院主要涉及深度學習領域,主要致力於人臉檢測、人臉識別,多目標檢測、目標跟蹤、圖像分割等研究方向。研究院接下來會不斷分享最新的論文算法新框架,我們這次改革不同點就是,我們要著重」研究「。之後我們會針對相應領域分享實踐過程,讓大家真正體會擺脫理論的真實場景,培養愛動手編程愛動腦思考的習慣!

相關焦點

  • 機器學習 | 人臉關鍵點檢測
    它已經被編程來檢測你臉上的一些標記,並根據這些標記投射濾鏡。在機器學習中,這些標記被稱為人臉關鍵點。在本文中,我將指導您如何使用機器學習來檢測這些「面部坐標」。首先,我將簡單地從導入這個任務所需的所有庫開始。在本文中,我將使用PyTorch使用深度學習進行地標檢測。
  • 使用Python+OpenCV+Dlib實現人臉檢測與人臉特徵關鍵點識別
    今天,我們將學習如何檢測圖像中的人臉並提取面部特徵,如眼睛、鼻子、嘴巴等。當我們使用DLib算法檢測這些特徵時,我們實際上得到了每個特徵點的映射。該映射由67個點(稱為地標點)組成,可識別以下特徵:安裝要求與往常一樣,本文將用代碼演示示例,並將逐步指導你實現一個完整的人臉特徵識別示例。
  • 人臉檢測發展:從VJ到深度學習(下)
    從「深度學習」這一字面上可以看到,神經網絡改頭換面重出江湖,關鍵在一個「深」字上。神經網絡是一種受大腦結構啟發而設計出的層級模型,其由一系列按照一定規則相連接的節點組成,形成一種層次化的結構。最簡單的一個神經網絡只包含3層:輸入層、隱層(和外部的輸入、輸出沒有直接關聯)和輸出層,相鄰兩層之間的節點通過有向邊相連接,其中每條邊對應有一個權值。
  • 獲ICME人臉106關鍵點檢測比賽冠軍 百度大腦彰顯AI實力
    在今年4月初結束的ICME人臉106關鍵點檢測比賽(Grand Challenge of 106-p Facial Landmark Localization)中,百度大腦視覺技術團隊與來自全球的20多個優秀代表隊同臺競技,其中包括阿里、華為、美團、中科大等國內視覺技術實力強勁的團隊,最終一舉摘得桂冠。
  • 雪梨科技大學CVPR 2018論文:無監督學習下的增強人臉關鍵點檢測器
    Supervision-by-Registration 的整體框架Supervision-by-Registration(SBR) 是一個訓練人臉關鍵點檢測器的算法框架,能夠利用無監督的方式增強任何基於圖像的人臉關鍵點檢測器。SBR 利用了物體在視頻中的運動比較平滑的特性來提升一個現有的人臉關鍵點檢測器。
  • 人臉關鍵點越多越好?曠視Face++為你詳解1000點和106點的差別
    日前,Face++人工智慧開放平臺推出稠密人臉關鍵點SDK產品,而在近日,Face++雲端稠密人臉關鍵點API也正式上線。所謂稠密人臉關鍵點,即其可檢測人臉1000個關鍵點信息,那不僅有人問:人臉關鍵點是越多越好麼?1000點和106點、81點有什麼區別呢?對此,Face++也給出了一些解讀。
  • 應用層下的人臉識別(三):人臉比對
    這兩個特性使人臉1:n能迅速落地於公安追捕逃犯,但時其難度要遠高於人臉1:1 。(其通常會受到光照變化、人臉姿態的影響——比如側臉、低頭、逆光現象,會大大提升人臉漏報率。)人臉1:n中「n」的大小(人臉庫照片的數量)會影響人臉識別的準確率和比對速度,所以比對人臉庫規模會設置的相對較小。3.
  • Python系列之三——人臉檢測、人臉識別
    比詹小白還要白的童鞋可以查看往期文章進行了解噢1.人臉識別(一)——從零說起2.人臉識別(二)——訓練分類器3.人臉識別(二)——訓練分類器的補充說明4.人臉識別(三)——源碼放送一、人臉檢測      python版人臉檢測基本上可以參照C++版本的程序,根據語法不同進行改寫即可。
  • 人臉檢測發展:從VJ到深度學習(上)
    給定一張輸入圖像,要完成人臉檢測這個任務,我們通常分成三步來進行:    1.選擇圖像上的某個(矩形)區域作為一個觀察窗口;    2.在選定的窗口中提取一些特徵對其包含的圖像區域進行描述;    3.根據特徵描述來判斷這個窗口是不是正好框住了一張人臉。   檢測人臉的過程就是不斷地執行上面三步,直到遍歷所有需要觀察的窗口。
  • 萌顏SDK中的人臉貼紙功能如何檢測
    人臉貼紙如何實現萌顏中的人臉貼紙功能主要是基於人臉識別技術實現的,人臉檢測將人像數據進行提取,可以實時高效的檢測出視頻中的多張人臉,精準定位到畫面中的人臉位置並獲取相關信息。並且對圖像和視頻中給定的人臉進行特徵點定位,同時還要準確地識別人臉五官和輪廓的坐標點,實時高效地進行人臉追蹤,從而實現人臉貼紙功能。
  • 人臉檢測+數據訓練+人臉識別
    準備工作:安裝opencv-python安裝opencv-contrib-python一、先寫一個單張的人臉識別代碼
  • 基於Adaboost算法的人臉檢測分類器!
    ,早期人們的主要研究方向是人臉識別,即根據人臉來識別人物的身份,後來在複雜背景下的人臉檢測需求越來越大,人臉檢測也逐漸作為一個單獨的研究方向發展起來。積分圖構建        2.3. 計算Haar特徵值        2.4. Haar特徵歸一化        2.5. 級聯分類器    3. 人臉檢測案例        3.1. 人臉檢測        3.2. 人臉檢測+人眼檢測        3.3.
  • 中星微AI刷新WIDER FACE人臉檢測世界記錄
    摘要:近日,中星微AI自研的人臉檢測算法VIM_FD,在世界數據規模最大的權威人臉檢測平臺 WIDER FACE的人臉檢測競賽一舉奪得世界第一,彰顯中星微AI在人臉識別領域的創新能力和先進性。近日,中星微AI自研的人臉檢測算法VIM_FD,在世界數據規模最大的權威人臉檢測平臺 WIDER FACE的人臉檢測競賽一舉奪得世界第一,彰顯中星微AI在人臉識別領域的創新能力和先進性。這是中星微AI首次斬獲人臉檢測領域的世界第一的名次,也是中星微AI在檢測領域,階段性的重要研究成果。
  • 美圖影像實驗室(MTlab)10000 點人臉關鍵點技術全解讀
    點 3D 人臉關鍵點技術」——利用深度學習技術實現 10000 點的人臉五官精細定位,該項技術可以在 VR 遊戲中構建玩家人臉的 3D 遊戲角色並且驅動,也可以應用於虛擬試妝試戴和醫療美容領域等。正文如下:簡介在計算機視覺領域,人臉關鍵點定位在視覺和圖形中具有廣泛的應用,包括面部跟蹤、情感識別以及與多媒體相關的交互式圖像視頻編輯任務。
  • 京東AI研究院在業界頂級人臉檢測榜單「WIDER FACE」三項評測排名...
    近日,京東AI研究院計算機視覺與多媒體實驗室提出人臉檢測算法「Improved Selective Refinement Network(ISRN)」,在業界頂級人臉檢測榜單「WIDER FACE」中的「Easy」、「Medium」和「Hard」三項評測集中,以96.3%AP,95.4%AP,90.3%AP的優異性能全部獲得排名第一的佳績
  • 深扒人臉識別60年技術發展史(附國內人臉識別科技企業名單)
    Gabor及LBP特徵描述子是迄今為止在人臉識別領域最為成功的兩種人工設計局部描述子。這期間,對各種人臉識別影響因子的針對性處理也是那一階段的研究熱點,比如人臉光照歸一化、人臉姿態校正、人臉超分辨以及遮擋處理等。也是在這一階段,研究者的關注點開始從受限場景下的人臉識別轉移到非受限環境下的人臉識別。
  • AI大廠算法測試心得:人臉識別關鍵指標有哪些?
    因此,本文將從算法原理、應用場景、關鍵指標一一進行介紹。  人臉識別算法原理簡述  在介紹關鍵性能指標之前,我們需要釐清人臉識別的技術原理。業內知名免費算法平臺——虹軟視覺開放平臺推出的《從零學習人臉識別》系列技術公開課中,對算法測試的關鍵指標進行了詳細介紹。開發者朋友可以百度搜索 "虹軟人臉公開課",在第三期"人臉檢測算法介紹"和"人臉識別算法介紹"中進行詳細了解。
  • 最強六大開源輕量級人臉檢測項目分析 | 附打包下載
    因為人臉檢測本身並不屬於特別複雜的任務,因此輕量級的深度學習模型即可滿足該任務。本文匯總了六大開源的人臉檢測項目。,該項目使用一個SSD架構的人臉檢測模型,在酷睿 i7 的CPU上,320x240解析度下可以達到296.21 FPS,下圖是該項目在不同解析度和單線程下的速度概覽。
  • 乾貨 | MTCNN實時人臉檢測網絡詳解與代碼演示
    微信公眾號:OpenCV學堂關注獲取更多計算機視覺與深度學習知識覺得文章對你有用,請戳底部廣告支持MTCNN模型概述多任務卷積神經網絡(MTCNN)實現人臉檢測與對齊是在一個網絡裡實現了人臉檢測與五點標定的模型
  • 基於膚色分割結合模板匹配的人臉檢測改進方法解析
    為此,本文對基於膚色分割結合模板匹配的人臉檢測方法進行了改進,提出基於「光照預處理+膚色模型+模板匹配」的人臉檢測解決思路,即在光照預處理的前提下,利用膚色特徵建立膚色模型;根據膚色模型進行膚色檢測和閾值分割;在對分割區域特徵分析的基礎上,將篩選出的人臉候選區域與人臉模板相匹配