天天看點

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

作者:計算機視覺研究院

關注并星标

從此不迷路

計算機視覺研究院

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)
人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

公衆号ID|計算機視覺研究院

學習群|掃碼在首頁擷取加入方式

源碼下載下傳 | 回複“FT”擷取源碼

論文:https://arxiv.org/pdf/2103.14803.pdf

計算機視覺研究院專欄

Column of Computer Vision Institute

現階段的人臉檢測識别技術已經特别成熟,不管在什麼領域都有特别成熟的應用,比如:無人超市、車站檢測、犯人抓捕以及行迹追蹤等應用。但是,大多數應用都是基于大量資料的基礎,成本還是非常昂貴。是以人臉識别的精度還是需要進一步提升,那就要繼續優化更好的人臉識别架構。

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)
人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

一、技術回顧——Transformer

相比于卷積,Transformer有什麼差別,優勢在哪?

  1. 卷積有很強的歸納偏見(例如局部連接配接性和平移不變性),雖然對于一些比較小的訓練集來說,這毫無疑問是有效的,但是當我們有了非常充足的資料集時,這些會限制模型的表達能力。與CNN相比,Transformer的歸納偏見更少,這使得他們能夠表達的範圍更廣,進而更加适用于非常大的資料集;
  2. 卷積核是專門設計用來捕捉局部的時空資訊,它們不能夠對感受野之外的依賴性進行模組化。雖然将卷積進行堆疊,加深網絡會擴大感受野,但是這些政策通過聚集很短範圍内的資訊的方式,仍然會限制長期以來的模組化。與之相反,自注意力機制通過直接比較在所有時空位置上的特征,可以被用來捕捉局部和全局的長範圍内的依賴;
  3. 當應用于高清的長視訊時,訓練深度CNN網絡非常耗費計算資源。目前有研究發現,在靜止圖像的領域中,Transformer訓練和推導要比CNN更快。使得能夠使用相同的計算資源來訓練拟合能力更強的網絡。

二、簡要

最近,人們不僅對Transformer的NLP,而且對計算機視覺也越來越感興趣。我們想知道Transformer是否可以用于人臉識别,以及它是否比cnns更好。

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

是以,有研究者研究了Transformer模型在人臉識别中的性能。考慮到原始Transformer可能忽略inter-patch資訊,研究者修改了patch生成過程,使互相重疊的滑動塊成為辨別。這些模型在CASIA-WebFace和MSSeleb-1M資料庫上進行訓練,并在幾個主流基準上進行評估,包括LFW、SLLFW、CALFW、CPLFW、TALFW、CFP-FP、AGEDB和IJB-C資料庫。研究者證明了在大規模資料庫MS-Celeb-1M上訓練的人臉Transformer模型實作了與CNN具有參數和MACs相似數量的CNN相似的性能。

二、FACE TRANSFORMER

2.1 網絡架構愛

人臉Transformer模型采用ViT[A. Dosovitskiy, L. Beyer, A. Kolesnikov, D. Weissenborn, X. Zhai, T. Unterthiner, M. Dehghani, M. Minderer, G. Heigold, S. Gelly et al., “An image is worth 16x16 words: Transformers for image recognition at scale,” arXiv preprint arXiv:2010.11929]體系結構,采用原Transformer。唯一的差別是,研究者修改了ViT的标記生成方法,以生成具有滑動塊的标記,即使圖像塊重疊,以便更好地描述塊間資訊,如下圖所示。

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

具體地說,從圖像𝑿中提取滑動塊,塊大小為𝑃和步幅𝑆(輸入兩側隐式為零),最後得到一系列扁平的二維塊𝑿𝒑。(𝑊,𝑊)是原始圖像的分辨率,而(𝑃,𝑃)是每個圖像塊的分辨率。

正如ViT所做的那樣,可訓練的線性投影将扁平塊𝑿𝒑映射到model dimension D,并輸出塊嵌入𝑿𝒑𝑬。類标記,即一個可學習的嵌入(𝑿𝑐𝑙𝑎𝑠𝑠=𝒛)連接配接到塊嵌入上,它在Transformer編碼器(𝒛)輸出處的狀态是最終的人臉圖像嵌入,如下方程式。

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

然後,将位置嵌入添加到塊嵌入中,以保留位置資訊。

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

Transformer的關鍵子產品MSA由𝑘并行自檢(self-attention,SA)組成:

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

MSA的輸出是𝑘注意頭輸出的連接配接

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

2.2 Loss Function

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

基于Softmax的損失函數消除了偏置項,并轉換了𝑾𝒙=𝑠cos𝜃𝑗,并在cos𝜃𝑦𝑖項,[ J. Deng, J. Guo, N. Xue, and S. Zafeiriou, “Arcface: Additive angular margin loss for deep face recognition,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition]中加入了large margin。是以,基于Softmax的損失函數可以表示為:

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

[9] H. Wang, Y. Wang, Z. Zhou, X. Ji, D. Gong, J. Zhou, Z. Li, and W. Liu, “Cosface: Large margin cosine loss for deep face recognition,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition

三、實驗及可視化

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

對于ViT模型,層數是20個,頭數是8個,hidden大小為512,MLP大小為2048。從T2T-ViT模型中一部分——Token-to-Token,深度為2,hidden為64,MLP大小為512;而對于主幹網絡,層數是24,頭數為8,hidden大小為512,MLP大小是2048。請注意,“ViT-P10S8”代表ViT模型具有10×10patch尺寸,步幅𝑆=8和“ViT-P8S8”表示标記之間沒有重疊。

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

在Attention Rollout技術的幫助下,研究者分析了Transformer模型(MS-Celeb-1M,ViT-P12S8)如何專注于人臉圖像,并發現人臉Transformer模型如何像預期的那樣關注人臉區域。

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)
人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

(1)不同層次的注意矩陣的可視化。(2)是指基于頭部和網絡深度的參與區域的注意距離。

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

随着遮擋面積的增加,人臉Transformer模型和ResNet100的識别性能得到了提高。

© THE END

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

轉載請聯系本公衆号獲得授權

人臉識别精度提升 | 基于Transformer的人臉識别(附源碼)

計算機視覺研究院學習群等你加入!

ABOUT

計算機視覺研究院

計算機視覺研究院主要涉及深度學習領域,主要緻力于目标檢測、目标跟蹤、圖像分割、OCR、模型量化、模型部署等研究方向。研究院每日分享最新的論文算法新架構,提供論文一鍵下載下傳,并分享實戰項目。研究院主要着重”技術研究“和“實踐落地”。研究院會針對不同領域分享實踐過程,讓大家真正體會擺脫理論的真實場景,培養愛動手程式設計愛動腦思考的習慣!

🔗

繼續閱讀