論文標題
《A Discriminative Feature Learning Approach for Deep Face Recognition》
一種用於深度人臉識別的判別性特徵學習方法
作者
Yandong Wen、Kaipeng Zhang、Zhifeng Li 和 Yu Qiao
來自深圳市計算機視覺與專利重點實驗室、中國科學院深圳先進技術研究院和香港中文大學
初讀
摘要
- 卷積神經網路(CNNs)在計算機視覺領域被廣泛使用,顯著提高了現有技術水平。
- 在大多數可用的CNNs中,softmax 損失函式被用作訓練深層模型的監督訊號。
- 為了增強深度學習特徵的判別力,本文為人臉識別任務提出了一種新的監督訊號,稱為中心損失。
- 具體來說,中心損失同時學習每個類深層特徵的中心,並懲罰深層特徵與其對應類別中心之間的距離。
- 更重要的是,我們證明了所提出的中心損失函式在 CNNs 中是可訓練且易於最佳化的。
- 透過 softmax 損失和中心損失的聯合監督,我們可以訓練一個健壯的CNNs,以儘可能多地獲得具有兩個關鍵學習目標——類間離散性和類內緊湊性的深層特徵,這對人臉識別至關重要。
- 效果:
- 令人鼓舞的是,我們的 CNNs(採用這種聯合監督)在幾個重要的人臉識別基準上,如 Labeled Faces in the Wild (LFW)、YouTube Faces (YTF) 和 MegaFace Challenge,取得了最先進的準確率。
- 特別是,我們的新方法在小訓練集協議(包含少於 500000 張影像和少於 20000 人)下的 MegaFace (最大的公共領域人臉基準)上取得了最佳結果,顯著提高了以前的結果,併為人臉識別和人臉驗證任務設定了新的技術水平。
結論
- 在本文中,我們提出了一種新的損失函式,稱為中心損失。
- 透過將中心損失與softmax損失結合,共同監督CNN的學習,可以顯著增強深度學習特徵的判別力,從而實現穩健的人臉識別。
- 在幾個大規模的人臉基準上的廣泛實驗已經令人信服地證明了我們提出方法的有效性。
再讀
Section 1 Introduction
-
CNNs:
-
卷積神經網路(CNNs)在視覺領域取得了巨大成功,顯著提高了分類問題的技術水平,例如物件、場景、動作等等。這主要得益於大規模訓練資料和端到端學習框架。最常用的 CNNs 執行特徵學習和標籤預測,將輸入資料對映到深度特徵(最後一層隱藏層的輸出),然後到預測的標籤,如圖 1 所示。
- 圖片註解:圖 1. 卷積神經網路的典型框架。
-
在通用的物件、場景或動作識別中,可能的測試樣本的類別在訓練集內,這也被稱為閉集識別(close-set identification)。因此,預測的標籤決定了效能,而 softmax 損失能夠直接解決分類問題。在這種情況下,標籤預測(最後一層全連線層)就像一個線性分類器,而深度學習的特徵很容易是可分離的。
-
-
人臉識別任務的判別性:
- 對於人臉識別任務,深度學習的特徵不僅需要是可分離的,而且還需要具有判別性。
- 由於在實際操作中不可能預先收集所有可能的測試身份進行訓練,因此 CNN 中的標籤預測並不總是適用。深度學習的特徵需要足夠判別性和泛化能力,以便在沒有標籤預測的情況下識別新的未見類別。
- 判別效能力描述了特徵在緊湊的類內變化和可分離的類間差異兩個方面,如圖 1 所示。判別性特徵可以透過最近鄰(NN)或k最近鄰(k-NN)演算法很好地進行分類,這些演算法不一定依賴於標籤預測。然而,softmax 損失僅鼓勵特徵的分離性。因此,所得到的特徵對於人臉識別來說並不足夠有效。
-
小批次下的損失設計:
- 在 CNNs 中為判別性特徵學習構建高效的損失函式並非易事。因為隨機梯度下降(SGD)是基於小批次(mini-batch)來最佳化 CNNs 的,這不能很好地反映深度特徵的全域性分佈。由於訓練集規模巨大,每次迭代輸入所有訓練樣本是不切實際的。
- 作為替代方法,對比損失和三元組損失分別為影像對和三元組構建損失函式。然而,與影像樣本相比,訓練對或三元組的數量顯著增加。這不可避免地導致收斂速度慢和不穩定。透過仔細選擇影像對或三元組,問題可能會部分緩解。但這會顯著增加計算複雜度,並且訓練過程變得不方便。
-
中心損失(center loss):
在本文中,我們提出了一種新的損失函式,即中心損失(center loss),用以有效增強神經網路中深度學習特徵的判別能力。
- 具體來說,我們為每個類別的深度特徵學習一箇中心(一個與特徵維度相同的向量)。在訓練過程中,我們同時更新中心並最小化深度特徵與其對應類別中心之間的距離。
- CNNs 在 softmax 損失和中心損失的聯合監督下進行訓練,有一個超引數來平衡這兩個監督訊號。直觀地說,softmax 損失強制不同類別的深度特徵保持分離。中心損失有效地將同一類別的深度特徵拉向它們的中心。
- 在聯合監督下,不僅類間特徵差異被放大,而且類內特徵變化也被減少。因此,深度學習特徵的判別能力可以得到高度增強。
-
本文貢獻
我們的主要貢獻總結如下:
- 我們提出了一種新的損失函式(稱為中心損失)來最小化深度特徵類內距離。據我們所知,這是第一次嘗試使用這樣的損失函式來幫助監督 CNN 的學習。在中心損失和 softmax 損失的聯合監督下,可以獲得高度判別性的特徵,以支援魯棒的人臉識別,這一點得到了我們的實驗結果的支援。
- 我們展示了所提出的損失函式在 CNN 中非常容易實現。我們的 CNN 模型是可訓練的,並且可以透過標準的 SGD 直接最佳化。
- 我們在 MegaFace Challenge(具有 100 萬張人臉用於識別的最大公共域人臉資料庫)的資料集上進行了廣泛的實驗,並在小訓練集評估協議下設定了新的最先進水平。我們還驗證了我們的新方法在 Labeled Faces in the Wild(LFW)和 YouTube Faces(YTF)資料集上的卓越效能。
Section 2 Related work
- 近年來,透過深度學習進行的人臉識別取得了一系列的突破。將一對人臉影像對映到距離的想法始於[6]。他們訓練了連體網路,使得正對(即同一個人的人臉影像對)的相似度度量小,而對負對(即不同人的人臉影像對)的相似度度量大。
- Hu 等人學習了一種非線性變換,並在正負人臉影像對之間產生了一個判別的深度度量邊界。這些方法需要影像對作為輸入。
- 最近,[34, 31] 透過挑戰識別訊號(softmax 損失函式)來監督 CNNs 的學習過程,這為深度學習特徵帶來了更豐富的與身份相關的資訊。
- 之後,[29, 37] 採用了聯合識別-驗證監督訊號,從而得到了更具判別性的特徵。
- [32] 透過在每個卷積層新增一個全連線層和損失函式來增強監督。
- 三元組損失的有效性已在 [27, 25, 21] 中得到了證明。透過深度嵌入,將錨點與正樣本之間的距離最小化,而將錨點與負樣本之間的距離最大化,直到滿足邊際為止。它們在 LFW 和 YTF 資料集上實現了最先進的效能。
Section 3 The Proposed Approach
擬議的方法
在本節中,我們將詳細闡述我們的方法。我們首先使用一個簡單的例子直觀地展示深度學習特徵的分佈。受此分佈的啟發,我們提出了中心損失來提高深度學習特徵的判別能力,然後進行了一些討論。
- 圖片註解:表 1. 我們在簡單示例中使用的 CNN 架構,稱為 LeNets++。其中一些卷積層後面跟著最大池化層。\((5, 32)_{/1,2}\times2\) 表示有兩個級聯的卷積層,每個層有 \(32\) 個 \(5\times5\) 大小的濾波器,其中步長和填充分別為 \(1\) 和 \(2\)。\(2_{/2,0}\) 表示網格為 \(2\times2\) 的最大池化層,其中步長和填充分別為 \(2\) 和 \(0\)。在 LeNets++ 中,我們使用引數化修正線性單元(PReLU)作為非線性單元。
3.1 A toy example
簡單示例
-
損失函式
softmax 損失函式如下所示:
\[\mathcal{L}_S=-\sum^m_{i=1}\log\frac{e^{\boldsymbol{W}^T_{y_i}\boldsymbol{x}_i+b_{y_i}}}{\sum^n_{j=1}e^{\boldsymbol{W}^T_j\boldsymbol{x}_i+b_j}}\qquad\qquad(1) \]- 在方程 1 中,\(x_i\in\R^d\) 表示第 \(i\) 個深度特徵,屬於第 \(y_i\) 類。\(d\) 是特徵維度。
- \(W_j\in\R^d\) 表示最後一層全連線層中權重 \(W\in\R^{d\times n}\) 的第 \(j\) 列,\(b\in\R^n\) 是偏置項。
- 小批次的大小和類的數量分別是 \(m\) 和 \(n\)。為了簡化分析,我們省略了偏置項。(實際上,效能幾乎沒有什麼差別)。
-
二維視覺化:
- 在本節中,我們展示了在 MNIST 資料集上的一個簡單示例。我們將 LeNets 修改為一個更深更寬的網路,但將最後一個隱藏層的輸出數量減少到 2(這意味著深度特徵的維度為 2)。因此,我們可以直接在 2-D 平面上繪製特徵以進行視覺化。網路架構的更多細節在表 1 中給出。
- 在圖 2 中繪製了得到的 2-D 深度特徵,以說明其分佈情況。由於最後一層全連線層像一個線性分類器一樣作用,不同類的深度特徵透過決策邊界來區分。從圖 2 我們可以觀察到:
- 在 softmax 損失的監督下,深度學習特徵是可分離的,
- 深度特徵判別性不夠,因為它們仍然顯示出顯著的類內變化。因此,直接使用這些特徵進行識別是不合適的。
- 圖片註解:圖 2. 在 softmax 損失的監督下,訓練集 (a) 和測試集 (b) 中深度學習特徵的分佈,這裡我們使用 50K/10K 的訓練/測試劃分。不同顏色的點表示來自不同類的特徵。最好在彩色中檢視。
3.2 The center loss
中心損失
-
原版中心損失
那麼,如何開發一個有效的損失函式來提高深度學習特徵的判別能力呢?直觀地說,最小化類內差異同時保持不同類別的特徵可分離是關鍵。為此,我們提出了中心損失函式,如方程 2 所示。
\[\mathcal{L}_C=\frac{1}{2}\sum^m_{i=1}\Vert\boldsymbol{x}_i-\boldsymbol{c}_{y_i}\Vert^2_2\qquad\qquad(2) \]- \(\boldsymbol{c}_{yi}\in\R^d\) 表示第 \(y_i\) 類深度特徵的類中心。
-
基於小批次進行更新的中心損失
-
這個公式有效地刻畫了類內差異。理想情況下,\(\boldsymbol{c}_{y_i}\) 應該隨著深度特徵的變化而更新。換句話說,我們需要考慮整個訓練集,並在每次迭代中平均每個類的特徵,這是低效甚至不切實際的。因此,中心損失不能直接使用。這可能是直到現在這樣的中心損失從未在 CNN 中使用過的原因。
-
為了解決這個問題,我們進行了兩個必要的修改。首先,我們不是根據整個訓練集來更新中心,而是基於小批次進行更新。在每次迭代中,透過平均相應類的特徵來計算中心(在這種情況下,一些中心可能不會更新)。其次,為了避免少數錯誤標記樣本引起的大幅波動,我們使用一個標量 \(\alpha\) 來控制中心的學習率。\(\mathcal{L}_C\) 關於 \(x_i\) 的梯度以及 \(\boldsymbol{c}_{y_i}\) 的更新方程計算如下:
\[\begin{gather} \frac{\partial\mathcal{L}_C}{\partial\boldsymbol{x}_i}=\boldsymbol{x}_i-\boldsymbol{c}_{y_i}\qquad\qquad(3)\\ \Delta\boldsymbol{c}_j=\frac{\sum^m_{i=1}\delta(y_i=j)\cdot(\boldsymbol{c}_j-\boldsymbol{x}_i)}{1+\sum^m_{i=1}\delta(y_i=j)}\qquad\qquad(4) \end{gather} \]-
其中,如果條件滿足,則 \(\delta(condition)=1\),如果不滿足,則 \(\delta(condition)=0\)。\(\alpha\) 被限制在 \([0, 1]\) 範圍內。
-
我們採用 softmax 損失和中心損失的聯合監督來訓練 CNN,以進行判別性特徵學習。公式如方程 5 所示。
\[\begin{align} \mathcal{L}&=\mathcal{L}_S+\lambda\mathcal{L}_C\\ &=-\sum^m_{i=1}\log\frac{e^{\boldsymbol{W}^T_{y_i}\boldsymbol{x}_i+b_{y_i}}}{\sum^n_{j=1}e^{\boldsymbol{W}^T_j\boldsymbol{x}_i+b_j}}+\frac{1}{2}\sum^m_{i=1}\Vert\boldsymbol{x}_i-\boldsymbol{c}_{y_i}\Vert^2_2 \end{align}\qquad\qquad(5) \]
-
-
-
顯然,由中心損失監督的 CNN 是可訓練的,並且可以透過標準的 SGD 進行最佳化。一個標量 \(\lambda\) 被用來平衡這兩個損失函式。如果將 \(\lambda\) 設定為 0,傳統的 softmax 損失可以被認為是這種聯合監督的一個特例。在演算法 1 中,我們總結了在具有聯合監督的 CNN 中的學習細節。
-
我們還進行了實驗來說明 \(\lambda\) 如何影響分佈。圖 3 顯示了不同的 \(\lambda\) 導致不同的深度特徵分佈。在適當的 \(\lambda\) 下,深度特徵的判別能力可以得到顯著增強。此外,特徵在 \(\lambda\) 的廣泛範圍內具有判別性。因此,聯合監督有助於深度學習特徵的判別能力,這對於人臉識別至關重要。
- 圖片註解:圖 3. 在 softmax 損失和中心損失的聯合監督下深度學習特徵的分佈。不同顏色的點表示來自不同類的特徵。不同的 \(\lambda\) 導致不同的深度特徵分佈(\(\alpha=0.5\))。白色點(\(c_0, c_1,\cdots,c_9\))表示深度特徵的 10 個類中心。最好在彩色中檢視。
3.3 Discussion
- 聯合監督的必要性
- 如果我們只使用 softmax 損失作為監督訊號,得到的深度學習特徵將包含大量的類內變化。
- 另一方面,如果我們只透過中心損失來監督 CNN,深度學習特徵和中心將退化為零(此時,中心損失非常小)。
- 簡單地使用其中任何一個都無法實現判別性特徵學習。因此,有必要將它們結合起來,共同監督 CNN,這一點已經透過我們的實驗得到了證實。
- 與對比損失和三元組損失相比
- 最近,對比損失和三元組損失也被提出用於增強深度學習人臉特徵的判別能力。然而,對比損失和三元組損失都面臨著在訓練集中構成樣本對或樣本三元組時的資料急劇擴張問題。
- 我們的中心損失與 softmax 損失具有相同的要求,不需要對訓練樣本進行復雜的重新組合。因此,我們的 CNN 的監督學習更高效且易於實現。
- 此外,我們的損失函式更直接地針對類內緊湊性的學習目標,這對判別性特徵學習非常有益。
Section 4 Experiments
實驗
必要的實現細節在 4.1 節給出。然後我們在 4.2 節調查引數λ和α的敏感性。在 4.3 節和 4.4 節中,我們在幾個公共域人臉資料集(LFW,YTF 和 MegaFace Challenge)上進行了廣泛的實驗,以驗證所提出方法的有效性。
4.1 Implementation Details
實施細節
-
預處理(Preprocessing)
- 所有影像中的人臉及其標誌點都是由最近提出的演算法檢測的。
- 我們使用 5 個標誌點(兩隻眼睛、鼻子和嘴角)進行相似變換。當檢測失敗時,如果是在訓練集中,我們就簡單地丟棄該影像,但如果是一個測試影像,我們就使用提供的標誌點。
- 人臉被裁剪成 \(112\times96\) 的 RGB 影像。遵循先前的慣例,RGB 影像中的每個畫素(在 [0, 255] 範圍內)都透過減去 \(127.5\) 然後除以 \(128\) 進行歸一化。
-
訓練資料(Training data)
- 我們使用網路收集的訓練資料,包括 CASIAWebFace,CACD2000,Celebrity+。
- 在移除出現在測試資料集中的身份影像後,大約有 70 萬張影像,涉及 17,189 個獨特的人物。
- 在 4.4 節中,我們只使用了約 49 萬張訓練資料,遵循小訓練集的協議。影像進行水平翻轉以進行資料增強。與[27](2億)、[34](4千萬)和[25](2千萬)相比,這是一個小規模的訓練集。
-
CNNs 中的詳細設定(Detailed settings in CNNs)
-
我們使用 Caffe 庫以及我們的修改來實現 CNN 模型。本節中所有的 CNN 模型都具有相同的架構,具體細節在圖 4 中給出。
- 圖片註解:圖 4. 用於人臉識別實驗的 CNN 架構。採用聯合監督。卷積層和區域性卷積層中的濾波器大小均為 \(3\times3\),步長為 \(1\),後面跟著 PReLU 非線性單元。三個區域性卷積層中的權重分別在 \(4\times4\)、\(2\times2\) 和 \(1\times1\) 的區域內部共享。卷積層的特徵圖數量為 \(128\),區域性卷積層的特徵圖數量為 \(256\)。最大池化的網格為 \(2\times2\),步長為 \(2\)。第 \(4\) 個池化層和第 \(3\) 個區域性卷積層的輸出被連線起來作為第 \(1\) 個全連線層的輸入。全連線層的輸出維度為 \(512\)。最好在彩色中檢視。
-
為了公平比較,我們分別訓練了三種模型:在 softmax 損失監督下的模型 A,softmax 損失和對比損失監督下的模型 B,softmax 損失和中心損失監督下的模型 C。
-
這些模型在兩個GPU(TitanX)上以 256 的批次大小進行訓練。
- 對於模型 A 和模型 C,學習率從 0.1 開始,在 16K、24K次迭代時除以 10。完整的訓練在 28K 次迭代時完成,大約需要 14 小時。
- 對於模型 B,我們發現它收斂得更慢。因此,我們將學習率初始化為 0.1,並在 24K、36K 次迭代時切換。總迭代次數為 42K,耗時 22 小時。
-
-
測試中的詳細設定(Detailed settings in testing)
- 深度特徵取自第一個全連線層的輸出。我們提取每個影像及其水平翻轉影像的特徵,並將它們連線起來作為表示。
- 得分是透過兩個特徵在 PCA 之後的餘弦距離來計算的。
- 最近鄰和閾值比較用於身份識別和驗證任務。注意,我們所有測試只使用單個模型。
4.2 Experiments on the parameter λ and α
引數 \(\lambda\) 和 \(\alpha\) 的實驗
-
超引數 \(\lambda\) 控制著類內變化,而 \(\alpha\) 控制著模型 C 中中心 \(c\) 的學習率。這兩個引數對於我們模型都是至關重要的。因此,我們進行了兩個實驗來調查這兩個引數的敏感性。
- 圖片註解:圖 5. LFW 資料集上不同模型的面部驗證準確率,分別由 (a) 不同 \(\lambda\) 和固定 \(\alpha=0.5\) 的模型實現。 (b) 不同 \(\alpha\) 和固定 \(\lambda=0.003\) 的模型實現。
-
在第一個實驗中,我們將 \(\alpha\) 固定為 0.5,並且使 \(\lambda\) 從 0 變化到 0.1 來學習不同的模型。這些模型在 LFW 資料集上的驗證準確率如圖 5 所示。
- 非常明顯,僅使用 softmax 損失(在這種情況下 \(\lambda\) 為 0)不是一個好的選擇,導致驗證效能不佳。適當選擇 \(\lambda\) 的值可以提高深度學習特徵的驗證準確率。
- 我們還觀察到,我們的模型在廣泛的 \(\lambda\) 範圍內驗證效能保持穩定。
-
在第二個實驗中,我們將 \(\lambda\) 固定為 0.003,並且使 \(\alpha\) 從 0.01 變化到 1 來學習不同的模型。這些模型在 LFW 上的驗證準確率如圖 5 所示。
- 同樣,我們的模型在廣泛的 \(\alpha\) 範圍內驗證效能保持穩定。
4.3 Experiments on the LFW and YTF datasets
LFW 和 YTF 資料集上的實驗
-
在本部分中,我們在兩個著名的不受約束環境中的人臉識別基準上評估了我們的單個模型,即 LFW 和 YTF 資料集。它們是影像和影片中人臉識別的優秀基準。其中的一些示例如圖 6 所示。
- 圖片註解:圖 6. LFW 和 YTF 資料集中的某些人臉影像和影片。綠色框架中的臉部影像對是正對(同一個人),而紅色框架中的是負對。每個影像中的白色邊界框表示要測試的臉部。
-
我們的模型是在 0.7M 的外部資料上訓練的,這些資料中沒有與 LFW 和 YTF 中的人重疊。在本節中,我們將 \(\lambda\) 固定為 0.003,模型 C 的 \(\alpha\) 為 0.5。
-
LFW 資料集
包含來自 5749 個不同身份的 13,233 張網路收集的影像,姿態、表情和光照變化很大。遵循無限制且有標記的外部資料的標準協議。我們測試了 6,000 對人臉,並在表 2 中報告了實驗結果。
-
YTF資料集
由 1,595 個人的 3,425 個影片組成,平均每人有 2.15 個影片。影片片段的持續時間從 48 幀到 6,070 幀不等,平均長度為 181.3 幀。我們再次遵循無限制且有標記的外部資料協議,並在表 2 中報告了在 5,000 個影片對上的結果。
-
-
實驗結果
- - 圖片註解:表 2. LFW 和 YTF 資料集上不同方法的驗證效能
- 從表 2 的結果中,我們可以得出以下觀察。
- 首先,模型 C(由 softmax 損失和中心損失共同監督)顯著優於基線模型 A(僅由 softmax 損失監督),將效能從(LFW 上的 97.37% 和 YTF 上的 91.1%)提升到(LFW 上的 99.28% 和 YTF 上的 94.9%)。這表明聯合監督可以顯著增強深度學習特徵的判別能力,證明了中心損失的有效性。
- 其次,與模型B(由 softmax 損失和對比損失組合監督)相比,模型 C 取得了更好的效能(99.10% 對 99.28% 和 93.8% 對 94.9%)。這顯示了中心損失在設計 CNNs 中的優勢。
- 最後,與兩個資料庫上的最先進結果相比,所提出的模型 C(使用更少的訓練資料和更簡單的網路架構)在兩個資料庫上始終位於基於兩個資料庫的頂級方法之列,在表 2 中大多數現有結果之上。這顯示了所提出 CNNs 的優勢。
4.4 Experiments on the dataset of MegaFace Challenge
在 MegaFace Challenge 資料集上的實驗
-
MegaFace 資料集最近作為測試基準釋出。這是一個非常具有挑戰性的資料集,旨在評估在數百萬個干擾項(不在測試集內的人)規模下的人臉識別演算法的效能。MegaFace 資料集包括畫廊集(gallery set)和探針集(probe set)。
-
圖片註解:圖7. MegaFace 資料集中的一些示例人臉影像,包括探針集和畫廊。畫廊至少包含一張正確的影像和數百萬個干擾項。由於每個主題的內部變化很大,以及干擾項的多樣性,身份識別和驗證任務變得非常具有挑戰性。
-
畫廊集包含來自 690K 不同個體的超過 100 萬張影像,作為來自 Yahoo 的 Flickr 照片的一個子集。
-
在這個挑戰中使用的探針集包括兩個現有資料庫:Facescrub 和 FGNet。
- Facescrub 資料集是一個公開可用的資料集,包含 530 個獨特個體的 100K 張照片(男性 55,742 張影像和女性 52,076 張影像)。透過每個身份都有足夠的樣本,可以減少可能的偏差。
- FGNet 資料集是一個面部老化資料集,包含來自 82 個身份的 1002 張影像。每個身份都有不同年齡(從 0 歲到 69 歲)的多張面部影像。
-
-
在兩種協議(大或小訓練集)下,MegaFace 資料集有幾種測試場景(身份識別、驗證和姿態不變性)。
- 如果它包含少於 0.5M 的影像和 20K 個主題,訓練集被定義為小規模。遵循小訓練集的協議,我們將訓練影像的大小減少到 0.49M,同時保持身份數量不變(即 17,189 個主題)。
- 與 Facescrub 資料集重疊的影像被丟棄。
- 為了公平比較,我們也在小訓練集上根據不同的監督訊號訓練了三種 CNN 模型。這些模型分別被稱為模型 A-、模型 B- 和模型 C-。在模型 C- 中,遵循第 4.3 節的相同設定,\(\lambda\) 為 0.003,\(\alpha\) 為 0.5。我們使用提供的程式碼進行了實驗,該程式碼僅在三個畫廊(Set 1)中的一個上測試我們的演算法。
-
身份識別(Face Identification)
-
身份識別的目的是將給定的探針影像與畫廊中的同一人的影像匹配。在這個任務中,我們需要計算給定探針人臉影像與畫廊之間的相似度,畫廊中至少包含一張與探針影像具有相同身份的影像。
-
此外,畫廊包含不同數量(從 10 到 100 萬)的干擾項,,使得測試的挑戰性逐漸增加。更多關於細節的資訊可以在[23]中找到。在身份識別實驗中,我們透過累積匹配特徵(Cumulative Match Characteristics,CMC)曲線來展示結果。它揭示了正確畫廊影像被排名在前 K 的機率。結果如圖 8 所示。
- 圖片註解:圖 8. 小訓練集協議下不同方法(在 Set 1 上,1M 和 10K 干擾項)的 CMC 曲線。(a)1M 干擾項,(b)10K 干擾項。其他方法的結果由 MegaFace 團隊提供。
-
-
身份驗證(Face Verification)
-
對於身份驗證,演算法應該決定給定的一對影像是否為同一人。探針和畫廊資料集之間產生了 40 億個負對。我們計算了真接受率(TAR)和假接受率(FAR),並在圖 9 中繪製了不同方法的操作特徵(ROC)曲線。
- 圖片註解:圖 9. 小訓練集協議下不同方法(在 Set 1 上,1M 和 10K 干擾項)的操作特徵(ROC)曲線。(a)1M 干擾項,(b)10K 干擾項。其他方法的結果由 MegaFace 團隊提供。
-
-
我們將我們的方法與許多現有方法進行了比較,包括 i) LBP 和 JointBayes,ii) 我們的基線深度模型(模型A-和模型B-),以及iii) 其他小組提交的深度模型。
- 如圖8和圖9所示,手工特徵和淺層模型表現不佳。隨著干擾項數量的增加,它們的準確率急劇下降。
- 此外,基於深度學習的方法比傳統方法表現更好。然而,仍然有很大的效能提升空間。
- 最後,透過 softmax 損失和中心損失的聯合監督,模型 C- 取得了最佳結果,不僅明顯超越了模型 A- 和模型 B-,而且顯著優於其他已發表的方法。
-
干擾項對抗:
-
為了滿足實際需求,人臉識別模型應該能夠對抗數百萬個干擾項,實現高效能。在這種情況下,只有與至少 1M 個干擾項相關的 Rank-1 識別率以及在低假接受率(例如,\(10^{-6}\))下的驗證率才有實際意義。我們在表 3 和表 4 中報告了不同方法的實驗結果。
- 圖片註解:表 3. 在 MegaFace 資料集上,不同方法在 1M 個干擾項下的識別率。
- 圖片註解:表 4. 在 MegaFace 資料集上,不同方法在 \(10^{-6}\) FAR下的驗證真接受率(TAR)在 1M 個干擾項下。
-
從這些結果中,我們可以得出以下觀察:
- 首先,毫不奇怪,模型 C- 在面部識別和驗證任務中持續以顯著優勢超越模型 A- 和模型 B-,確認了設計的損失函式的優勢。
- 其次,在小型訓練集的評估協議下,所提出的模型 C- 在面部識別和驗證任務中取得了最佳結果,在面部識別上比第二名高出 5.97%,在驗證上高出 10.15%。
- 此外,值得注意的是,模型 C- 甚至超越了一些使用大訓練集訓練的模型(例如,北京 FaceCall 公司)。最後,Google 和 NTechLAB 的模型在大型訓練集的協議下取得了最佳效能。值得注意的是,他們的私有訓練集(Google 的 500M 和 NTechLAB 的 18M)比我們的(0.49M)大得多。
-