SpineNet:学习用于识别和定位的尺度置换骨干网络.
0. TL; DR
本文提出了 SpineNet,一个具有尺度置换 (scale-permuted) 的中间特征和跨尺度连接 (cross-scale connections) 的主干网络,它是通过神经架构搜索 (Neural Architecture Search, NAS) 在目标检测任务上学习得到的。
在 COCO 数据集上,使用 RetinaNet 检测器,SpineNet 模型比 ResNet-FPN 模型在各种尺度下的 AP 平均高出约3%,而 FLOPs(计算量)却减少了10-20%。尽管 SpineNet 是为目标检测任务学习的,但它也能很好地迁移到分类任务中。在一个具有挑战性的 iNaturalist 细粒度分类数据集上,其 top-1 准确率比 ResNet 提升了5%。
1. 背景介绍
在过去的几年里,深度卷积神经网络 (CNN) 的设计取得了显著的进步。然而,尽管网络通过增加深度和宽度变得越来越强大,其元架构设计自 CNN 发明以来并未发生根本性改变。大多数网络都遵循一种尺度递减 (scale-decreased) 的设计,即随着网络的深入,中间特征图的分辨率单调递减。这种设计的初衷是:高分辨率可能需要用于检测特征的存在,但其精确位置则无需同等高的精度来确定。
然而,这种尺度递减的模型可能无法为那些同时需要识别和定位的多尺度视觉任务(如目标检测和分割)提供强大的特征。为了解决这个问题,编码器-解码器 (encoder-decoder) 架构(如 FPN)被提出。它将一个尺度递减的网络作为编码器(通常称为主干 (backbone)),然后应用一个解码器网络来恢复特征的分辨率。
本文的核心问题是:尺度递减的模型真的是一个好的主干架构设计吗? 从直觉上看,一个尺度递减的主干网络通过下采样丢弃了空间信息,这使得解码器网络很难将其完全恢复。
基于此,作者提出了一种名为尺度置换模型 (scale-permuted model) 的新元架构,它对主干网络的设计进行了两大改进:
- 中间特征图的尺度应该能够随时增大或减小,以便模型在加深的同时能够保留空间信息。
- 特征图之间的连接应该能够跨越不同的尺度,以促进多尺度特征的融合。
由于这种新架构的设计空间巨大,作者利用神经架构搜索 (Neural Architecture Search, NAS),在 COCO 目标检测任务上自动学习最优的架构。作者将这个学习到的尺度置换主干架构命名为 SpineNet。
2. SpineNet方法
SpineNet 的架构由一个固定的柄网络 (stem network) 和一个学习到的尺度置换网络 (scale-permuted network) 组成。
2.1 架构设计与搜索空间
作者使用了 ResNet 中的残差块 (residual block) 和瓶颈块 (bottleneck block) 作为 SpineNet 的基本构建单元。每个块 $B_k$ 都有一个相关的特征级别 $L_i$,其分辨率为输入分辨率的 $1/2^i$。
模型定义了从 $L_3$ 到 $L_7$ 的5个输出块,用于生成多尺度特征金字塔 $P_3$ 到 $P_7$。
NAS 搜索空间:
- 尺度置换 (Scale permutations):搜索中间块和输出块的最佳排列顺序。这决定了一个块只能连接到排序在它之前的“父”块。
- 跨尺度连接 (Cross-scale connections):为每个块搜索两个输入连接。父块可以是排序在前的任何块,甚至是柄网络中的块。
- 块调整 (Block adjustments):允许每个块调整其尺度级别(上/下采样)和类型(残差块/瓶颈块)。
2.2 跨尺度连接中的重采样
当连接两个不同尺度级别的块时,需要进行空间 (spatial) 和特征 (feature) 重采样,以匹配目标块的分辨率和特征维度。
- 空间重采样:上采样使用最近邻插值 (nearest-neighbor interpolation)。下采样使用步长为2的 $3 \times 3$ 卷积(如有需要,后接最大池化)。
- 特征重采样使用一个 $1 \times 1$ 卷积来匹配目标块的特征维度。

将两个经过重采样的输入特征图通过逐元素相加 (elemental-wise addition) 进行融合。
2.3 通过置换 ResNet 构建尺度置换模型
为了公平地比较尺度置换模型和尺度递减模型,作者首先通过置换 ResNet 中的特征块来构建一系列模型。这些模型从一个标准的 ResNet50-FPN(几乎所有计算量都在尺度递减的 ResNet 部分)逐步过渡到一个完全的尺度置换模型 R0-SP53(所有计算量都在尺度置换部分)。
2.4 SpineNet 架构家族
在证明了尺度置换的有效性后,作者通过在搜索空间中加入块调整选项,学习到了一个更优的架构,并将其命名为 SpineNet-49。

从学习到的架构中可以观察到中间特征经历了持续的上采样和下采样,这与尺度递减的主干网络有很大不同。中间块之间通常以短距离连接形成深度通路。输出块则倾向于使用更长距离的连接。
基于 SpineNet-49,作者构建了一个包含不同大小模型的家族,以适应不同的性能/延迟需求:
- SpineNet-49S: 将 SpineNet-49 的特征维度按比例缩小。
- SpineNet-96/143/190: 通过重复每个块2/3/4次来增加模型深度,并相应调整特征维度。

3. 实验分析
作者在 COCO 目标检测数据集和 ImageNet/iNaturalist 图像分类数据集上对 SpineNet 进行了全面的评估。
3.1 ResNet-FPN vs. SpineNet
作者比较了通过置换 ResNet 构建的一系列模型。结果清晰地显示,随着计算量从尺度递减的主干网络部分逐渐转移到尺度置换网络部分,模型的性能(AP)也随之稳步提升。
与 R50-FPN (37.8% AP) 相比,完全的尺度置换模型 R0-SP53 (40.7% AP) 取得了2.9% 的 AP 提升。而最终的 SpineNet-49 在达到与 R0-SP53 相当的准确率的同时,将 FLOPs 降低了10%。

尺度递减的主干网络不是目标检测任务的最佳设计;将计算量分配给尺度置换模型能够带来更高的性能。
3.3 目标检测结果
在RetinaNet上,SpineNet 模型在各种模型大小下,其准确性和效率都大幅领先于 ResNet-FPN 和 NAS-FPN 等其他流行检测器。最大的 SpineNet-190 模型在单模型、无测试时增强的情况下,AP 达到了惊人的52.1%。

将 SpineNet 作为 Mask R-CNN 的主干网络,同样取得了比 ResNet-FPN 更好、更高效的结果。这表明 SpineNet 具有良好的迁移性。SpineNet-190 在实例分割任务上的 AP (box) 和 AP (mask) 分别达到了52.5%和46.3%。

作者还使用 MBConv 模块构建了移动端版本的 SpineNet。结果显示,与 MnasNet, MobileNetV2/V3 等相比,SpineNet 在计算量更小的情况下,AP 提升了2-4%。

3.4 消融研究
作者将学习到的尺度置换架构(R0-SP53)与两种固定的架构形状(Hourglass 和 Fish)进行了比较。结果显示,联合学习尺度置换和跨尺度连接比只学习连接要好得多。

作者通过三种方式“破坏”学习到的连接(移除短距离连接、移除长距离连接、强制顺序连接),来研究跨尺度连接的重要性。结果显示,任何一种破坏方式都会导致性能的严重下降,尤其是移除长距离连接或强制顺序连接。

尺度置换和跨尺度连接对于构建一个强大的目标检测主干网络都至关重要。
3.5 SpineNet 在图像分类上的应用
作者将 SpineNet 应用于 ImageNet 和 iNaturalist 分类任务。
在 ImageNet 上SpineNet 在计算量远低于 ResNet 的情况下,取得了与之相当的性能。在 iNaturalist 这个具有挑战性的细粒度分类数据集上,SpineNet 的性能比 ResNet 高出约5%。作者认为,这得益于 SpineNet 的多尺度特征能够更好地捕捉细微的局部差异,以及其更紧凑的特征表示(256维)不易过拟合。

综上所述,SpineNet 通过其革命性的尺度置换元架构,成功地挑战了传统 CNN 的设计范式。它不仅在目标检测任务上取得了SOTA的性能,还在图像分类任务上展现出强大的潜力,有望成为未来多种视觉任务的统一主干网络。