VarGFaceNet:地平線提出輕量級、有效可變組卷積的人臉識別網絡

  • 2019 年 10 月 31 日
  • 筆記

作者 | Mengjia Yan、Mengao Zhao、Zining Xu、Qian Zhang、Guoli Wang、Zhizhong Su

譯者 | 劉暢

編輯 | Jane

【導讀】為了提高用於人臉識別的輕量級網絡的判別和泛化能力,本文提出了一種有效的可變組卷積網絡,稱為VarGFaceNet。VarGNet引入了刻板組卷積,以解決小計算量與塊內計算強度不平衡之間的衝突。

作者採用可變組卷積來設計了網絡,該網絡可以支持大規模人臉識別,同時減少計算成本和參數。具體來說,作者對頭部(head)進行設置,用於在網絡開始時保留基本信息,並提出特定的嵌入方法以減少用於嵌入的全連接層的參數。

為了提高解釋能力,作者採用等效的角度蒸餾損失來指導我們的輕量級網絡,並應用遞歸知識蒸餾來緩解教師模型和學生模型之間的差異。值得一提的是,LFR(2019)挑戰賽,deepglintlight賽道冠軍證明了本文模型和方法的有效性。

論文地址: https://arxiv.org/abs/1910.04985v2 VarGFaceNet代碼開源網址: https://github.com/zma-c137/VarGFaceNet

引言

隨着計算資源的激增,基於深度表示的人臉識別已廣泛應用於監控,營銷和生物識別等許多領域。然而,由於需要進行大規模的身份分類,因此在有限的計算成本系統(例如移動端和嵌入式系統)上實現人臉識別仍然是一項艱巨的任務。

許多工作提出了用於常見計算機視覺任務的輕型網絡,例如SqueezeNet,MobileNet ,MobileNetV2,ShuffleNet,SqueezeNet。它們大量的使用1×1卷積,與AlexNet 相比,可減少50倍的參數,同時在ImageNet上保持AlexNet級別的準確性。

MobileNet 利用深度可分離卷積來實現計算時間和準確性之間的權衡。基於這項工作,MobileNetV2 提出了一種倒置的bottleneck結構,以增強網絡的判別能力。

ShuffleNet 和ShuffleNetV2 使用逐點組卷積和通道隨機操作進一步降低了計算成本。即使它們在推理過程中花費很少的計算並在各種應用程序上有良好的性能,但嵌入式系統上的優化問題仍然存在於。

為了解決這個衝突,VarGNet 提出了一個可變組卷積,可以有效地解決塊內部計算強度的不平衡。同時,作者探索了在相同卷積核大小的情況下,可變組卷積比深度卷積具有更大的學習能力,這有助於網絡提取更多的信息。

但是,VarGNet是針對常用任務設計的,例如圖像分類和目標檢測。它將頭部的空域減小到一半,以節省內存和計算成本,而這種方式並不適合人臉識別任務,因為它需要更詳細的面部信息。而且,在最後的conv和全連接層之間,只有一個平均池化層,可能無法提取足夠的區分性信息。

基於VarGNet,作者提出了一種有效的用於輕量級人臉識別的可變組卷積網絡,簡稱VarGFaceNet。為了增強VarGNet對大規模人臉識別任務的判別能力,作者首先在VarGNet的塊上添加SE塊[13]和PReLU [8]。然後,在網絡開始時刪除了下採樣過程,以保留更多信息。為了減少網絡參數,作者用可變組卷積將特徵張量縮小到fc層之前的1×1×512。

VarGFaceNet的性能表明,這種設置方法可以保留判別能力,同時減少網絡參數。為了增強輕量級網絡的解釋能力,我們在訓練過程中採用了知識蒸餾方法。目前有幾種方法可以使深層網絡更小,更高效,例如模型修剪,模型量化和知識蒸餾。最近,ShrinkTeaNet 引入了一個角度蒸餾損失來關注教師模型的角度信息。

受角度蒸餾損失的啟發,作者採用等效損失和更好的實現來指導VarGFaceNet。此外,為了減輕教師模型和學生模型之間優化的複雜性,作者引入了遞歸知識提煉,它將遞歸的學生模型視為下一代的預訓練模型。

LFR挑戰賽是關於輕量級人臉識別挑戰,它要求FLOPs數在1G以下且內存佔用在20M以下的網絡。VarGFaceNet在這一挑戰上實現了SOTA的性能,這在第3節中有介紹。總之,本文貢獻如下:

  • 為了提高VarGNet在大規模人臉識別中的判別能力,作者採用了不同的頭部並提出了一個新的嵌入塊。在嵌入塊中,作者先通過1×1卷積層將通道擴展到1024,以保留基本信息,然後使用可變組conv和逐點conv將空域縮小到1×1,節省計算成本。如下文所示,這樣的操作能提高人臉識別任務的性能。
  • 為了提高輕量級模型的泛化能力,作者提出了遞歸知識蒸餾,以減少教師模型和學生模型之間的泛化差距。
  • 作者分析了可變組卷積的性能,並在訓練過程中採用了等效的角度蒸餾損失。實驗證明了本文方法的有效性。

方法

與VarGNet不同,本文在網絡開始時使用步長為1的3×3 Conv,而不是VarGNet中步長為2的3×3 Conv。VarGNet中第一個轉換的輸出特徵尺寸將被下採樣,而本文的輸入特徵尺寸將保持與輸入尺寸相同,如圖1(c)所示。

表1和圖2說明了本文的輕量級網絡(VarGFaceNet)的總體結構。VarGFaceNet的內存佔用量為20M,而FLOPs為1G。作者根據經驗將S = 8設置為一組。得益於可變組卷積,頭部設定和特定的嵌入設定,VarGFaceNet可以以有限的計算成本和參數在人臉識別任務上實現良好的性能。在第3節中,我們將展示我們的網絡在數百萬個干擾物面部識別任務上的有效性。

實驗

  • 數據集和評價標準

採用LFR2019的數據作為訓練集。Trillion-parrs作為測試集,它包含兩部分:celeLFW和DELFW。採用TPR@FPR=1e-8作為評價標準

  • 從頭訓練VarGFaceNet

為了驗證VarGFaceNet網絡的效率和有效性,作者從頭開始訓練了網絡,然後將其性能與mobilefacenet(y2)進行比較。作者將arcface損失作為訓練過程中分類的目標函數。表2列出了VarGFaceNet和y2。可以看出,在1G FLOP的限制下,VarGFaceNet能夠在驗證集上達到更好的人臉識別性能。

針對性能的提高,作者分享了兩點直覺:1.當限制FLOPs時,本文的可變組卷積網絡可以包含比y2更多的參數。y2中最多的channel數是256,而本文的最大channel數是320。2.本文的嵌入方法可以提取更多重要信息。y2將通道數從256擴展到512,然後使用7×7depthwise卷積獲得fc層之前的特徵張量。本文將通道數從320擴展到1024,然後使用具有更大網絡容量的可變組卷積和逐點卷積。

  • 使用ResNet指導訓練VarGFaceNet

為了獲得比從頭開始訓練更高的性能,作者使用角度蒸餾損失函數進行知識蒸餾。進行了實驗以研究不同教師模式對VarGFaceNet的影響。結果顯示在Tabel 3中。可以觀察到:1.儘管教師和學生的體系結構完全不同,但VarGFaceNet仍接近ResNet的性能;2. VarGFaceNet的性能與教師模型高度相關。

  • 採用遞歸知識蒸餾進行訓練

當教師模型與學生模型之間存在巨大差異時,僅靠一次的知識蒸餾可能不足以進行知識轉移。為了驗證它,作者使用ResNet 100模型作為教師模型,並在VarGFaceNet上進行遞歸知識蒸餾。當訓練下一迭代模型時,表5中顯示了性能改進。LFW和CFPFP的變化結果增加了0.1%。

結論

在本文中,作者提出了一種有效的輕量級網絡,稱為VarGFaceNet,可用於大規模人臉識別。用於人臉識別的頭部和嵌入方法能有助於保留更多信息,且同時減少參數。此外,為了提高輕量級網絡的解釋能力,作者採用了一種等價的角度蒸餾損失作為目標函數,並提出了遞歸知識蒸餾策略。LFR挑戰賽的結果證明了本文方法的優異性。