人臉識別 論文閱讀(1)

  1. DeepFace: Closing the Gap to Human-Level Performance in Face Verification
    CVPR 2014,FAIR
    效果:LFW 97.5% (含2D人臉6個關鍵點標註)
    face detection->face alignment->face representation->face identification
    trick:
  • face alignment 上採用了2D&3D 對齊。
  • face representation自己設計的網絡結構。

① face detection:

通過LBP處理特徵,再用SVR學習到fiducial point的位置。

LBP特徵:局部二值模式,用於描述圖像局部特徵的算子。

  • 灰度不變性:抵抗線性光照。
  • 旋轉不變形:抵抗傾斜。
  • 改進:圓形LBP,可控兩個參數R:半徑(決定二維空間尺度)、P:周圍pixel個數(決定角度空間分辨率)。
    在這裏插入圖片描述

SVR爲什麼可以學習到fiducial point?
SVR尋找一組數據的內在關係,找到一個迴歸平面,讓集合的所有數據到該平面的距離最近。
SVR希望學習到一個函數f(x)即超平面使得與y儘可能接近,w、b是待確定的參數。此時相當於以f(x)爲中心,構建一個寬度爲2ε的間隔帶,若訓練樣本落入此間隔帶,被認爲是正確的。
SVR就是SVM做迴歸用的方法,即輸入標籤是連續值的時候用的方法。
在這裏插入圖片描述

② face alignment
參考論文:How far are we from solving the 2D & 3D Face Alignment problem? (and a
dataset of 230,000 3D facial landmarks)
,ICCV 2017,在3D標註數據集LS3D上達到接近飽和的性能
在這裏插入圖片描述

  • 2D對齊(a~b):基於前面學習到的6個基準點做2D裁剪。
    通過堆疊4個HG層的網絡生成Heatmaps,使RGB圖像增加到67個通道
    再用predict和groud truth之間的heatmaps(此處爲confidence maps置信圖:圖像像素包含關鍵點的概率分佈)代替L2損失。
    在這裏插入圖片描述

堆疊4個HG層:(參考論文:Stacked Hourglass Networks for
Human Pose Estimation
),ECCV 2016在這裏插入圖片描述
trick:捕捉不同尺度下圖片所包含的信息 ,eg:方位、動作、相鄰關節點,n階Hourglass子網絡提取了從原始尺度到1/2^n尺度的特徵。不改變數據尺寸,只改變數據深度。
輸入:單張RGB圖像
輸出:人體基準點的精確像素位置(67個2D基準點)
residual模塊(下部分)提取了較高層次的特種功能,上部分保留了原有層次的信息。

在這裏插入圖片描述
重複使用top-down(可用max pooling、1✖️1卷積)和bottom-up(可用最近鄰差值)來推斷2D基準點位置。
損失函數:intermediate supervision(中繼監督的優化方式,對每個階段都計算損失,抵抗反向傳播的梯度消失,使底層參數也能正常更新)

  • 2D-TO-3D對齊©: 基於HG網絡
    trick:機器生成3D標註的數據集。
    輸入:RGB圖像和2D基準點(67個)
    輸出:3D基準點
    怎麼做到的:以每個2D基準點爲中心,std爲1像素做出對應高斯分佈,就能找到3D基準點的位置。

在這裏插入圖片描述

  • 3D對齊(d~g): 基於Delaunay(三角剖分算法)
    【定義】三角剖分 [1] :假設V是二維實數域上的有限點集,邊e是由點集中的點作爲端點構成的封閉線段, E爲e的集合。那麼該點集V的一個三角剖分T=(V,E)是一個平面圖G,該平面圖滿足條件:
    1.除了端點,平面圖中的邊不包含點集中的任何點。
    2.沒有相交邊。
    3.平面圖中所有的面都是三角面,且所有三角面的合集是散點集V的凸包(任意點集中兩點連線都是三角面)。
    我理解的:T = (V,E)
    在這裏插入圖片描述
    ->3D人臉圖像->偏轉放正

③ face representation:
在這裏插入圖片描述

  • C1、M2、C3: 低水平特徵的提取,邊緣特徵或者紋理特徵。
    其中M2降採樣,保留顯著特徵,降低特徵維度。
    其中卷積層爲什麼可以提取提低水平特徵? 經過特定構造的卷積覈對原始圖像進行卷積得到的特徵圖。如圖所示:
    在這裏插入圖片描述

  • L4~L6:局部連接。每個神經元僅與輸入神經元的一塊區域相連接,不共享權重,相當於訓練能區分不同區域的濾波器。eg:有效增加眼睛和眉毛的區分度。

  • F7~F8(F8爲softmax):全連接層。捕捉較遠區域的特徵之間相關性。eg:眼睛和嘴巴的相關性
    原因是softmax我理解有兩個作用,一是取最大值作爲預測,二是可以根據概率值得知對應特徵之間的聯繫。

  • 歸一化、正則化 layer:限定一定的範圍,找出圖像中的不變量,抵抗幾何變換的影響,eg:光照。

④face identification:
可以使用卡方距離或者Siamese網絡

  • 卡方距離:在這裏插入圖片描述
    其中參數由線性SVM學得;
  • Siamese網絡:
    在這裏插入圖片描述
    其中參數由標準交叉熵與反向傳播方法所訓練。

結論:
神經網絡能work的一部分原因在於,一旦人臉對齊,人臉區域的特徵就固定在某些像素位置上了。

接下來計劃閱讀順序:
DeepID(商湯科技)->GaussianFace(科大訊飛)->WebFace->Face++ (曠視科技)->FaceNet(Google)->百度的人臉識別(大規模人臉搜索)->VGG-Face(牛津大學VGG小組)->FR+FCN ->SphereFace->NormFace->ArcFace->MobileFaceNets
->ICCV 2017
->CVPR 2018

在這裏插入圖片描述

可能改進的方向:

1,深度學習(神經網絡結構的設計),基於fiducial point的學習,商湯科技在人臉方面的應用,目前已經看到deep learning在人臉表示和人臉特徵點定位方面的工作,相信後續會有更多更好的工作出現;

2,大規模人臉搜索相關的應用近來開始被大家關注(比如最近百度上線的人臉搜索),這些應用中除了需要傳統的人臉表示,還需要關注如何能夠快速準確地在大規模人臉數據庫中搜索到相似人臉,當然這部分工作可以借鑑其他視覺搜索中的方法,但人臉可能也會有自己的特殊性;

3,基於3D模型和具有深度信息的人臉識別,川大智勝的方法,在允許使用特殊設備的實際應用中,可以考慮用3D模型和深度信息來提高系統的穩定性;

4,在做人臉識別實際系統時,可以更關注姿態、遮擋、表情變化對於識別效果的影響,對於人臉光照問題,雖然之前學術界關注很多,但是對於實際數據(非實驗室採集的光照模擬數據),可能基於大規模訓練數據和feature learning就可以比較好的解決,反而是由於目前的人臉表示框架,對於大的姿態變化,遮擋以及表情變化引起的表觀改變,很多情況下表現並不好,可能需要重新改變目前的人臉表示方式,比如採用類似推薦論文9中的方式,採用多個局部模型而不是一個整體模型來進行表示,還可以考慮一些人臉姿態/表情矯正方法

5,可以考慮創建一個更大的人臉庫(如果能達到真正意義上的大規模數據就更讚了),設計一個更加合理全面的評測協議

LFW數據集介紹:無約束自然場景人臉識別數據集,該數據集由13000多張全世界知名人士互聯網自然場景不同朝向、表情和光照環境人臉圖片組成,共有5000多人,其中有1680人有2張或2張以上人臉圖片。每張人臉圖片都有其唯一的姓名ID和序號加以區分。


S3FD: Single Shot Scale-invariant Face Detector](http://openaccess.thecvf.com/content_ICCV_2017/papers/Zhang_S3FD_Single_Shot_ICCV_2017_paper.pdf)
通過單個深度神經網絡在各種面部表現上表現出色,特別是對於小臉

trick:

  • 確保人臉的每一個像素都具有足夠的檢測功能,以應用於不同的面孔。
    做法:anchor-associated 網絡層的步長 從 4到 128 以2倍方式遞增
  • 通過anchor匹配策略提高小臉的召回率
  • 通過max-out背景標籤降低小臉的假正率

理解
網絡結構

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章