一文讀懂人臉識別,AI張學友是這樣鎖定你的

作者 | 徐友聚

前兩天外媒鋪天蓋地報道了個大新聞:華盛頓杜勒斯機場的 AI 立功了,幫助警察蜀黍捉到了一名非法入境者。

這些美國記者真是大驚小怪,放在我大天朝,隨隨便便一個歌星都能完成“七殺”,你啥時候看我們驕傲了?!

一文讀懂人臉識別,AI張學友是這樣鎖定你的

美國海關喜提人臉識別 AI

事情是這樣的…

就在上個月,作為美國最繁忙機場的華盛頓杜勒斯機場完成了一場歷史性的科技升級——他們在海關入口裝上了人臉識別系統,大家可以刷臉入關了。

一文讀懂人臉識別,AI張學友是這樣鎖定你的

沒想到 AI 上班剛剛三天,8 月 23 日,它就碰上了自己職業生涯的最大挑戰。

當時,一位黑人小哥哥剛從巴西聖保羅抵達華盛頓,小哥拿了本法國護照,準備刷臉過關進入美國。

剛走到人臉識別機器面前,AI 抬眼一看:護照和眼前明顯不是一個人,這小哥難不成有問題?

一文讀懂人臉識別,AI張學友是這樣鎖定你的

系統叫來了警察蜀黍。在一波刨根問底搜查後,小哥終於露出了破綻。

千思萬慮藏到鞋墊下的真實證件,還是出賣了他——小哥壓根不是什麼法國人,而是來自同樣說法語的剛果共和國。

一文讀懂人臉識別,AI張學友是這樣鎖定你的

事情很清楚了,AI 協助抓捕了一位持假證件的非法入境者。

美國海關和邊境保護局歡天喜地,畢竟他們終於在新技術上跑贏了老對手英國——倫敦警察局識別率 2% 的“臉盲識別”都敢吹,相比之下,我們美帝的 AI 簡直堪稱模範員工。

一文讀懂人臉識別,AI張學友是這樣鎖定你的

光是內部表彰還不夠,他們找來了媒體,把 AI 技術樹立成了打擊犯罪的“英雄”,說要全國應用。

也是該推廣一下了,全美將近兩萬個機場,現在用上 AI 的才 14 個…

人臉識別四部曲

其實說到人臉識別,可以分成前 DL (深度學習)和 DL 時代,兩者分水嶺是 2014 年 Facebook 提出的 DeepFace ,它不僅讓深度學習在人臉識別領域大放光彩,也構建了深度人臉識別中主流的基本框架,其主要的步驟主要有:人臉檢測、人臉對齊、人臉特徵提取、人臉分類。

一文讀懂人臉識別,AI張學友是這樣鎖定你的

我們分步來看~

01

人臉檢測

在實際應用中,AI 攝像頭捕捉到的畫面通常比較雜亂,存在若干張人臉和複雜的背景。而作為人臉識別的第一步,就要各個人臉在其中的區域,並且“畫個框框鎖定它”。

一文讀懂人臉識別,AI張學友是這樣鎖定你的

02

人臉對齊

但此時框住的人臉還無法直接進行特徵提取。

低頭玩手機的,側身和同伴講話的,抬頭仰望詩和遠方的……

一文讀懂人臉識別,AI張學友是這樣鎖定你的

為了降低識別難度,就要把人臉姿態統一校正為最理想的姿態——一張豎直的正臉,校正方法主要分為 2D 校正和 3D 校正兩種。

2D校正首先對人臉區域進行截取,然後檢測幾個基點(如左右眼、鼻尖、左右嘴角共 5 個點)計算人臉的姿態,依此對人臉截圖進行旋轉,使人臉豎直。

拿小布什舉個栗子~

一文讀懂人臉識別,AI張學友是這樣鎖定你的

而相較之下,3D 校正則需要檢測更多基點(如常見的 67 點),並做 Delaunay 三角化,將通用的 3D 人臉模型與之做匹配,使得各基點的誤差最小,將各三角區域的人臉圖片貼到 3D 人臉模型上,通過旋轉 3D 模型從而獲取人臉的下面圖像,3D 校正可以有效降低側臉的識別難度。

03

人臉特徵提取

經過前兩步,一張對正人臉的圖片已經 get~ 接下來,就是對人臉的特點進行描述。

深度學習可以將複雜、冗餘的人臉圖片轉換為一個 1024 維或者其他維數的特徵向量,在保留人臉特徵信息的同時大量減少了數據量,是十分有效特徵提取方法。

由於人臉識別與物體分類任務的相似性(將圖片分到不同的 ID/類別),VGGNet / InceptionNet / ResNet 等用於物體分類的網絡結構同樣廣泛適用於人臉識別中。

損失函數的改進是目前人臉識別主要的研究方向之一,相比於物體分類任務,人臉識別需要識別的 ID 數要更多;深度學習是數據驅動的,但獲取每個人的大量人臉圖片是不現實的,所以人臉識別需要適合的損失函數來提供更好的泛化性能。

一文讀懂人臉識別,AI張學友是這樣鎖定你的

如上圖左側 Closed-set Face Recognition 所示,將用於人臉識別任務的神經網絡中使用同一般的分類任務一樣的損失函數,最終訓練得到的模型可以將特定人物(出現在訓練集中)的人臉分開,實現識別的目的。

但各類別在特徵空間中分佈的較為分散,邊界相距較近,如果待識別的是陌生人(未出現在訓練集中)的人臉圖片,則其特徵向量的分佈極有可能會和其他若干個不同人臉對應的區域重疊,使得網絡不能有效的識別訓練集之外的人,網絡的實用性較差,這也是 Closed-set 所指的不足。

相比之下,Open-set Face Recognition 則使用不同方法來實現類似度量學習中 margin 的概念,使得同一人的特徵向量分佈更加緊密,不同人的特徵向量分佈之間相距更遠。由於每個人的特徵向量分佈區域更小以及margin的存在,使得即便是陌生人臉的特徵向量也難和其他人的區域出現重合,從而實現更有效且實用的人臉識別。

目前人臉識別算法損失函數基於以下兩個思路進行改進

  • Metric Learning: 直觀來看就是讓同一個人的特徵向量分佈在一個小的範圍內,不同人的特徵向量距離大於margin,如Contrastive Loss, Triplet loss及相關sampling method。
  • Margin Based Classification: 由於分類(或者說softmax損失函數)本身已經實現了同一個人的特徵向量相互靠近,所以改進的重點是讓不同人的特徵向量距離大於margin。包含Softmax with Center loss, Sphereface, NormFace, AM-softmax(CosFace)和ArcFace。

在介紹上述算法之前,我們先來了解一下常見的距離或者相似度度量方法~

01

距離和相似度度量

歐氏距離

即2階範數,可用以下公式計算

一文讀懂人臉識別,AI張學友是這樣鎖定你的

Cosine餘弦相似度/向量內積

兩個向量間的餘弦值可以很容易地通過使用歐幾里得點積和量級公式推導

一文讀懂人臉識別,AI張學友是這樣鎖定你的

鑑於兩個向量的屬性, A 和B的餘弦相似性θ用一個點積形式來表示其大小,如下所示:

一文讀懂人臉識別,AI張學友是這樣鎖定你的

也就是說兩個向量的cosine距離就是這兩個向量之間的夾角,適合高維度向量的相似度計算。

皮爾遜相關係數

從下面這個公式可知,它其實就是將數據減去其對應均值做cosine相似度計算,所以也叫centered cosine

一文讀懂人臉識別,AI張學友是這樣鎖定你的

皮爾遜相關係數具有平移不變性和尺度不變性,計算出了兩個向量的相關性。當兩個變量的標準差都不為零時,相關係數才有定義。

02

Metric Learning

一文讀懂人臉識別,AI張學友是這樣鎖定你的

Contrastive Loss

Contrastive Loss本質上是使同一個人的照片在特徵空間距離足夠近,不同人在特徵空間裡相距足夠遠直到超過某個閾值m。基於這樣的insight,DeepID2在訓練的時候不是以一張圖片為單位了,而是以Image pair為單位,每次輸入兩張圖片,為同一人則verification label為1,不是同一人則label為-1。

Triplet Loss

2015年, Google發表的Facenet是人臉識別領域另一個具有代表的工作,提出了一個絕大部分人臉問題的統一解決框架,即:識別、驗證、搜索等問題都可以放到特徵空間裡做,需要專注解決的僅僅是如何將人臉更好的映射到特徵空間。為此,Google在DeepID2的基礎上,學到更好的feature,拋棄了分類層即Classification Loss,將Contrastive Loss改進為Triplet Loss。

在Triplet loss思想中,輸入不再是兩張圖片(Image Pair),而是三張圖片(Triplet),分別為Anchor face, negative face和positive face。Anchor face與positive face為同一人,與negative face為不同人。那麼Triplet loss的損失即可表示為:

一文讀懂人臉識別,AI張學友是這樣鎖定你的

直觀解釋為:在特徵空間裡anchor與positive的距離要小於anchor與negative的距離超過一個margin alpha。

但Metric Learning也存在一些問題。比如:

  • 需要很長的時間訓練
  • 模型好壞很依賴訓練數據的sample方式,理想的sample方式不僅能提升算法最後的性能,更能略微加快訓練速度。

03

Margin Based Classification

Margin Based Classficiation不像在feature層直接計算損失的Metric Learning那樣,對feature加直觀的強限制,而是依然把人臉識別當classfication任務進行訓練,通過對softmax公式的改造,間接實現了對feature層施加margin的限制,使網絡最後得到的feature更discriminative。

Sphereface

做為最常見的分類損失 Softmax,其定義如下:

一文讀懂人臉識別,AI張學友是這樣鎖定你的

Softmax 不會顯式的優化類間和類內距離的,所以通常不會有太好的性能。

為了方便計算,我們讓 bias=0,全聯接的 WX 可以表示為:

一文讀懂人臉識別,AI張學友是這樣鎖定你的

θ 表示 W 和 X 的夾角,歸一化 W 後:

一文讀懂人臉識別,AI張學友是這樣鎖定你的

對特定的 X,|| X || 是確定的,所以這時 Softmax 優化的其實就是 cos 值,或ß者說他們的夾角 θ。

一文讀懂人臉識別,AI張學友是這樣鎖定你的

圖a、b是用原始softmax損失函數訓練出來的特徵,圖c、d是歸一化的特徵。不難發現在softmax的特徵從角度上來看有latent分佈。

W 歸一化後,改進後的損失函數為:

一文讀懂人臉識別,AI張學友是這樣鎖定你的

為了保證最大類內距離還要小於最小類間距離,所以引入了margin的思想,這跟triples loss裡面引入margin alpha的思想是一致的:

一文讀懂人臉識別,AI張學友是這樣鎖定你的

一文讀懂人臉識別,AI張學友是這樣鎖定你的

由此得到上圖中e、f的所示結果,同一ID對應的特徵向量聚集的更加緊密,兩類中心的角度間距更大,且存在較大的margin。

Normface

在測試階段,sphereface通過特徵間的餘弦值來衡量相似性。但在訓練階段,sphereface優化特徵與類中心的角度乘上一個特徵的長度,優化的方向還有一部分是去增大特徵的長度。Normface的核心思想就出來了:為何在訓練的時候不把特徵也做歸一化處理?相應的損失函數如下:

一文讀懂人臉識別,AI張學友是這樣鎖定你的

其中W是歸一化的權重,f_i是歸一化的特徵,兩個點積就是角度餘弦值

M-softmax/CosFace

Normface用特徵歸一化解決了sphereface訓練和測試不一致的問題。但是卻沒有了margin的意味。AM-softmax可以說是在Normface的基礎上引入了margin。損失函數:

一文讀懂人臉識別,AI張學友是這樣鎖定你的

其中這裡的權重和特徵向量都是歸一化的。 直觀上來看,cos(θ)-m比cos(θ)更小,即相同距離下,樣本到其標記類別的損失比到其他做任意類別損失更大,所以損失函數值比Normface裡的更大,因此有了margin的感覺。m是一個超參數,控制懲罰的力度,m越大,懲罰越強。作者推薦m=0.35。這裡引入margin的方式比Sphereface中的明顯,沒有很多需要調參的超參數,更容易復現。

ArcFace

與AM-softmax相比,區別在於Arcface引入margin的方式不同,損失函數:

一文讀懂人臉識別,AI張學友是這樣鎖定你的

注意m是在餘弦裡面。該方法中margin直接加在需要優化的角度變量上,相比其他方法更加直接。文章指出基於上式優化得到的特徵間的邊界更為優越,具有更強的幾何解釋。

04

人臉分類

通過上述方式訓練得到需要的神經網絡後,就可以方便地計算出人臉的特徵向量了。之後就是使用不同的算法對其進行分類,從而適應不同的應用場景。

常見的算法主要有以下幾種:

  1. 基於cosine/歐氏距離的:
  2. 最近鄰 適用於identification
  3. 閾值比較 適用於verification
  4. SVM等適用於小樣本分類的經典分類器
  5. metric learning
  6. sparse-representation-based classifier (SRC) 相比SVM更適用於不平衡數據集

等等,你的臉丟了………

話說回來,美國人對 AI 刷臉技術不感冒,一方面原因是技術實力很尷尬——之前有機構對亞馬遜的人臉識別技術 Rekognition 做過測試,533 名國會議員中有 28 個都被 AI 認成了犯罪分子。

一文讀懂人臉識別,AI張學友是這樣鎖定你的

更主要的,則是出於對隱私安全的憂慮。幾乎每一次政府的推廣行為,都會引起輿論的民眾的爭議。

他們擔心這項技術會成為洩露隱私的幫兇,這些面部信息何去何從,能否得到妥善的管理,如果管理不當而招致信息洩露,那麼用戶的個人隱私就無異於處在“裸奔”狀態。

試想一下,如果有人通過 3D 打印等技術手段來複制你的臉,進而完成各種交易……後果不堪設想。

不過,還是那句話,技術本身是沒有原罪的。如何從管理層面引導技術發展走向則需要政府、企業、個人等多面的共同努力。

一文讀懂人臉識別,AI張學友是這樣鎖定你的

比如歐洲監管機構,就在今年 5 月生效的《通用數據保護條例》中規定:包括“臉紋”在內的生物信息屬於其所有者,使用這些信息需要徵得本人同意。

看來大數據和人工智能時代,我們要看好的不僅有錢包和手機,還要自己的臉…

一文讀懂人臉識別,AI張學友是這樣鎖定你的

參考文獻:

[1] Y. Sun, X. Wang, and X. Tang. Deep learning face representation by joint identification-verification. CoRR, abs/1406.4773, 2014.

[2] F. Schroff, D. Kalenichenko, and J. Philbin. Facenet: A unified embedding for face recognition and clustering. In Proc. CVPR, 2015.

[3] W. Liu, Y. Wen, Z. Yu, M. Li, B. Raj, and L. Song. Sphereface: Deep hypersphere embedding for face recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition, 2017

[4] F. Wang, W. Liu, H. Liu, and J. Cheng. Additive margin softmax for face verification. In arXiv:1801.05599, 2018.

[5] CosFace: Large Margin Cosine Loss for Deep Face Recognition

[6] Deng, J., Guo, J., Zafeiriou, S.: Arcface: Additive angular margin loss for deep face recognition. In: Arxiv preprint. 2018


分享到:


相關文章: