機器學習實踐系列之3 - 人臉對齊(上)__SDM

來源:互聯網
上載者:User

       臉部偵測 早已比較成熟,傳統的基於HOG+線性分類器 的方案檢測效果已經相當不錯,我們也不再過多討論,本節重點討論人臉特徵點對齊,特徵點對齊主要應用在確定關鍵點的位置上,並進一步用於人臉姿態或狀態的判斷(用在輔助駕駛、疲勞檢測、AR等)。

        

       下面介紹常用的人臉對齊演算法:

• ASM

        ASM(Active Shape Model)是指主觀形狀模型,即通過形狀模型 對 目標物體進行抽象。

        ASM 是一種 基於點分布模型(Point Distribution Model, PDM)的演算法。在PDM中,外形相似的物體,例如 人臉、人手、心臟等的幾何形狀可以通過若干關鍵特徵點(landmarks)的座標依次串聯形成一個形狀向量來表示。

       基於ASM的人臉 通常通過 標定好的68個關鍵特徵點 來進行描述:

       ASM演算法 分為 訓練過程 和 搜尋過程

一. ASM的訓練:

       1.1 搜集 T 個訓練樣本,樣本數量根據需要(假定 T=100)

             註:樣本只需要包含人臉映像即可,大小和方向不需要限定(後續可以歸一化)。

       1.2 手動標記n個臉部特徵點(假定 n=68)

             需要配合標定軟體將結果座標存到文字文件。

       1.3 構建形狀向量

             將記錄下來的座標點,按照順序連成向量,每一個樣本 描述為一個向量:

             

       1.4 進行歸一化和對齊(採用Procrustes方法)

             可以看作是通過簡單的 平移、旋轉、縮放,在不改變點分布模型的基礎上,將樣本中多個人臉歸一化到一個統一的標準。

             這個統一的標準即為 平均臉。

            Procrusts歸一化方法一般為使用一個四元數:旋轉角度a, 縮放尺度s,水平位移x, 垂直位移y 。這裡僅把他看作一個變化T,具體過程為:

(1)將訓練集中的所有人臉模型對齊到第一個人臉模型(典型意義,可以自主選擇);

(2)計算 平均人臉模型 X0;

(3)將所有樣本模型對齊到平均人臉 X0,描述為: Xi = X0 + b (b為相對於平均臉的偏置);

        任意的一個臉可以由平均臉和參數b來進行描述,參數b描述了平均臉到人臉的細微變化。

(4)重複(2)(3),直至X0收斂 或者到一定時間停止。

       1.5 PCA降維

             PCA 降維主要作用是降低非關鍵維度影響,減少資料量、提高效果,這個過程並不是必須的。

       1.6 為每個特徵點構建局部特徵

             局部特徵 用於在 特徵點附近進行搜尋(可以在特徵點附近的矩形框搜尋,也可以沿法線方向搜尋),以迭代的方式尋找新的特徵點匹配位置

             為防止光照變化,局部特徵一般採用梯度特徵描述(當然也可以通過顏色、紋理等,可以參考後續AAM演算法)。

              

        對於第 i(<T)個樣本,上圖中的第k 個點(<n,圖中k=29),沿著垂直於其相鄰兩個點連線(圖中虛線)的垂直方向,兩個各選擇m個點,構成一個長度為2m+1的向量,對該向量所包含的像素灰階求導,得到一個局部紋理值 gik,對其他樣本中對應點執行同樣的操作,就得到第k個特徵點對應的局部紋理 序列:

        { gi0, gi1, gi2, …gik…, gin }

        我們用 均值 和 方差 來描述第 k 個特徵點對應的局部特徵:

       

        特徵點 與 樣本特徵的比對採用 馬氏距離

        

二. ASM的搜尋:

       1.1 初始化對齊人臉

             根據HOG臉部偵測結果的大致人臉位置,將前面計算得到的平均臉 X0 進行仿射變換,得到一個初始的特徵點模型:

X = M ( X0 ) + b

       1.2 搜尋特徵點

a)針對每個特徵點

      在特徵點鄰域內進行 迭代搜尋,通過局部特徵點的特徵匹配,擷取新的特徵點位置;

      關於特徵點搜尋方式,有的方法沿著邊緣的法線方向提取,有的方法在特徵點附近的矩形地區提取,這裡先不展開討論。

      通過特徵點選擇演算法,選擇多個 候選點候選點 採用上面同樣的方法進行特徵提取,然後與樣本特徵點模型進行匹配,匹配採用前面提到的馬氏距離,距離最小的候選點即作為新的特徵點中心。

b)採用 平均人臉模型 對匹配結果進行修正; 反覆執行 (a)(b),直到收斂

      用初始模型在新的映像中搜尋目標形狀,使搜尋中的特徵點和相對應的特徵點最為接近,持續最佳化 b,計算最接近模型。


        目前關於ASM 主要的工具包: 

1. Asmlib-opencv

    基於opencv2.0,比較老了,效果一般,起步學慣用。

    連結地址:https://github.com/cxcxcxcx/asmlib-opencv

2. stasm

    準確度還可以,開源。

    連結地址:https://github.com/juan-cardelino/stasm

• AAM

        AAM 稱為 主動外觀模型(Active Appearance Model),AAM是在ASM的基礎上,進一步對紋理(將人臉映像變換到平均形狀 而得到的形狀無關映像)進行統計建模,並將形狀和紋理兩個統計模型進一步融合為 外觀模型。可以理解為:

        Appreance = Shape + Texture

        AAM 在對形狀和紋理特徵統一量綱後,建模和搜尋過程和ASM基本相同。

• CLM

        CLM 是有約束的局部模型(Constrained Local Model),它通過初始化平均臉的位置,然後讓每個平均臉上的特徵點在其鄰域位置上進行搜尋匹配來完成人臉點檢測。前面講到的ASM也屬於CLM的一種。

        CLM分別繼承 ASM和AAM的優點,在ASM的效率 與 AAM的效果之間做了平衡。拋棄了AAM的全域紋理方法,在ASM的基礎上,通過特徵點周圍的局部紋理Patch,提高了ASM僅僅依靠灰階 帶來的匹配問題,引用一張老掉牙的圖 說明原理:

        

       CLM的關鍵在於約束(Constrains),有兩個層面的意思:

1)我們的眼睛、鼻子、嘴巴 相對位置是明確的,你不需要到鼻子上面找嘴巴(這肯定是怪物對不對。),這些Patch的位置稱為Shape Model;

2)對於每個Patch,對應一個Local Model,你只需要在限定的位置周圍(Local Region)進行尋找匹配即可;

• SDM

       SDM 全名是 Supervised Descent Method,中文叫監督下降方法。

       SDM 方法提出的背景就是為了更好的解決非線性最佳化問題,那麼什麼是非線性最佳化問題呢。非線性最佳化問題 就是約束條件或者目標函數是非線性。

       學界通常使用二階導數的方法進行最佳化,比如牛頓法。

       非線性最佳化問題 通常有 2個痛點:

(1)函數(方程)可能不可微,或者參數無法估計;

(2)Hessian不正定,或者維度太高導致計算量過大;


       SDM 與其他方法不同的地方在於:牛頓法 每次迭代的步長 Δx 是計算得到的:

               Δx =-Jf/H(參見上圖牛頓法公式),也就是以 雅可比矩陣 除以 Hessian矩陣作為下降方向。

       而SDM 每次的步長 Δx = R * x,R是通過對樣本訓練得到的:

              也可以認為SDM的 步長 Δx 是通過樣本學習的到 Hessian矩陣的逆 與 Jacobian矩陣的乘積 Jf/H。

       OK,到這裡我們知道了,SDM是一種最佳化方法,主要是用於目標函數的最佳化求解。和人臉對齊本身沒什麼關係,But 作者用這個方法,很好的解決了關鍵點的迴歸問題,取得了 State-Of-The-Art的效果。

       下面我給出 SDM 的推導過程:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.