论文阅读:VarGFaceNet: An Efficient Variable Group Convolutional Neural Network for Lightweight Face Reco

开源:https://github.com/zma-c-137/VarGFaceNet

1综述

基于VarGNet 用于人脸,但是,VarGNet[26]主要用于图像分类和目标检测等一般任务。为了节省内存和计算开销,在头部设置中将空间面积减少了一半,但是这种设置不适合人脸识别任务,因为需要人脸的详细信息。在嵌入的最后一个conv和全连通层之间只有一个平均的池化层,可能无法提取足够的判别信息。为了强化判别性能,引入SEblock 和PReLU .其次采用知识蒸馏。

  • 为了提高VarGNet在大规模人脸识别中的判别能力,作者采用了不同的头部并提出了一个新的嵌入块。在嵌入块中,作者先通过1×1卷积层将通道扩展到1024,以保留基本信息,然后使用可变组conv和逐点conv将空域缩小到1×1,节省计算成本。如下文所示,这样的操作能提高人脸识别任务的性能。
  • 为了提高轻量级模型的泛化能力,作者提出了递归知识蒸馏,以减少教师模型和学生模型之间的泛化差距。
  • 作者分析了可变组卷积的性能,并在训练过程中采用了等效的角度蒸馏损失。实验证明了本文方法的有效性。

2 方法

2.1Variable Group Convolution

group conv: 最初是引入AlexNet用来减少计算cost,群卷积的基数性(cardinality)比深度和宽度维度(ResNext)表现出更好的性能,MobileNet提出depthwise分离卷积inspired by group conv 来节省计算cost,但是conv1x1 占用了95%计算时间,引起con1x1 与convDW3x3 的MAdds gap [12],这种差距对嵌入式系统这种需要加载网络的所有权值来执行卷积来说是不友好的[24]。

为了保持计算强度的平衡in block,VarGNet[26]设置group中的通道数作为一个常数S,一组中的常数通道数导致一个卷积中ni组的个数是可变的,命名为变量群卷积。计算成本一个变量组的卷积为:
论文阅读:VarGFaceNet: An Efficient Variable Group Convolutional Neural Network for Lightweight Face Reco_第1张图片
input:i
output:i+1
pointwise conv 计算量:
在这里插入图片描述
比例为:在这里插入图片描述
depthwise 比例为:在这里插入图片描述
实际在这里插入图片描述
计算更平衡。。。S > 1表示变量组卷积与深度相比,具有更高的Madd和更大的网络容量卷积(具有相同的内核大小),这是有能力的提取更多的信息。

2.2 blocks of variable group network

为了限制通信开销,VarGNet将输出通道的数量设置为与正常块中的输入通道的数量相同。同时,VarGNet使用变量群卷积将块开始处的C信道扩展为2C信道,以保持块的泛化能力。
本文添加se。如下图。
论文阅读:VarGFaceNet: An Efficient Variable Group Convolutional Neural Network for Lightweight Face Reco_第2张图片

2.3. Lightweight Network for Face Recognition

2.3.1Head setting: use 3 × 3 Conv with stride1 最初下采样丢失信息。
2.3.2Embedding setting fc大量参数,所以直接用卷积压缩到1x1x512,为了避免不必要的信息丢失为了尽可能多地保留,我们在last conv末又扩大了通道的信息。
整体框架
论文阅读:VarGFaceNet: An Efficient Variable Group Convolutional Neural Network for Lightweight Face Reco_第3张图片

2.4Angular Distillation Loss

使用ResNet指导训练VarGFaceNet,使用角度蒸馏损失函数进行知识蒸馏。
论文阅读:VarGFaceNet: An Efficient Variable Group Convolutional Neural Network for Lightweight Face Reco_第4张图片

你可能感兴趣的:(论文)