人臉識別的前世今生:從人工特徵的百花齊放到深度學習的一統江湖
- 2019 年 12 月 27 日
- 筆記
幾天前一篇arXiv新上論文《Face Recognition: From Traditional to Deep Learning Methods》,對人臉識別技術發展經歷的幾個時期進行了分類,為我們展開了電腦視覺中最為活躍的人臉識別技術發展波瀾壯闊的四十年。
作者資訊:

作者為來自學術界英國赫特福德大學和工業界GBG plc公司的研究人員。
文中指出,自上世紀七十年代開始,人臉識別已成為電腦視覺和生物特徵識別技術中研究最熱門的方向之一。 基於人工設計的特徵和傳統的機器學習技術的傳統方法目前已經被使用大規模數據集訓練的深度神經網路所取代。
在該文中,作者提供了一個既全面回顧又力求最新的人臉識別演算法文獻綜述,包括傳統方法(基於幾何,基於整體,基於特徵和混合方法)和深度學習方法。
人臉識別問題面臨的挑戰
如下所示:

人臉識別面臨諸多技術挑戰,比如人頭部姿態變化,跨年齡人面部變化,光照變化,表情變化,人臉被遮擋等。
人臉識別系統模組
通常人臉識別系統包含如下幾大模組:

1)人臉檢測Face Detection
從影像中找到人臉並返回人臉包圍框坐標。
2)人臉對齊(或稱人臉配准)Face Alignment
檢測人臉特徵點,並據此進行仿射變換,對人臉進行尺度和角度的歸一化。最新的技術甚至在這一步將人臉正面化。
3)人臉表示Face Representation
從人臉影像像素中計算提取人臉緊湊且具鑒別性的特徵向量,或者稱為模板(template)。
理想的特徵是能夠從同一個體的人臉不同影像中提取相似的特徵向量。
4)人臉匹配Face Matching
將兩幅影像的特徵向量進行比較,得到相似分數,用於表示這兩幅人臉影像屬於同一個人的似然性。
下圖是人臉檢測和對齊的示意圖:

人臉特徵提取是所有流程中最重要的步驟,該論文的焦點也以介紹該部分技術文獻梳理為主線。
人臉特徵提取文獻梳理
作者按照技術出現的時間順序和技術特點,分成5個大類。
1)基於幾何的方法Geometry-based Methods
早期的人臉識別方法使用特定的邊緣和輪廓檢測找到人臉特徵點,並據此計算特徵點之間相互位置和距離,用來衡量兩幅人臉影像的相似程度。
這些方法往往在極少個體(10-20個人)的人臉資料庫中進行實驗,但在早期使得電腦來識別人臉稱為可能。
2)基於整體的方法Holistic Methods
這類方法對影像整體進行投影操作提取特徵。
包括我們熟悉的主分量分析(PCA)、線性鑒別分析(LDA),通過尋找一組投影向量將人臉影像降維,再將低維特徵送入類似SVM等機器學習分類器進行人臉分類。

局部保持投影(LPP)是這個方向另一個重要演算法,實踐證明LPP往往優於PCA、LDA。
這個方向還有一項重要工作是影像稀疏表示(sparse representation),及由此衍生的稀疏表示分類器,以重建誤差最小衡量分類結果。
以LFW數據集(Labeled Faces in the Wild)評估為衡量標準,這一類基於整體變換的方法中,取得最高精度的是joint Bayesian方法,達到92.4%的精度。
3)基於特徵的方法Feature-based Methods
在人臉影像中的不同位置提取局部特徵的方法,這種方法往往比基於整體的方法更具魯棒性。
較早的基於特徵的方法比如模組特徵臉(modular eigenfaces),還有類似在影像塊中提取HOG、LBP、SIFT、SURF特徵(這些特徵更具鑒別性),將各模組局部特徵的向量串聯,作為人臉表示。

4)混合方法Hybrid Methods
先使用基於特徵的方法(比如LBP、SIFT)提取局部特徵,再使用子空間方法(比如PCA、LDA)投影獲取低維、鑒別特徵,將基於整體和基於特徵的方法相結合的方法。

這一類方法中有不少基於Gabor+子空間方法。
大量文獻中LBP特徵是這一類方法中重要的局部特徵。
由於此處文獻很多,基本涉及到使用不同的分塊方法、使用不同的局部特徵(Gabor、LBP、SIFT、LTP、LPQ等)、使用不同的子空間方法(PCA、LDA、MFDA、Laplacian PCA、Kernel PCA、kernel LDA等)的不同排列組合。
(這簡直是一個最容易想到論文idea的方向。。。。)
在這一類方法中,GaussianFace在LFW上獲得了最好的精度98.52%,幾乎匹敵很多後來出現的深度學習方法。
5)基於深度學習的方法Deep Learning Methods
深度學習尤其是深度卷積神經網路方法最大的優勢是可以從數據集中學習特徵,如果數據集能夠覆蓋人臉識別中常遇到的各種情況,則系統能夠自動學習克服各種挑戰的特徵。
在早期的神經網路研究中也有用於人臉識別的報道,但由於數據集不夠大,網路不夠深,效果也一般,沒能吸引大家的注意力。
在CNN改進人臉識別的文獻中,DeepFace和DeepID是先驅,成功吸引眾多學者研究該方向。
DeepFace的出現將LFW上state-of-the-art人臉識別方法誤差降低了27%!
深度學習成功用於人臉識別三大要素:大規模數據集、先進的網路架構、有針對性的損失函數。
大規模數據集
業界陸續建立公開了可供深度學習訓練的多個大規模數據集,提供了技術發展的充足燃料,如下表:

先進的網路架構
在網路架構上,受惠於ImageNet影像分類比賽的先進網路,比如VGG網路、GoogleNet,和近年來十分流行的殘差網路,使得構建更深和更高capacity網路成為可能。
殘差單元示意圖:

有針對性的損失函數
最開始大家將人臉識別建模為影像分類問題,使用普通的softmax作為損失函數。
後來出現的triplet loss、centre loss損失函數使得人臉識別推廣能力大大增強。
triplet loss優化目標:

xp與xa為同一個體,xn與xa為不同個體。
而近年來一些在softmax函數上引入間隔(margin)的損失函數也大大改進了結果。
softmax引入間隔示意圖:

目前取得state-of-the-art效果的softmax margin類型一覽:

目前,在人臉識別的研究開發中,基於深度學習的方法已經完全成為主流。
原論文參考文獻眾多,不再一一列出,感興趣的朋友請閱讀原論文。
論文地址:
https://arxiv.org/abs/1811.00116v1