专栏首页AI科技大本营的专栏VarGFaceNet:地平线提出轻量级、有效可变组卷积的人脸识别网络

VarGFaceNet:地平线提出轻量级、有效可变组卷积的人脸识别网络

作者 | 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挑战赛的结果证明了本文方法的优异性。

本文分享自微信公众号 - AI科技大本营(rgznai100),作者:CSDN App

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • TensorFlow支持Unicode,中文NLP终于省心了

    什么是 Unicode?Unicode 是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它...

    AI科技大本营
  • Fast.ai深度学习实战课程 Lesson7 学习笔记:CNN Architectures

    本篇是AI100学院此前重点推出的《Fast.ai 深度学习实战课程》(中文字幕)第七节的学习笔记,分享者胡智豪。 如果你对深度学习感兴趣,该系列课程千万不...

    AI科技大本营
  • 都说卷积神经网络是个好东西,但它有什么弊端呢?

    图片来源:Mathworks 翻译 | 王赫 编辑 | Donna 2012年,三位深度学习的“巨人”Alex Krizhevsky, Ilya Sutskev...

    AI科技大本营
  • Python selenium根据cla

      在日常的网页源码中,我们基于元素的id去定位是最万无一失的,id在单个页面中是不会重复的。但是实际工作中,很多前端开发人员并未给每个元素都编写id属性。通常...

    py3study
  • 假如给你一次机会重新选择,计算机专业选C++ 还是Java?

    已经从事软件开发十几年,C++和java跟着做过好多项目,相对来讲跟C++的感情更加深刻些,毕竟被折腾的时间最长印象也最深刻,刚入行一年就跟着做C++项目,开始...

    程序员互动联盟
  • 【STM32H7教程】第56章 STM32H7的DMA2D应用之刷色块,位图和Alpha混合

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980

    armfly
  • idea没有绑远程地址,如何提交到github的空项目

    ydymz
  • 浮点数与十六进制互相转换

    Qt君
  • 90%的面试者都不知道这道题的答案

    小编寄语 亲爱的DBA同胞们,你们是否记得在你找工作时,印象最深刻的面试题呢?那些看似简单的题目,实则蕴藏很大的玄机。今天我们通过一道经典的 ORacle DB...

    数据和云
  • Android Accessibility 安全性研究报告

    第一章Accessibility简介 近期,360烽火实验室发现一款滥用Accessibility的木马,该木马具有浏览器地址栏劫持、搜索劫持、桌面点击劫持以及...

    FB客服

扫码关注云+社区

领取腾讯云代金券