1. 程式人生 > >face recognition[MobileFaceNet]

face recognition[MobileFaceNet]


本文來自《MobileFaceNets: Efficient CNNs for Accurate Real-Time Face Verification on Mobile Devices》,時間線為2018年4月。是北京交通大學和握奇資料公司的作品。
人臉發展至今,效果相比傳統方法有了很大的提升,然而受限於機器資源和實時性部署等需求,需要考慮諸如MobileNet等網路的使用。

0 引言

在越來越多的手機和嵌入式裝置上,人臉驗證變成越來越流行的一個認證技術。然而,現在高準確度的人臉驗證模型都是建立在又深又寬的CNN模型上的,並通過各種loss函式去提供有監督訓練。而大CNN模型需要較多計算力,這對於移動和嵌入式裝置來說,是無法滿足的。幾個高效的CNN架構,如MobilenetV1,ShuffleNet,MobileNetV2近些年來作為解決移動裝置的視覺識別任務。一種簡單的方式就是不修改這些CNN結構,直接延用到人臉驗證上,而這對於現今的人臉識別榜單上的結果來說,簡直不能看。

本文作者提出的模型引數都不到1百萬個,且在相同的實驗環境下,MobileFaceNets效果是MobileNetV2的2倍多。通過在提煉過的MS-Celeb-1M資料集上取樣ArcFace 的loss從頭訓練,MobileFaceNets模型size只有4MB,且在LFW上獲得了99.55%的準確度,在MegaFace挑戰1的[email protected]上獲得了92.59%的準確度,這就可以與那些大CNN模型相比較了。注意到現在的許多方法如剪枝[37],low-bit 量化[29],和知識蒸餾[16]都可以用來提升MobileFaceNets的效率。

1 本文主要工作

本部分介紹了本文提出的極端高效的CNN模型,以加速移動裝置上實時人臉驗證,這克服了人臉驗證上常見mobile net的不足。為了讓結果可復現,採用了ArcFace loss去訓練整個人臉驗證模型,涉及的部分引數延用參考文獻[5]。

1.1 常見移動裝置上網路在人臉驗證上的不足

在常見的視覺識別任務中使用的mobile網路都有一個全域性平均池化層(global average pooling layer,GAP),如MobileNetV1,Shufflenet,Mobilenetv2.對於人臉驗證和識別任務,一些研究者[5,14]發現帶有全域性平均池化的CNN準確度要低於不帶有GAP層的網路。不過只是還沒有理論性的分析這一結論。這裡藉助文獻[19]的相關描述來分析這一現象。

通常人臉驗證流程包含:預處理人臉圖片,提取人臉特徵,基於特徵距離相似性對2張人臉進行匹配。通過採用[5,20,21,22]中的預處理方法,並基於MTCNN進行人臉檢測和5個人臉關鍵點標註並進行對齊,得到每個人臉圖片大小112x112,然後通過減去127.5,除以128來進行歸一化。最後,一個人臉特徵embedding CNN 會將每個對齊後的人臉對映到一個特徵向量上,如圖1.


不失一般性,下面採用Mobilenetv2作為人臉特徵embedding CNN的結構。為了讓輸出map和原始網路224x224輸入一樣的size,在第一個卷積層使用stride=1而不是2,因為stride=2會導致準確度較低。所以在全域性平均池化層前面的卷積層輸出(稱為FMap-end)的空間解析度是7x7。雖然理論上FMap-end角上單元的感受也和中心區域單元的感受野大小是一樣的,可是他們處在輸入圖片的不同位置。如[24]所述,中心區域感受野比其他區域在最後輸出上更有影響,且一個感受野內部的這種影響呈現高斯分佈。FMap-end的角單元的感受野上有效的感受野size要小於中心單元上的有效感受野。當輸入影象時一個對齊的人臉,FMap-end的一個角單元攜帶比中心單元更少的人臉資訊。因此FMap-end上不同的單元對於提取一個人臉特徵向量有著不同的重要性。

在MobileNetv2中,平鋪後的FMap-end不合適直接用來作為人臉特徵,因為維度太高了(62720維)。所以自然做法就是加上全域性平均池化層並作為特徵向量,而這在許多研究者文獻中[5,14]證實準確度也較低,如表2


因為全域性平均池化層將FMap-end上每個神經元視為等同重要性,這是不合理的。另一個流行的做法就是將全域性平均池化層替換成一個全連線層,以此將FMap-end對映到一個更緊湊的特徵向量上,這卻會增加整個模型的引數量,即使當維度是128維,Mobilenetv2這個全連線層也會額外增加8百萬個引數。所以這個方法本文不採用。

1.2 全域性逐深度卷積(Global Depthwise Convolution)

為了讓FMap-end中不同的單元有不同的重要性,作者將全域性平均池化替換成全域性逐深度卷積(global depthwise convolution layer, GDConv)。一個GDConv層就是一個逐深度卷積(如文獻[1,25]),其kernel大小等於輸入的size,pad=0,stride=1。全域性逐深度卷積層的輸出為:


這裡F是輸入的feature map,其size為 \(W\times H\times M\);K是逐深度卷積核,其size為 \(W\times H\times M\);G是輸出,其size為 \(1\times 1\times M\)。其中在G的第 \(m\)個通道上只有一個元素 \(G_m\)。其中 \((i,j)\)表示F和K中的空間位置,m表示通道的索引。
全域性逐深度卷積的計算量為:
\[W\cdot H\cdot M\]
當在MobilenetV2的FMap-end後採用全域性逐深度卷積,其核為7x7x1280,即有1280個通道。計算代價為62720MAdds(即相乘-相加的操作次數,如[3]),和62720個引數。假設MobilenetV2-GDConv表示帶有全域性逐深度的Mobilenetv2。當基於CIASIA-Wefface資料集,Arcface loss訓練MobileNetV2 和 MobileNetV2-GDConv,後者貨得明顯更好的準確度。所以MobilenetFaceNet採用GDConv結構。

1.3 MobileFaceNet 結構

現在,詳細描述下Mobilefacenet結構。Mobilenetv2中的殘差bottlenecks是mobilefacenet的主要構建塊。為了方便描述,這裡採用[3]中一樣的概念。MobileFaceNet的結構如表1.


特別的,在MobileFaceNet中的bottleneck的擴充套件因子比Mobilenetv2中更小一些。且使用PReLU作為啟用函式,比ReLU更好。另外,在網路開始就使用了一個快速下采樣的策略,在後幾層卷積層採用較早維度約間策略,一個線性1x1的卷積層然後接上一個線性全域性逐深度卷積層作為特徵輸出層。在訓練中採用BN。然後再部署之前採用BN摺疊(如[29]中3.2部分)。

MobileFaceNet網路的計算量是221百萬MAdds和0.99百萬的引數量。框架進一步細節如下,為了減少計算量,將輸入從112x112減少到112x96或者直接96x96。為了減少引數量,移除了MobileFaceNet中GDConv後面的1x1卷積層,此時網路命名為MobileFaceNet-M。從MobileFaceNet-M,移除GDConv前面的1x1卷積層,進一步減少網路結構,此時網路命名為MobileFaceNet-S。這三個網路的效能在下面做詳細比較。

2 實驗及分析

2.1 訓練引數配置和LFW與AgeDB上結果對比

作者採用MobileNetv1,ShuffleNet,MobileNetv2(第一個卷積層stride=1,因為stride=2時候準確度很低)作為baseline模型。所有的MobileFaceNet模型和baseline模型基於CASIA-Webface資料集上從頭開始訓練,採用ArcFace loss。權值衰減超參為0.0005,在全域性操作後的權值衰減超參為0.0004。使用動量為0.9的SGD優化模型,batchsize為512.學習率開始為0.1,然後再36K,52K,58K迭代次數時分別除以10。最終迭代次數為60K次。然後如表2中結果,基於LFW和AgeDB-30進行結果對比。

如之前表2所示,MobileFaceNet獲得明顯更好的結果,且速度更快。96x96輸入的MobileFaceNet速度最快。為了驗證極端效能,MobileFaceNet,MobileFaceNet(112x96),MobileFaceNet(96x96)基於乾淨的MS-Celeb-M訓練集,ArcFace loss進行訓練。結果如表3.

2.2 在MegaFace挑戰上結果


本文中採用Facescrub[36]資料集作為測試集去評估MobileFaceNet在Megaface挑戰1上的結果。表4給出了結果,其中以0.5百萬張圖片作為閾值區分是large protocol還是small protocol。

conference:

  1. Howard, A. G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., et al.: Mobilenets: Efficient convolutional neural networks for mobile vision applications. CoRR, abs/1704.04861 (2017)
  2. Zhang, X., Zhou, X., Lin, M., Sun, J.: Shufflenet: An extremely efficient convolutional neural network for mobile devices. CoRR, abs/1707.01083 (2017)
  3. Sandler, M., Howard, A., Zhu, M., Zhmoginov, A., Chen, L.C.: MobileNetV2: Inverted Residuals and Linear Bottlenecks. CoRR, abs/1801.04381 (2018)
  4. Guo, Y., Zhang, L., Hu, Y., He, X., Gao, J.: Ms-celeb-1m: A dataset and benchmark for large-scale face recognition. arXiv preprint, arXiv: 1607.08221 (2016)
  5. Deng, J., Guo, J., Zafeiriou, S.: ArcFace: Additive Angular Margin Loss for Deep Face Recognition. arXiv preprint, arXiv: 1801.07698 (2018)
  6. Huang, G.B., Ramesh, M., Berg, T., et al.: Labeled faces in the wild: a database for studying face recognition in unconstrained environments. (2007)
  7. Kemelmacher-Shlizerman, I., Seitz, S. M., Miller, D., Brossard, E.: The megaface benchmark: 1 million faces for recognition at scale. In: CVPR (2016)
  8. Moschoglou, S., Papaioannou, A., Sagonas, C., Deng, J., Kotsia, I., Zafeiriou, S.: Agedb: The first manually collected in-the-wild age database. In: CVPRW (2017)
  9. Iandola, F. N., Han, S., Moskewicz, M.W., Ashraf, K., Dally, W.J., Keutzer, K.: Squeezenet: Alexnet-level accuracy with 50x fewer parameters and 0.5 mb model size. arXiv preprint, arXiv:1602.07360 (2016)
  10. Krizhevsky, A., Sutskever, I., Hinton, G.E.: Imagenet classification with deep convolutional neural networks. In: NIPS (2012)
  11. Deng, J., Dong, W., Socher, R., Li, L.J., Li, K., Fei-Fei, L.: ImageNet: a large-scale hierarchical image database. In: CVPR. IEEE (2009)
  12. Russakovsky, O., Deng, J., Su, H., et al.: Imagenet large scale visual recognition challenge. Int. J. Comput. Vis. 115, 211–252 (2015)
  13. Zoph, B., Vasudevan, V., Shlens, J., Le, Q.V.: Learning transferable architectures for scalable image recognition. arXiv preprint, arXiv:1707.07012 (2017)
  14. Wu, X., He, R., Sun, Z., Tan, T.: A light cnn for deep face representation with noisy labels. arXiv preprint, arXiv:1511.02683 (2016)
  15. Wu, B., Wan, A., Yue, X., Jin, P., Zhao, S., Golmant, N., et al.: Shift: A Zero FLOP, Zero Parameter Alternative to Spatial Convolutions. arXiv preprint, arXiv: 1711.08141 (2017)
  16. Hinton, G. E., Vinyals, O., Dean, J.: Distilling the knowledge in a neural network. In arXiv:1503.02531 (2015)
  17. Luo, P., Zhu, Z., Liu, Z., Wang, X., Tang, X., Luo, P., et al.: Face Model Compression by Distilling Knowledge from Neurons. In: AAAI (2016)
  18. Schroff, F., Kalenichenko, D., Philbin, J.: Facenet: a unified embedding for face recognition and clustering. In: CVPR (2015)
  19. Long, J., Zhang, N., Darrell, T.: Do convnets learn correspondence? Advances in Neural Information Processing Systems, 2, 1601-1609 (2014)
  20. Liu, W., Wen, Y., Yu, Z., Li, M., Raj, B., Song, L.: Sphereface: Deep hypersphere embedding for face recognition. In: CVPR (2017)
  21. Wang, F., Cheng, J., Liu, W., Liu, H.: Additive margin softmax for face verification. IEEE Signal Proc. Let., 25(7), 926-930 (2018)
  22. Wang, H., Wang, Y., Zhou, Z., Ji, X., Gong, D., Zhou, J., et al.: CosFace: Large Margin Cosine Loss for Deep Face Recognition. In arXiv: 1801.0941 (2018)
  23. Zhang, K., Zhang, Z., Li, Z., Qiao, Y.: Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks. IEEE Signal Proc. Let., 23(10):1499–1503, 2016.
  24. Luo, W., Li, Y., Urtasun, R., Zemel, R.: Understanding the Effective Receptive Field in Deep Convolutional Neural Networks. In: NIPS (2016)
  25. Chollet, F.: Xception: Deep learning with depthwise separable convolutions. arXiv preprint, arXiv:1610.02357 (2016)
  26. Yi, D., Lei, Z., Liao, S., Li, S. Z.: Learning face representation from scratch. arXiv preprint, arXiv:1411.7923 (2014)
  27. He, K., Zhang, X., Ren, S., Sun, J.: Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. In: CVPR (2015)
  28. Ioffe, S., Szegedy, C.: Batch normalization: accelerating deep network training by reducing internal covariate shift. In: International Conference on Machine Learning (2015)
  29. Jacob, B., Kligys, S., Chen, B., Zhu, M., Tang, M., Howard, A., et al.: Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference. arXiv preprint, arXiv: 1712.05877 (2017)
  30. NCNN: a high-performance neural network inference framework optimized for the mobile platform, https://github.com/Tencent/ncnn, the version in Apr 20, 2018.
  31. Taigman, Y., Yang, M., Ranzato, M., et al.: DeepFace: closing the gap to human-level performance in face verification. In: CVPR (2014)
  32. Omkar M Parkhi, Andrea Vedaldi, Andrew Zisserman, et al, “Deep face recognition,” In BMVC, volume 1, page 6, 2015.
  33. Sun, Y., Wang, X., Tang, X.: Deeply learned face representations are sparse, selective, and robust. In: Computer Vision and Pattern Recognition, pp. 2892–2900 (2015).
  34. Wen, Y., Zhang, K., Li, Z., Qiao, Y.: A discriminative feature learning approach for deep face recognition. In: ECCV (2016)
  35. Deng, W., Chen, B., Fang, Y., Hu, J.: Deep Correlation Feature Learning for Face Verification in the Wild. IEEE Signal Proc. Let., 24(12), 1877 – 1881 (2017)
  36. Ng, H. W., Winkler, S.: A data-driven approach to cleaning large face datasets. In: IEEE International Conference on Image Processing (ICIP), pp. 343–347 (2014)
  37. Han, S., Mao, H., Dally, W. J.: Deep compression: Compressing deep neural network with pruning, trained quantization and Huffman coding. CoRR, abs/1510.00149 (2015)
  38. He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. In: CVPR (2016)