NO IMAGE

目標

訓練論文”A Lightened CNN for Deep Face Representation”中的caffe網路。

資料

CASIA-WebFace 可在這裡申請。

預處理

獲得CASIA-Webface資料集之後,使用tools中的:

  • 指令碼addLabeltopic.py將圖片的label置為0-10574,並將label加入圖片的名字中,如0_001.jpg
  • 指令碼getallfilesInOnedir.py將所有圖片複製到某一級目錄下,如image/
  • 使用code_point中的工具對人臉圖片進行標點,其中bbox.txt中指定了固定的人臉位置。
  • 可使用show_resulr.m指令碼對標點結果進行視覺化。
  • 根據每個圖片樣本的標點資訊將人臉進行旋轉和裁剪,使得樣本標準化。
    經過上述操作,可以得到10575人的494414張標準化人臉圖塊。

使用caffe,訓練模型

  • 生成lmdb資料
  • 編寫train_test.prototxt和solver.prototxt
  • 開始訓練!

網路配置

詳細配置檢視檢視我的github專案中prototxt/中的LCNN_solver.prototxtLCNN_train_test.prototxt

對學習率的設定
初始學習率設定為0.01,訓練過程中,發現初始loss為9.3,約為-log(1/10575)正常,稍加訓練後,loss上升到80 ,說明學習率設定過大,調整為0.001,並以inv方式進行衰減。發現loss逐漸衰減了。

測試記錄

測試資料集:lfw。取官方給出的pairs.txt進行測試。保證pairs.txt中的圖片不會出現在訓練集中。

資料組織數量描述
Intra-pair3000每一個pair是同一個人物的兩張不同場景下的人臉圖片對
Extra-pair3000每一個pair是不同人物的人臉圖片對

使用pairs.txt中給出的6000對人臉對測試本模型的準確度。按照標準的ROC評測方案,並在True Positive Rate與False Reject Rate相當時,取出準確率用於表徵模型的準確率。將不同迭代次數時的測試結果記錄在下表中。

迭代次數(萬)True Positive Rate(%)False Reject Rate(%)Average(%)
11596.296.296.2
16596.833396.866796.85
18396.796.833396.7667
196.596.933396.966796.95
20696.733396.833396.7833
24096.866796.866796.8667
26096.766796.833396.8

計算環境

NVIDIA GTX970