本文来自《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的TAR@FAR10-6上获得了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。

reference:

  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)

face recognition[MobileFaceNet]的更多相关文章

  1. face recognition[MobiFace]

    本文来自<MobiFace: A Lightweight Deep Learning Face Recognition on Mobile Devices>,时间线为2018年11月.是作 ...

  2. One-Time Project Recognition

    Please indicate the source if you need to repost. After implementing NetSutie for serveral companies ...

  3. 论文阅读(Xiang Bai——【TIP2014】A Unified Framework for Multi-Oriented Text Detection and Recognition)

    Xiang Bai--[TIP2014]A Unified Framework for Multi-Oriented Text Detection and Recognition 目录 作者和相关链接 ...

  4. 论文阅读(Lukas Neuman——【ICDAR2015】Efficient Scene Text Localization and Recognition with Local Character Refinement)

    Lukas Neuman--[ICDAR2015]Efficient Scene Text Localization and Recognition with Local Character Refi ...

  5. 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)

    白翔的CRNN论文阅读 1.  论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...

  6. VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION 这篇论文

    由Andrew Zisserman 教授主导的 VGG 的 ILSVRC 的大赛中的卷积神经网络取得了很好的成绩,这篇文章详细说明了网络相关事宜. 文章主要干了点什么事呢?它就是在在用卷积神经网络下, ...

  7. Pattern Recognition And Machine Learning读书会前言

    读书会成立属于偶然,一次群里无聊到极点,有人说Pattern Recognition And Machine Learning这本书不错,加之有好友之前推荐过,便发了封群邮件组织这个读书会,采用轮流讲 ...

  8. Notes on 'Selective Search For Object Recognition'

    UijlingsIJCV2013, Selective Search For Object Recognition code 算法思想 利用分割算法将图片细分成很多region, 或超像素. 在这个基 ...

  9. 自然语言18.1_Named Entity Recognition with NLTK

    QQ:231469242 欢迎nltk爱好者交流 https://www.pythonprogramming.net/named-entity-recognition-nltk-tutorial/?c ...

随机推荐

  1. Android加载图片的策略

    实现图片缓存也不难,需要有相应的cache策略.这里我采用 内存-文件-网络 三层cache机制,其中内存缓存包括强引用缓存和软引用缓存(SoftReference),其实网络不算cache,这里姑且 ...

  2. 虚拟机中安装Virtualbox,嵌套的虚拟机不能运行64位系统

    https://www.quora.com/Can-I-install-Virtualbox-in-a-virtual-machine Here is a previous question on Q ...

  3. MySQL查询日志总结

    MySQL查询日志介绍 MySQL的查询日志记录了所有MySQL数据库请求的信息.无论这些请求是否得到了正确的执行.默认文件名为hostname.log.默认情况下MySQL查询日志是关闭的.生产环境 ...

  4. 解决Unable to load native-hadoop library for your platform

    使用hadoop fs相应命令时候总是出现 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your plat ...

  5. AFURLSessionManager 上传下载使用

    1.下载 Creating a Download Task NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration ...

  6. PHP中的Session工作原理

    一直在使用session存储数据,一直没有好好总结一下session的使用方式以及其工作原理,今天在这里做一下梳理. 这里的介绍主要是基于php语言,其他的语言操作可能会有差别,但基本的原理不变. 1 ...

  7. 学习flying logic

    之前在知乎上结识的朋友吴笛,他的qq空间里分享了  flying logic的一些用途,我想到可以规划和团队的目标,这点让我感到很兴奋,分享学习这个软件. 学习之前,我应当把软件中的单词学明白.现在就 ...

  8. 为爱好舞蹈的人们做的软件,细究数据结构,操作系统,磁盘原理,用java/c/c++写一个开源 MP3助手

    1.可以给歌曲间插播空白音乐 2.拖拽式调整 3.先排序,后一键写入顺序文件. 国外的开源软件 MP3 播放排序  http://www.murraymoffatt.com/software-prob ...

  9. xshell的一些常用配置

    1  在xshell中鼠标滚轮和右键的快捷方式 利用鼠标滚轮和右键快速粘贴上面复制的内容 打开xshell的工具---选项-----键盘和鼠标 点击确定 回到xshell即可使用

  10. 【算法】LeetCode算法题-Valid Parentheses

    这是悦乐书的第147次更新,第149篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第6题(顺位题号是20),给定一个只包含字符'(',')','{','}','['和'] ...