深度學習之人臉識別——2020.2.9


一、人臉識別流程

(一)對齊

    通過確定人臉中的標定點(landmark)的位置進行人臉對齊。(找3個點即可,一般找5個點:鼻子、眼睛、嘴角兩端)對齊后可以找到一個二維坐標平面,進行下一步仿射變換。

(二)仿射變換

原理

  • 二維坐標到二維坐標之間的線性變換
  • 不共線的三對對應點決定了一個唯一的仿射變換


        其中,平移——\(c_1\)\(c_2\)為平移量;縮放——\(a_1\)\(b_2\)為縮放量;旋轉——θ是旋轉角度。

(三)回歸

    使用神經網絡(下面使用的DCNN)進行回歸對標定點進行檢測。

    其中,輸入原始畫像后,進行4*4卷積后,在進行池化,卷積....最后使用兩個全連接得到最終結果。這里面采用了一個級聯思想實現CNN組合,級聯思想實現細節如下圖:

論文:Deep Convolutional Network Cascade for Facial Point Detection

(四)特征學習

1. 分類模型
  • Deepface
  • DeepID
  • VGG
  • ResNet
2. 度量學習模型——FaceNet為例

    下圖是FaceNet的簡略示意圖,例如,輸入三張圖片:Anchor、與Anchor不同類的Negative、與Anchor同類的Positive,通過一系列學習后實現同類相近,異類相遠。

論文:FaceNet- A Unified Embedding for Face Recognition and Clustering
    距離計算公式(前半部分為與同類positive之間的距離,后半部分計算與不同類negative的距離。):

    最終實現效果如下圖所示,距離>1.1即可認為相互之間為不同人,即使一個人不同角度也可以被識別為同一人。

二、人臉識別

(一)人臉驗證

    人臉識別中的人臉驗證問題即是驗證兩張圖片是否來自同一個人。主要有以下三種方法,歐氏距離和余弦距離方法是工業中常用的驗證方法,Joint Bayesian方法常用在學術研究中。首先假定兩張人臉圖片提取的特征向量為 \(\overrightarrow{x_j}\)\(\overrightarrow{x_k}\)

1. 歐氏距離:

    距離差越大,相似度越大。

\[\begin{Vmatrix} \overrightarrow{x_j}-\overrightarrow{x_k} \end{Vmatrix} \]

2. 余弦距離

\[\cos\theta =\frac { \overrightarrow{x_j} \cdot \overrightarrow{x_k}}{\begin{Vmatrix} \overrightarrow{x_j} \end{Vmatrix} \cdot \begin{Vmatrix} \overrightarrow{x_k} \end{Vmatrix}} \]

3. Joint Bayesian 方法

    其中,𝑆(∆) 是差異 ∆ 的函數,𝑃(\(H_1\))為先驗概率,𝑃(\(∆|𝐻_1\)) 為似然概率,𝑃($𝐻_1|∆)是后驗概率,是人臉相似性的度量。

(二)人臉搜索

    深度網絡 + hashing [Deep Learning of Binary Hash Codes for Fast Image Retrieval]

    在預訓練好的網絡倒數第二層和最終的任務層中間,插入一個新的全連接層,這個層使用sigmoid激活函數來提供范圍約束,節點數即為目標二值碼的碼長。通過端到端的finetune,可以將語義信息嵌入到這個新加入的全連接層輸出之中。

(三)人臉識別數據集

    主要有以下幾種數據集,其中僅MultiPIE需要購買,其余的申請即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM