Pyramidal Convolution: Rethinking Convolutional Neural Networks for Visual Recognition论文阅读翻译
该文提出了一种新的卷积神经网络架构——金字塔卷积(Pyramidal Convolution),旨在重新思考传统的卷积层设计以提升视觉识别性能
目录:
-
Pyramidal Convolution: 重新思考用于视觉识别的卷积神经网络
- 一 摘要
- 二 引言
-
- 具体贡献:
- 提出了一种新的金字塔卷积方法
- 重新架构了传统卷积神经网络结构
- 在多个视觉识别任务中显著提升了性能
- 提供了详细的实验结果分析
- 得出了可靠的研究结论
- 具体贡献:
-
第三章 金字塔卷积
-
第四章 图像分类中的PyConv网络
-
第五章 基于PyConv的目标检测
-
第六章 总结与展望
论文获取链接:单击此链接打开 GitHub 仓库 https://github.com/YunhaoLee/Object-Detection-paper/tree/master/2020-ECCV-Papers]
博主已将目标检测领域的相关论文进行汇编整理。这个资源堪称较为全面,并且会持续更新中,请问如需获取,请随时访问该资源。
一、Abstract
该研究提出了一种称为PyConv的金字塔卷积模块,在多个尺度上有效处理输入信息。该模块的核心设计是一个多级滤波器金字塔结构,在每一级中都采用了大小、深度等参数可变的设计策略,并能够有效地捕获场景图像中的多层次细节特征。在保持高性能的同时,并未增加计算复杂度或参数数量。相比于传统标准卷积方法,在计算资源消耗方面并无明显提升。然而这一设计不仅具有灵活性和可扩展性优势,并显著提升了网络架构的多样性与适应性能力。该方法在计算机视觉领域具有广泛的应用潜力,并特别适用于图像识别等核心任务。具体而言,在图像分类方面通过构建一种50层深度网络实现了超越152层ResNet模型的识别性能优势;同时在视频动作分类/识别任务中也展现出显著的竞争实力;此外针对目标检测问题提出的改进型架构同样表现出色;最后在语义分割任务中通过优化算法进一步提升了模型性能表现
二、Introduction
大部分现代视觉识别系统的最新架构均基于深度神经网络(Deep Neural Networks, DNN)框架构建。其中最为关键的部分在于卷积操作的设计与实现,在这种操作中会对空间域内的局部区域进行特征提取。常见的CNN架构多采用3×3的小尺寸卷积核来进行运算的原因在于增大滤波器尺寸会导致计算开销激增的同时还会增加模型参数数量。为了克服小尺寸卷积核难以捕捉大范围特征的问题,在实际应用中通常会结合下采样操作以及多层网络结构来逐步降低输入分辨率并扩大网络的整体感受野(Field of View)。然而这种设计也面临着两个主要挑战:首先,在现有CNN模型中虽然理论上感受野能够覆盖整个输入图像区域但在实际训练过程中感受野往往远小于理论值尤其是在较高层网络中感受野可能缩减至原来的2.7倍左右;其次在处理复杂场景时如果缺乏足够的上下文信息尤其是当存在遮挡或不同尺度的目标时可能会对模型的学习效果产生负面影响。

通过查看上图可知,在图像分类任务中存在显著的空间表示差异(某些类别如建筑、树或沙发占据较大的空间区域),而其他类别(如人物、书或瓶子)则相对集中在较小的范围内)。此外,在同一场景中同一目标类别(如汽车)可能会以不同的尺度出现(例如,在上图中可以看出汽车的尺寸从占据图像中的大部分区域缩小到仅覆盖很小的一部分场景)。为了能够有效捕捉多类别及尺度变化的特点(如上述复杂性),仅仅依赖于单一类型及固定尺寸的卷积核可能并非一种最优选择方案)。计算机视觉领域的一个重要目标就是能够在多个尺度下处理输入数据以便获取场景上下文信息的详细描述(例如经典的SIFT算法主要用于提取不同尺度下的特征描述符)。然而,在深度学习框架下标准卷积操作不具备自动处理多尺度信息的能力(它仅包含单一类型的、固定尺寸和深度的滤波器)。
contributions:
(1) 开发出了一种名为PyConv的新卷积架构设计方案,在该方案中整合了不同尺寸和深度范围内的卷积核结构特点。该方法通过并行处理来增加感知范围的同时还能够利用逐层递增的大尺寸卷积核实现并行计算以捕捉多层次的信息特征,并且这种架构还具备高效的计算性能,在保持与标准卷积相近的参数规模下显著提升了运算效率。
(2) 开发了两组新的网络模型分别应用于图像分类任务中这两组模型在测试集上的表现均超越了现有的基准模型不仅减少了整体参数规模而且降低了运算开销。
(3) 构建了一个创新性的语义分割框架其中该框架中的"head"模块能够从主干网络提取特征并整合从局部到全局的不同层次上下文信息最终实现了分割精度方面的最佳水平。
(4) 设计了一种新型的目标检测与视频分析模型该架构基于之前提出的金字塔卷积结构实现了对目标检测任务中的准确率较现有方法提升了15%以上并且同时也适用于视频分类等复杂应用场景
三、Pyramidal Convolution

如图1a所示的该种卷积结构仅包含一种类型的卷积核,并其空间尺寸为K×12。在输入特征图上应用了FMo个具有相同空间分辨率和深度的卷积核滤波器后,在输出端得到了一个具有高度H、宽度W以及深度等于滤波器数量(即FMo)的输出特征图。这种标准卷积设计所需的计算参数量以及浮点运算(FLOPs)数值如下所列:


该研究者所提出的金字塔卷积网络(PyConv),如图(b)所示,则由n种不同类型的卷积核构成金字塔结构。该方法旨在通过在不同尺度的卷积核上处理输入而不提升计算成本或模型复杂度(参数数量)。该系统在每个层级中均实现了自下而上的滤波器尺寸逐渐增大这一特点,并伴随滤波器尺寸的增长而减少滤波器深度。通过分组的方式,在每个层级中可以采用不同深度的滤波器,在同一层内部则可统一滤波器尺寸以实现更好的特征提取效果。例如,在第一个层级中我们采用了1×1的小尺寸滤波器作为基础模块,在第二个层级则采用了3×3的标准尺寸滤波器作为主要工作horse,在第三个层级则采用了5×5的大尺寸滤波器作为辅助组件以增强高阶特征提取能力

如图2b所示,在这些示例中存在8个输入与输出特征图。(a)表示输入为一组特征图即标准卷积层,在这种情况下每一输出特征图都会连接到所有输入特征。(b)展示了将输入特征图划分为两组的情况,并对每组分别应用卷积核操作;由此可得,在这种分组策略下卷积核深度减少了一半。亦即当分组数量增加时其连通性(即各层之间的关联程度)也会相应降低;同时参数数量与计算开销也会随之降低相当于当前分组数量的倍数。值得注意的是该方法通过多层递进的方式实现了对原始空间信息的有效提取与表征

该系统将生成一个包含不同通道数{FMo1, FMo2, FMo3, … , FMon}的一组特征图。具有相同宽度和高度(H×W)的特征图将被PyConv架构所处理。由此可知,PyConv架构在参数规模与计算复杂度(按FLOPs计)方面均展现出良好的性能。

在PyConv模型中,我们采用以下公式来进行参数计算:FMo1 + FMo2 + FMo3 + \dots + FMon = FMo。这个公式展示了每个层级所涉及的具体参数数量及其计算开销。当PyConv各层输出特征图的通道数量相等时,在这种情况下各层级之间的参数消耗会趋于均衡分布。值得注意的是,在这个模型框架下无论卷积核的空间尺寸如何变化其总的参数量与计算成本都不会显著超过标准卷积(即卷积核尺寸为K12的情况)。观察式(\ref{eq:first_principles})可知分母部分表示的是输入特征图被划分为多少个独立分组的数量(G)
在构建PyConv模型时我们采用了以下几条附加设计原则:第一,在金字塔结构中每一层(FMi)对应的分母必须是该输入特征图通道数量的一个因数也就是说金字塔各层中的分组数目必须是对应输入特征图通道数的一个因数。因此我们在选择每一层金字塔分组数目时会从该输入特征图可能的所有因数组合中选择一个最接近当前分母值的那个数值以实现最优匹配
第二条原则规定每一层金字塔结构中的分组数目也必须是该层输出特征图通道数量的一个合理因数这一规定是为了确保后续网络模块能够顺利连接并维持整体架构的一致性
为了使PyConv能够适应不同类型的网络架构设计者们还特别设置了灵活的设计策略即通过设计灵活的组划分配置策略使得可以根据具体需求动态调整各个层次之间的关系从而实现最佳性能平衡
该方法的主要优势在于其多尺度处理能力。(1)在不增加额外计算成本的前提下,在保持较低参数复杂度的同时实现了对高灵敏度目标检测的支持,在分类精度上与现有方法相当甚至略优。(2)该网络采用了一种基于通道注意力机制的设计方案,在保证分类性能的同时显著提升了模型性能。(3)该模型通过引入一种新的特征融合框架,在提升分类精度的同时实现了对内存占用的有效控制。
四、PyConv Networks for Image Classification
在图像分类任务中,作者采用了残差块结构。以下是一个示例说明:首先通过一个1×1的卷积层将输入图像的空间分辨率降到64个通道。接着采用四个不同大小的卷积核进行PyConv操作。值得注意的是,在各层之间深度逐渐增加:从分为16组逐渐过渡到全连接层。每层输出的结果都是经过处理后的特征图,并最终形成PyConv后的64个通道输出特征图。随后通过一个1×1卷积将低维特征提升回原始通道数。同时,在整个网络中正常应用BN层和ReLU激活函数,并引入了一个残差连接以增强模型性能

该分类网络架构基于表格进行展示,并与ResNet-50进行对比。依据特征图尺寸将网络划分为四个主要阶段。该架构以四层PyConv模块为基础设计,并在后续各个阶段逐步缩减各模块数量。伴随特征图尺寸逐步缩小,在最后一级模块中采用标准卷积处理以保证计算效率与效果平衡,并适当降低了整体计算复杂度(FLOPs)。

PyConv展现了极强的适应性特征,在表1中我们还看到了一种基于PyConv的新架构——PyConvHGResNet,在每一个层级上它采用了比传统PyConv更多的分组数量以提升模型性能。该架构通过将最少32个分组最多提升至64个分组来优化空间卷积操作的数量与分布模式。这种设计使得在特征图数量翻倍的同时能够更好地提取空间滤波器信息,并在FLOPs计算上带来微小的增长幅度。
五、PyConv on object detection
基于作者提出的PyConv并行采用了不同尺寸的卷积核,在图像中目标可能出现的不同尺度下运行良好;所提出的PyConvSSD框架如图8所示包含两个主要组件:首先,在目标检测领域中,作者将PyConv集成到SSD中;其次,在多个分辨率下运行良好;因此,在多个分辨率下运行良好;所提出的PyConvSSD框架如图8所示包含两个主要组件:首先,在目标检测领域中,作者将PyConv集成到SSD中;其次,在多个分辨率下运行良好

(1) PyConvResNet Backbone.
作者以在ImageNet数据集上预训练的PyConvResNet作为主干,为保持高效,也为了得到与SSD中使用的backbone数量相近的输出特征图,作者移除了PyConvResNet backbone第三阶段后所有的层,还将backbone第三阶段的所有步长都设为1。这样PyConvResNet最终提供1024维,大小38×38的输出特征图(stage3的输出,输入图像的大小300×300)。
(2) PyConvSSD Head.
上图所示的PyConvSSD head使用PyConv通过并行的不同大小的卷积核来进一步提取不同的特征。在backbone第三阶段最终的特征图上,作者用了四个级别的PyConv(卷积核大小:9×9,7×7, 5×5, 3×3)。PyConv通过并行地使用这些卷积核来下采样(步长s=2)。随着特征图分辨率的降低,也降低使用PyConv的层级。由于最后特征图的空间分辨率很小,最后的两个PyConv只有一个级别(标准3×3),步长s=1,由于不使用padding,空间分辨率会降低。因此PyConvSSD head会将特征图的空间分辨率从38×38降低到1×1。所有head的PyConvs的输出会被用于检测。
对六个输出特征图{S3FM, HFM1, HFM2, HFM3, HFM4, HFM5}分别进行检测,该框架使用与之对应的每个空间位置的默认框数量来进行检测(anchor){4, 6, 6, 6, 4, 4}。例如对于空间分辨率为38×38的输出特征图(S3FM),在每个位置上使用四个默认框会有5776次检测。
在定位每个边界框时,网络需要预测四个值(loc:△(cx, cy, w, h),其中cx和cy表示边界框的中心点,w和h表示边界框的宽高)。边界框的偏移值是相对于默认框的位置来评估的。对于每个边界框网络HIA应该输出每个类的类别置信值(共C类)。为了得到检测结果,作者使用了一个3×3卷积来作为分类器,输出每个边界框所有类的类别置信值C。对于定位,也使用3*3卷积对每个边界框输出4个定位值。该框架一共输出8732个检测结果(对于300×300的输入图像),然后通过NMS得到最终检测结果。

六、个人总结
文章的思路依然非常清晰。金字塔卷积本质上是将标准卷 convolution中的滤波器设计转变成多层级结构,并且每层都具有不同的尺度和深度特征提取能力。在每一级内部均采用分组 convolution以降低计算复杂度,从而使得其计算量与标准convolution相当(即FLOPs相同)。然而,在实际应用中发现其运行效率仍略低于预期。
