摘要
https://arxiv.org/pdf/1905.02188
特征上采样是许多现代卷积网络架构(例如特征金字塔)中的关键操作。其设计对于诸如目标检测和语义/实例分割等密集预测任务至关重要。在本文中,我们提出了内容感知特征重组(CARAFE),这是一种通用、轻量级且高度有效的算子,以实现这一目标。CARAFE具有几个吸引人的特性:(1)大视野。与仅利用子像素邻域的前期工作(例如双线性插值)不同,CARAFE可以在大感受野内聚合上下文信息。(2)内容感知处理。与对所有样本使用固定核(例如反卷积)不同,CARAFE支持针对实例的内容感知处理,可以即时生成自适应核。(3)轻量级且计算速度快。CARAFE引入的计算开销很小,并且可以轻松集成到现代网络架构中。我们在目标检测、实例/语义分割和图像修复的标准基准上进行了综合评估。CARAFE在所有任务中都表现出一致且显著的增益(分别为1.2%AP1.2\% AP1.2%AP、1.3%AP1.3\% AP1.3%AP、1.8%mIoU1.8\% mIoU1.8%mIoU、1.1dB1.1 dB1.1dB),且计算开销可忽略不计。它有望成为未来研究的强大构建块。代码和模型可在https://github.com/open-mmlab/mmdetection获取。
1. 引言
特征上采样是深度神经网络中最基本的操作之一。一方面,对于密集预测任务(例如超分辨率[7,20]、图像修复[13,32]和语义分割[43,5])中的解码器,高级/低分辨率特征图会上采样以匹配高分辨率监督。另一方面,特征上采样还涉及将高级/低分辨率特征图与低级/高分辨率特征图进行融合,这在许多最先进架构中被广泛采用,例如特征金字塔网络[21]、U-Net[34]和堆叠沙漏网络[29]。因此,设计有效的特征上采样算子成为一个关键问题。
最常用的特征上采样算子是最近邻和双线性插值,它们采用像素之间的空间距离来指导上采样过程。然而,最近邻和双线性插值仅考虑子像素邻域,无法捕获密集预测任务所需的丰富语义信息。另一种实现自适应上采样的方法是反卷积[30]。反卷积层作为卷积层的逆算子,学习一组与实例无关的上采样核。但是,它有两个主要缺点。首先,反卷积算子在整个图像上应用相同的核,而不考虑底层内容。这限制了其响应局部变化的能力。其次,当使用大核大小时,它带有大量参数和繁重的计算工作量。这使得其难以覆盖超出小邻域的更大区域,从而限制了其表达能力和性能。
在本文中,我们超越了这些限制,并寻求一种特征上采样算子,其能够1)在大感受野内聚合信息,2)即时适应特定实例的内容,以及3)保持计算效率。为此,我们提出了一种轻量级且高度有效的算子,称为内容感知特征重组(CARAFE)。具体而言,CARAFE通过加权组合,在每个位置为中心的预定区域内重新组合特征,其中权重以内容感知的方式生成。此外,对于每个位置,有多组这样的上采样权重。特征上采样通过将生成的特征重新排列为空间块来完成。
请注意,这些空间自适应权重不是作为网络参数学习的。相反,它们是使用具有softmax激活的轻量级全卷积模块即时预测的。图1揭示了CARAFE的工作机制。通过CARAFE上采样后,特征图可以更准确地表示对象的形状,从而使模型能够预测更好的实例分割结果。我们的CARAFE不仅在空间上对特征图进行上采样,还学习增强其判别能力。
为了证明CARAFE的普遍有效性,我们使用主流架构在广泛的密集预测任务上进行了全面评估,即目标检测、实例分割、语义分割和图像修复。在MS COCO 2018 test-dev数据集上,CARAFE可以使Faster RCNN[33]在目标检测上的性能提升1.2%AP1.2\% \mathrm{AP}1.2%AP,使Mask RCNN[9]在实例分割上的性能提升1.3%AP1.3\% \mathrm{AP}1.3%AP。在ADE20k[47, 48]验证集上的语义分割任务中,CARAFE使UperNet[38]的性能提升了1.8%mIoU1.8\% \mathrm{mIoU}1.8%mIoU,在Places[46]验证集上的图像修复任务中,使Global&Local[13]的PSNR提升了1.1 dB。当将具有256个通道的H×WH \times WH×W特征图上采样两倍时,CARAFE引入的计算开销仅为H∗W∗199kH * W * 199 kH∗W∗199k FLOPs,相比之下,反卷积的计算开销为H∗W∗1180kH * W * 1180 kH∗W∗1180k FLOPs。在所有任务上取得的显著增益表明,CARAFE是一种有效且高效的特征上采样算子,未来有很大的潜力成为强有力的研究基石。
2. 相关工作
上采样算子。最常用的上采样方法是最近邻插值和双线性插值。这些插值方法利用距离来衡量像素之间的相关性,并使用手工设计的上采样核。在深度学习时代,提出了几种使用可学习算子对上采样特征图的方法。例如,反卷积[30]是卷积的逆算子,在这些可学习上采样器中最为著名。Pixel Shuffle[35]提出了一种不同的上采样器,它将通道空间上的深度重塑为空间上的宽度和高度。最近,[26]提出了引导上采样(GUM),通过采样具有可学习偏移量的像素来进行插值。然而,这些方法要么仅利用了小邻域内的上下文信息,要么需要昂贵的计算来进行自适应插值。在超分辨率和去噪领域,其他工作[27,16,11]也探索了在低级视觉任务中空间上使用可学习核。本着类似的设计精神,本文展示了内容感知特征重组在几个视觉感知任务中上采样的有效性和工作机制,并提供了一种轻量级解决方案。
密集预测任务。目标检测是定位带有边界框的物体的任务,实例分割进一步要求预测实例级掩码。Faster-RCNN[33]引入了区域提议网络(RPN)用于端到端训练,该网络通过引导锚定方案[37]得到了进一步改进。[21, 24, 17, 45, 31]利用多尺度特征金字塔来处理不同尺度的物体。通过添加额外的掩码预测分支,Mask-RCNN[9]及其变体[1, 12]获得了令人满意的像素级结果。语义分割[25, 19]要求对给定图像进行像素级语义预测。PSPNet[43]引入了多个网格尺度的空间池化,而UperNet[38]基于PSPNet设计了一个更通用的框架。图像或视频修复[42, 40, 39]是填充输入图像缺失区域的一个经典问题。U-net[34]在最近的工作中[13, 36]很受欢迎,并采用了多个上采样算子。Liu等人[23]引入了部分卷积层,以减轻缺失区域对卷积层的影响。我们的CARAFE在各种密集预测任务中展示了普遍的有效性。
3. 内容感知特征重组
特征上采样是许多现代卷积网络架构中的关键算子,这些架构是为包括目标检测、实例分割和场景解析在内的任务开发的。在这项工作中,我们提出了内容感知特征重组(CARAFE)来上采样特征图。在每个位置上,CARAFE可以利用底层内容信息来预测重组核,并在预定义的附近区域内重新组合特征。得益于内容信息,CARAFE可以在不同位置使用自适应和优化的重组核,并且比主流上采样算子(如插值或反卷积)实现更好的性能。
3.1. 公式化
CARAFE作为具有内容感知核的重组算子,包含两个步骤。第一步是根据内容为每个目标位置预测一个重组核,第二步是使用预测的核重新组合特征。给定大小为C×H×WC \times H \times WC×H×W的特征图X\mathcal{X}X和上采样比例σ\sigmaσ(假设σ\sigmaσ为整数),CARAFE将生成大小为C×σH×σWC \times \sigma H \times \sigma WC×σH×σW的新特征图X′\mathcal{X}^{\prime}X′。对于输出X′\mathcal{X}^{\prime}X′上的任何目标位置l′=(i′,j′)l^{\prime}=\left(i^{\prime}, j^{\prime}\right)l′=(i′,j′),在输入X\mathcal{X}X上都有一个对应的源位置l=(i,j)l=(i, j)l=(i,j),其中i=⌊i′/σ⌋,j=⌊j′/σ⌋i=\left\lfloor i^{\prime} / \sigma\right\rfloor, j=\left\lfloor j^{\prime} / \sigma\right\rfloori=⌊i′/σ⌋,j=⌊j′/σ⌋。这里,我们将N(Xl,k)N\left(\mathcal{X}_{l}, k\right)N(Xl,k)表示为以位置lll为中心、大小为k×kk \times kk×k的X\mathcal{X}X的子区域,即Xl\mathcal{X}_{l}Xl的邻域。
在第一步中,核预测模块ψ\psiψ根据Xl\mathcal{X}_{l}Xl的邻域为每个位置l′l^{\prime}l′预测一个位置感知核Wl′\mathcal{W}_{l^{\prime}}Wl′,如公式(1)所示。重组步骤如公式(2)所示,其中ϕ\phiϕ是内容感知重组模块,它使用核Wl′\mathcal{W}_{l^{\prime}}Wl′重新组合Xl\mathcal{X}_{l}Xl的邻域:
Wl′=ψ(N(Xl,kencoder ))Xl′′=ϕ(N(Xl,kup),Wl′) \begin{aligned} \mathcal{W}_{l^{\prime}} & =\psi\left(N\left(\mathcal{X}_{l}, k_{\text {encoder }}\right)\right) \\ \mathcal{X}_{l^{\prime}}^{\prime} & =\phi\left(N\left(\mathcal{X}_{l}, k_{u p}\right), \mathcal{W}_{l^{\prime}}\right) \end{aligned} W