人臉對齊:PFLD_2019_CVPR

一篇優秀的人臉特徵點檢測算法,學習一下~

paper: PFLD: A Practical Facial Landmark Detector
link: PFLD paper
code: no open source yet Android apk

摘要

  • 人臉關鍵點檢測器實際應用所需特徵: 準確性好,高效,模型輕量級;
  • 本文提出在非限定條件下的具有理想檢測精度的輕量級landmark檢測模型,在移動設備上能達到超實時的性能:
    • 僅在訓練階段進行旋轉信息的估計來進行幾何規範的特徵點定位;
    • 設計了新的損失函數,針對訓練集中數據的不同狀態調整其在損失函數中的權重緩解數據不平衡的問題;
  • 算法效果: 模型size 2.1Mb,在Qualcomm ARM 845 處理器上達到140fps

引言

  • 人臉關鍵點檢測作爲人臉相關應用的基礎部分面對很多挑戰,包括檢測精度、處理速度、模型size的等多維的因素都要考慮到,在現實場景中很慢獲取質量很高的人臉,因此引入了幾個挑戰:
    1. 局部變化: 現實場景中人臉的表情、光照、以及遮擋情況變化都很大;
    2. 全局變化: 姿態和成像質量也影響圖像中人臉的表徵,人臉全局結構的錯誤估計直接導致定位不準;
    3. 數據不平衡: 不平衡的數據使得算法模型無法正確表示數據的特徵;
    4. 模型的有效性: 由於手機和嵌入式設備計算性能和內存資源的限制,必須要求檢測模型的size小處理速度快;
  • 本文貢獻:
    • 設計出一個使用的人臉特徵點檢測器PFLD,在複雜情況下也能保持高精度;
    • 針對全局變化,PFLD採用分支網絡來估計人臉樣本的集合信息;
    • 針對數據不平衡,設計新的loss function,加大對稀少樣本錯誤的懲罰(感覺和focal loss思想類似)
    • 使用mult-scale fc層用於擴大感受野精確定位人臉的特徵點;
    • 使用Mobilenet block構建網絡的backbone提升模型的處理速度減少模型計算量

本文方法

  • 設計新的損失函數同時處理1,2,3三個問題;
  • 考慮到問題4提出由主幹網絡預測特徵點和估計幾何信息的輔助網絡組成的算法架構;

Loss Function

  • loss function解析: L:=1MMm=1Nn=1γndmnL:=1Mm=1Mn=1NγndnmL:=1Mm=1Mn=1NγndnmL:=1M∑Mm=1∑Nn=1γn∥dmn∥L:=1M∑m=1M∑n=1Nγn∥dnm∥ \mathcal{L} :=\frac{1}{M} \sum_{m=1}^{M} \sum_{n=1}^{N} \gamma_{n}\left\|\mathbf{d}_{n}^{m}\right\|θnk由輔助網絡計算得出,然後由loss建立兩者的聯繫;

backbone network

  • backbone特性: mobilenet block + multi scale fc

auxiliary network

  • 輔助網絡只在訓練階段起到輔助作用,測試階段不需要,輔助網絡特性:在不需要正面人臉作爲輸入的情況下計算出目標的角度
  • 輔助網絡的輸入爲backbone的第4的block;

實驗結果

  • PFLD在各數據的表現只能用優秀來形容…先上一圖,在mean normalised error相同的情況下,PFLD的精度很優秀
  • 再上一圖,PFLD在各個平臺的性能表現
  • 繼續展現實力啦,不同的評價標準不同的數據子集,精度依然是最好的
  • 最後一圖,在AFLW數據集的表現,結果同樣是最優秀的
  • 在一些具有挑戰性樣本上的表現

總結

  • 提出FDLD人臉特徵點檢測器,由主幹網絡和輔助網絡組成,主幹網絡以mobilenet block爲主要結構,同事引入多尺度fc擴大感受野增強面部結構特徵的表達能力,輔助網絡可以有效估計旋轉信息,用來提升特徵點的定位能力;
  • 有幾何規範化和數據不平衡問題引出新loss函數,整個算法在精度、模型尺寸、運行速度上都由於最先進的方法;
  • TO DO:引入其他幾何/結構信息來提升精度, 替換基礎的loss(L2),針對訓練階段遇到的問題設計更加複雜的加權策略;
  • By the way… 之前沒有研究過人臉姿態估計相關內容,理解上可能有些不對望指正… and 這個算法目前只有apk,還沒有開源(期待),算法整體思路比較簡單,但是效果很棒,在日常算法開發研究過程中需要多思多想多嘗試啊
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章