论文题目:Improving Convolutional Networks with Self-Calibrated Convolutions
论文地址:http://mftp.mmcheng.net/Papers/20cvprSCNet.pdf
代码地址:https://github.com/MCG-NKU/SCNet
文章贡献:
设计了一个即插即用的自校准卷积模块来替代普通的卷积块,称为SC模块(Self-Calibrated Convolutions),有以下几个优点:
1. 有更大的感受野,关注更多的上下文信息;
2. 方便使用,不需要引入多余参数,适用于多种任务。
1 背景与动机
语义分割、目标检测等下游任务的性能,与上游任务卷积网络特征提取的能力息息相关。
大多数卷积神经网络的改进主要关注于调整网络模型的架构,以产生丰富的有限元分析。
该文章不关注架构,只通过改进基本的卷积模块来提升整个网络的性能。
论文提出的自校准卷积SC可以更完整、更准确的定位目标物体:
2 相关工作
卷积网络的架构设计
1. 使用基本卷积层构建深度网络,如AlexNet、VGGNet等;
2. 对卷积块的串并联架构的设计、跳跃连接,如ResNet、Inceptions模块等;
3. 对通道等之间的依赖性的构建,如SENet等。
以上均关注于调优网络架构,该论文不涉及网络整体架构。
远程依赖关系模型
在大多数视觉任务中,远程依赖关系尤为重要;考虑上下文关系的主要方法有:
1. 对空间和通道信息的依赖的整合(即注意力机制),如SENet、CBAM等;
2. 利用具有大尺寸的kernel的空间池化或卷积运算(分组卷积/池化),如PSPNet等。
该论文相比较于注意力机制,不需要增加额外的分支与参数;
分组卷积或分组池化,指特征提取过程在多个并行分支中均匀地、单独地进行,每个分支的输出被串联起来作为最终输出。分组卷积的输入对象是相同的特征图,而该论文的几个分支中的输入对象不同。
- 虽然论文说其与注意力机制不同,但其实也类似于注意力机制,只是不是在原有卷积上增加分支,而是直接把整个卷积层替换掉,区别是无需学习多余的参数,且可与一般注意力机制叠加使用;
- 相比较其他论文提出一个新的模块,再用于一个整体网络结构不同,该文论仅提出了一个SC模块,不涉及网络架构,虽然通用,但也显得工作量没那么多。
3 自校准模块SC
传统的2D卷积
存在输入,输出
,卷积操作的kernel size
,有如下计算公式:
(xi和yi是不同的通道,ki代表卷积核的大小)
这存在2个问题,使得提取到的特征图不具有很强的区别性:
1. 每一个输出的feature map都是通过所有通道求和来计算的,所有的feature map都是通过重复同一公式多次来统一生成的。
2. 每个空间位置的感受野主要由预定义的卷积核大小控制。
SC模块结构图
上图为SC模块的架构图,X为输入特征图,Y为输出特征图,F为不同kernel size的卷积层,K为对应的kernel的大小。
首先将输入特征图X分为两部分X1和X2;X1经过自校准操作得到Y1,X2经过一个简单的卷积操作,获得Y2;最后Y1和Y2 concat,得到最后的输出特征图Y。
自适应校准部分(虚线框)分为3个分支,上面2个分支类似于注意力机制的权重求取部分,下面1个分支类似于注意力的主分支。
权重求取分支2中,首先对X1进行rxr的平均池化,得到T1,shape为 C/2*H/r*W/r;
对T1进行F2卷积,再上采样r倍,得到X1';
将X1'与X1进行求和,再经过sigmoid操作,得到权重值。将其与主分支中的结果(X1经过F3卷积)相乘,得到Y1';
对Y1'经过F4卷积,得到Y1。
SC的优点
1. 与传统2D卷积不同,SC采用多种不同size的卷积核,且考虑了空间上下关系,拥有更强的感受野;
2. SCConv只关注局部上下文,不关注全局,目标定位更加准确;
3. 自适应操作对多尺度信息进行了编码,这对目标检测等下游任务提供了丰富的特征。
上图中第一行是resnet50的最后一个block特征结果,第二行是将resnet50的所有3x3卷积换成SC卷积后最后一个block特征结果。
4 实验结果
topX指对于每张图片,取预测结果中概率最大的X个标签,只要有1个正确,则认为分类正确。
SC和普通卷积的对比
训练过程中加了SC模块后loss下降更快,错误率更低:
下采样率r对分类性能的影响
对比了不同r取值以及是否使用identity分支与池化方法(平均或最大池化)的结果:
由于输入图像大小原本就比较小,因此实验中r最大只取到4。
与注意力机制的比较
参数更少,准确率更高:
图像分类任务中SC的泛化能力
数据集ImageNet,输入图片大小224x224。在resnet、resnext、se-resnet上进行实验对比。
在不增加参数量和模型大小的情况下,使用SC模块后分类准确率有些微提升:
目标检测和实例分割任务中SC的泛化能力
使用COCO minival数据集,图像的短边设置为800,以下为在不同的骨干网格下使用SC与否的结果对比:
人体关键点检测任务中SC的泛化能力
使用COCO val2017数据集,仅将骨干网格由resnet替换为SC模块的SCNet: