https://arxiv.org/pdf/1905.02188
特征上采样是很多当代卷积网络架构(比方特征金字塔)中的关键操作。其设计对于诸如目标检测和语义/实例分割等密集预测任务至关重要。在本文中,我们提出了内容感知特征重组(CARAFE),这是一种通用、轻量级且高度有效的算子,以实现这一目标。CARAFE具有几个吸引人的特性:(1)大视野。与仅利用子像素邻域的前期工作(比方双线性插值)不同,CARAFE可以在大感受野内聚合上下文信息。(2)内容感知处理。与对全部样本利用固定核(比方反卷积)不同,CARAFE支持针对实例的内容感知处理,可以即时生成自适应核。(3)轻量级且计算速度快。CARAFE引入的计算开销很小,而且可以轻松集成到当代网络架构中。我们在目标检测、实例/语义分割和图像修复的标准基准上进行了综合评估。CARAFE在全部任务中都表现出一致且显著的增益(分别为 1.2 % A P 1.2\% AP 1.2%AP、 1.3 % A P 1.3\% AP 1.3%AP、 1.8 % m I o U 1.8\% mIoU 1.8%mIoU、 1.1 d B 1.1 dB 1.1dB),且计算开销可忽略不计。它有望成为未来研究的强大构建块。代码和模型可在https://github.com/open-mmlab/mmdetection获取。
1. 引言
请注意,这些空间自适应权重不是作为网络参数学习的。相反,它们是利用具有softmax激活的轻量级全卷积模块即时预测的。图1揭示了CARAFE的工作机制。通过CARAFE上采样后,特征图可以更准确地表现对象的形状,从而使模型可以或许预测更好的实例分割效果。我们的CARAFE不但在空间上对特征图进行上采样,还学习增强其判别能力。
为了证明CARAFE的普遍有效性,我们利用主流架构在广泛的密集预测任务上进行了全面评估,即目标检测、实例分割、语义分割和图像修复。在MS COCO 2018 test-dev数据集上,CARAFE可以使Faster RCNN[33]在目标检测上的性能提升 1.2 % A P 1.2\% \mathrm{AP} 1.2%AP,使Mask RCNN[9]在实例分割上的性能提升 1.3 % A P 1.3\% \mathrm{AP} 1.3%AP。在ADE20k[47, 48]验证集上的语义分割任务中,CARAFE使UperNet[38]的性能提升了 1.8 % m I o U 1.8\% \mathrm{mIoU} 1.8%mIoU,在Places[46]验证集上的图像修复任务中,使Global&Local[13]的PSNR提升了1.1 dB。当将具有256个通道的 H × W H \times W H×W特征图上采样两倍时,CARAFE引入的计算开销仅为 H ∗ W ∗ 199 k H * W * 199 k H∗W∗199k FLOPs,相比之下,反卷积的计算开销为 H ∗ W ∗ 1180 k H * W * 1180 k H∗W∗1180k FLOPs。在全部任务上取得的显著增益表明,CARAFE是一种有效且高效的特征上采样算子,未来有很大的潜力成为强有力的研究基石。
2. 相关工作
CARAFE作为具有内容感知核的重组算子,包罗两个步骤。第一步是根据内容为每个目标位置预测一个重组核,第二步是利用预测的核重新组合特征。给定巨细为 C × H × W C \times H \times W C×H×W的特征图 X \mathcal{X} X和上采样比例 σ \sigma σ(假设 σ \sigma σ为整数),CARAFE将生成巨细为 C × σ H × σ W C \times \sigma H \times \sigma W C×σ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\rfloor i=⌊i′/σ⌋,j=⌊j′/σ⌋。这里,我们将 N ( X l , k ) N\left(\mathcal{X}_{l}, k\right) N(Xl,k)表现为以位置 l l l为中心、巨细为 k × k k \times k k×k的 X \mathcal{X} X的子地区,即 X l \mathcal{X}_{l} Xl的邻域。
在第一步中,核预测模块 ψ \psi ψ根据 X l \mathcal{X}_{l} Xl的邻域为每个位置 l ′ l^{\prime} l′预测一个位置感知核 W l ′ \mathcal{W}_{l^{\prime}} Wl′,如公式(1)所示。重组步骤如公式(2)所示,此中 ϕ \phi ϕ是内容感知重组模块,它利用核 W l ′ \mathcal{W}_{l^{\prime}} Wl′重新组合 X l \mathcal{X}_{l} Xl的邻域:
W l ′ = ψ ( N ( X l , k encoder ) ) X l ′ ′ = ϕ ( N ( X l , k u p ) , W l ′ ) \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} Wl′Xl′′=ψ(N(Xl,kencoder ))=ϕ(N(Xl,kup),Wl′)
在以下部分中,我们将具体分析 ψ \psi ψ和 ϕ \phi ϕ的细节。
3.2. 核预测模块
核预测模块负责以内容感知的方式生成重组核。在 X \mathcal{X} X上的每个源位置对应于 X ′ \mathcal{X}^{\prime} X′上的 σ 2 \sigma^{2} σ2个目标位置。每个目标位置需要一个 k u p × k u p k_{up} \times k_{up} kup×kup的重组核,此中 k u p k_{up} kup是重组核的巨细。因此,该模块将输出巨细为 C u p × H × W C_{up} \times H \times W Cup×H×W的重组核,此中 C u p = σ 2 k u p 2 C_{up}=\sigma^{2} k_{up}^{2} Cup=σ2kup2。
核预测模块由三个子模块组成,即通道压缩器、内容编码器和核归一化器,如图2所示。通道压缩器淘汰了输入特征图的通道数。然后,内容编码器将压缩后的特征图作为输入,对内容进行编码以生成重组核。最后,核归一化器对每个重组核应用softmax函数。以下是对这三个子模块的具体解释。
通道压缩器。我们采用一个 1 × 1 1 \times 1 1×1的卷积层来将输入特征通道从 C C C压缩到 C m C_{m} Cm。淘汰输入特征图的通道数可以淘汰后续步骤中的参数数目和计算成本,使CARAFE更高效。在相同的预算下,也可以利用更大的内核巨细为内容编码器。实行效果表明,在可接受的范围内淘汰特征通道不会损害性能。
内容编码器。我们利用巨细为 k encoder k_{\text {encoder}} kencoder的卷积层,根据输入特征的内容生成重组核。编码器的参数为 k encoder × k encoder × C m × C u p k_{\text {encoder}} \times k_{\text {encoder}} \times C_{m} \times C_{up} kencoder×kencoder×Cm×Cup。直观上,增加 k encoder k_{\text {encoder}} kencoder可以扩大编码器的感受野,并利用更大地区内的上下文信息,这对于预测重组核很重要。然而,计算复杂度随着内核巨细的平方增长,而来自更大内核巨细的收益则不会。通过我们在5.3节的研究,履历公式 k encoder = k u p − 2 k_{\text {encoder}}=k_{up}-2 kencoder=kup−2在性能和效率之间取得了良好的均衡。
核归一化器。在应用于输入特征图之前,每个 k u p × k u p k_{up} \times k_{up} kup×kup的重组核都会通过softmax函数在空间上进行归一化。归一化步骤逼迫内核值的和为1,这是在局部地区内的软选择。由于核归一化器,CARAFE不会实行任何重新缩放并改变特征图的平均值,这就是为什么我们提出的算子被称为特征的重组。
3.3. 内容感知重组模块
利用每个重组核 W l ′ \mathcal{W}_{l^{\prime}} Wl′,内容感知重组模块将通过函数 ϕ \phi ϕ重新组合局部地区内的特征。我们采用 ϕ \phi ϕ的简朴形式,它只是一个加权和算子。对于目标位置 l ′ l^{\prime} l′和以 l = ( i , j ) l=(i, j) l=(i,j)为中心的相应正方形地区 N ( X l , k u p ) N\left(\mathcal{X}_{l}, k_{up}\right) N(Xl,kup),重组如公式(3)所示,此中 r = ⌊ k u p / 2 ⌋ r=\left\lfloor k_{up} / 2\right\rfloor r=⌊kup/2⌋:
X l ′ ′ = ∑ n = − r r ∑ m = − r r W l ′ ( n , m ) ⋅ X ( i + n , j + m ) \mathcal{X}_{l^{\prime}}^{\prime}=\sum_{n=-r}^{r} \sum_{m=-r}^{r} \mathcal{W}_{l^{\prime}(n, m)} \cdot \mathcal{X}_{(i+n, j+m)} Xl′′=∑n=−rr∑m=−rrWl′(n,m)⋅X(i+n,j+m)
利用重组核,地区 N ( X l , k u p ) N\left(\mathcal{X}_{l}, k_{up}\right) N(Xl,kup)中的每个像素都会基于特征的内容而不是位置的间隔,对上采样像素 l ′ l^{\prime} l′产生不同的贡献。由于局部地区内相关点的信息可以更多地被关注,因此重新组合后的特征图的语义可能比原始特征图更强。
3.4. 与先前算子的关系
在这里,我们讨论了CARAFE与动态滤波器[15]、空间注意力[3]、空间变更器[14]和可变形卷积[6]之间的关系,它们具有相似的设计理念但侧重点不同。
动态滤波器。动态滤波器根据网络的输入生成特定实例的卷积滤波器,然后将预测的滤波器应用于输入。动态滤波器和CARAFE都是内容感知算子,但它们之间的根本区别在于内核生成过程。具体来说,动态滤波器是一个两步卷积过程,此中额外的滤波器预测层和滤波层需要大量的计算。相反,CARAFE只是局部地区内特征的重新组合,而不学习跨通道的特征变更。假设输入特征图的通道数为 C C C,滤波器的内核巨细为 K K K,则在动态滤波器中,每个位置预测的内核参数为 C × C × K × K C \times C \times K \times K C×C×K×K。对于CARAFE,内核参数仅为 K × K K \times K K×K。因此,它在内存和速度上更高效。
空间注意力。空间注意力预测一个与输入特征巨细相同的注意力图,然后对每个位置的特征图进行重新缩放。我们的CARAFE通过加权和对局部地区内的特征进行重新组合。总之,空间注意力是一个具有逐点指导的重缩放算子,而CARAFE是一个具有局部地区指导的重新组合算子。空间注意力可以看作是CARAFE的一种特殊情况,此中重组核巨细为1,不思量核归一化器。
空间变更网络(STN)。STN根据输入特征图预测一个全局参数变更,并通过该变更对特征进行扭曲。然而,这个全局参数变更假设太强,无法表现复杂的空间变化;而且STN的练习很难。在这里,CARAFE利用位置特定的重组来处理空间关系,这可以或许实现更灵活的局部几何建模。
可变形卷积网络(DCN)。DCN也采用了学习几何变更的思想,并将其与常规卷积层相联合。它预测内核偏移量,而不是利用网格卷积内核。与动态滤波器类似,它也是一个重参数算子,计算成本比CARAFE高24倍。它也对参数初始化很敏感。
4. CARAFE的应用
数据集与评估指标。我们在几个重要的密集预测基准上评估了CARAFE。默认情况下,我们利用练习集进行练习,并在验证集上评估这些数据集的性能。
目标检测和实例分割。我们在具有挑衅性的MS COCO 2017数据集上进行了实行。效果采用标准的COCO评估指标,即IoU从0.5到0.95的平均精度(mAP)。
语义分割。我们采用ADE20k基准来评估我们的方法在语义分割任务中的表现。效果通过平均IoU(mIoU)和像素准确率(P.A.)来权衡,分别表现预测与真实掩码之间的平均IoU和每像素分类准确率。
图像修复。我们采用Places数据集进行图像修复。利用L1误差(越低越好)和PSNR(越高越好)作为评估指标。
实现细节。除非另有分析,否则CARAFE在实行中采用一组固定的超参数,此中通道压缩器的 C m C_{m} Cm为64,内容编码器的 k encoder = 3 k_{\text{encoder}}=3 kencoder=3, k u p = 5 k_{up}=5 kup=5。更多实现细节见增补质料。
目标检测和实例分割。我们在Faster RCNN和Mask RCNN上评估了CARAFE,主干网络为ResNet-50带FPN,并遵循Detectron [8]和MMDetection [2]的1x练习筹划设置。语义分割。我们利用UperNet的官方实现 1 ^{1} 1,并采用相同的实行设置。
图像修复。我们采用Global&Local [13]和Partial Conv [23]作为基线方法来评估CARAFE。
5.2. 基准测试效果
目标检测与实例分割。我们起首通过将FPN中的最近邻插值更换为CARAFE(针对Faster RCNN和Mask RCNN),以及将Mask RCNN中掩码头的反卷积层更换为CARAFE来评估我们的方法。如表1所示,CARAFE使Faster RCNN的bbox AP进步了 1.2 % 1.2\% 1.2%,使Mask RCNN的掩码AP进步了 1.3 % 1.3\% 1.3%。 A P S \mathrm{AP}_{S} APS、 A P M \mathrm{AP}_{M} APM、 A P L \mathrm{AP}_{L} APL的提升均凌驾 1 % A P 1\% \mathrm{AP} 1%AP,这表明它对各种目标尺度都有益。
如图1所示的定性效果支持了我们令人鼓舞的性能。我们可视化了FPN自上而下路径中的特征图,并将CARAFE与基线(即最近邻插值)进行了比力。显然,通过内容感知重组,特征图更具判别性,而且预测出了更准确的目标掩码。在图4中,我们展示了一些实例分割效果的示例,比力了基线和CARAFE。
模型设计与超参数。我们研究了模型设计中超参数的影响,即压缩通道 C m C_{m} Cm、编码器核巨细 k encoder k_{\text{encoder}} kencoder和重组核巨细 k u p k_{up} kup。我们还测试了核归一化器中不同的归一化方法。我们利用带有ResNet-50主干的Faster RCNN对设计和设置进行了消融研究,并在COCO 2017验证集上评估告终果。
为了实现高效设计,我们起首分析了由浮点运算数(FLOPs)权衡的计算复杂度。当以因子 σ \sigma σ对输入通道为 C i n C_{in} Cin的特征图进行上采样时,CARAFE的每像素FLOPs计算为 2 ( C in + 1 ) C m + 2 ( C m k encoder 2 + 1 ) σ 2 k u p 2 + 2 σ 2 k u p 2 C i n 2\left(C_{\text{in}}+1\right)C_{m}+2\left(C_{m}k_{\text{encoder}}^{2}+1\right)\sigma^{2}k_{up}^{2}+2\sigma^{2}k_{up}^{2}C_{in} 2(Cin+1)Cm+2(Cmkencoder2+1)σ2kup2+2σ2kup2Cin,拜见[28]。
我们在通道压缩器中尝试了不同的 C m C_{m} Cm值。别的,我们还尝试移除通道压缩器模块,这意味着内容编码器直接利用输入特征来预测重组核。表8中的实行效果表明,将 C m C_{m} Cm压缩到64不会导致性能下降,反而更加高效。进一步减小 C m C_{m} Cm会导致性能略有下降。在没有通道压缩器的情况下,它可以到达相同的性能,这证明了通道压缩器可以在不损害性能的情况下加快核预测速度。基于以上效果,我们默认将 C m C_{m} Cm设置为64,以在性能和效率之间取得均衡。
然后,我们研究了 k encoder k_{\text{encoder}} kencoder和 k u p k_{up} kup的影响。直观上,增加 k u p k_{up} kup也需要更大的 k encoder k_{\text{encoder}} kencoder,因为内容编码器需要一个大的感受野来预测一个大的重组核。如表9所示,同时增加 k encoder k_{\text{encoder}} kencoder和 k u p k_{up} kup可以进步性能,而只增加此中一个则不会。我们总结了一个履历公式 k encoder = k u p − 2 k_{\text{encoder}}=k_{up}-2 kencoder=kup−2,这是全部设置中的一个好选择。只管采用更大的核巨细是有帮助的,但我们默认设置 k u p = 5 k_{up}=5 kup=5和 k encoder = 3 k_{\text{encoder}}=3 kencoder=3,以在性能和效率之间取得均衡。
除了softmax函数外,我们还测试了核归一化器中的其他替换方案,如sigmoid或带归一化的sigmoid。如表10所示,“Softmax”和“Sigmoid Normalized”具有相同的性能,而且优于“Sigmoid”,这表明将重组核归一化为和为1是至关重要的。
我们提出了内容感知特征重组(CARAFE),这是一种通用、轻量级且高度有效的上采样算子。它在目标检测、实例/语义分割和图像修复的标准基准上分别一致地将性能进步了 1.2 % A P 1.2\% AP 1.2%AP、 1.3 % A P 1.3\% AP 1.3%AP、 1.8 % m I o U 1.8\% mIoU 1.8%mIoU、 1.1 d B 1.1 dB 1.1dB。更重要的是,CARAFE引入的计算开销很小,而且可以轻松集成到当代网络架构中。未来的研究方向包罗探索CARAFE在低级视觉任务(如图像恢复和超分辨率)中的适用性。
致谢。本工作部分得到了商汤科技团体(中大协议编号:TS1610626和TS1712093)、香港研究资助局(GRF)(编号:14236516和14203518)、新加坡教育部(MOE)AcRF一级(M4012082.020)、南洋理工大学(NTU)弟子资助基金(SUG)和NTU NAP的团结研究资助。
附录
附录A. 具体实行设置
目标检测和实例分割。我们在以ResNet-50为主干网络的Faster RCNN[33]和Mask RCNN[9]上评估CARAFE。这些方法利用了FPN[21]。在练习和推理中,我们调解输入图像的巨细,使其短边有800像素或长边有1333像素,同时保持其纵横比稳定。我们采用同步SGD,初始学习率为0.02,动量为0.9,权重衰减为0.0001。我们在8个GPU上利用16的批量巨细(每个GPU 2张图像)。遵循Detectron[8]和MMDetection[2]的1倍练习筹划,我们总共练习12个周期,并在第8个和第11个周期将学习率降低0.1倍。
语义分割。我们利用以ResNet-50为主干网络的UperNet的官方实现{ }^{3} [38]。在练习期间,输入图像的短边巨细随机从{300,375,450, 525,600}中选择。在推理中,为了公平比力,我们采用单尺度测试,并将图像的短边设置为450像素。在练习和推理中,图像长边的最大长度均设置为1200。我们采用同步SGD,初始学习率为0.02,动量为0.9,权重衰减为0.0001。我们在8个GPU上利用16的批量巨细(每个GPU 2张图像),并采用同步批量归一化,这是语义分割中的常见做法。遵循[4],我们采用“poly”学习率计谋,此中当前迭代的学习率等于初始学习率乘以KaTeX parse error: Expected 'EOF', got '_' at position 21: …ext { iter /max_̲iter })^{\text …。我们将power设置为0.9,并总共练习20个周期。
图像修复。我们采用Global&Local[13]中的生成器和判别器网络作为基线。我们的生成器以带有掩码地区 M M M的 256 × 256 256 \times 256 256×256图像 x x x作为输入,并输出缺失地区的 256 × 256 256 \times 256 256×256预测 y ^ \hat{\mathbf{y}} y^。然后,我们通过 y = ( 1 − M ) ⊙ x + M ⊙ y ^ \mathbf{y}=(1-M) \odot \mathbf{x}+M \odot \hat{\mathbf{y}} y=(1−M)⊙x+M⊙y^将预测图像与输入图像联合。最后,将组合后的输出 y \mathbf{y} y输入到判别器中。我们对基线模型进行了简朴修改,以得到更好的生成质量。与原始模型利用两个判别器相比,我们仅在修复地区利用一个PatchGAN风格的判别器[18]。这种修改可以得到更好的图像质量。
为了公平比力并思量实际应用,我们利用[41]引入的自由形式掩码作为二进制掩码 M M M。对于Partial Conv[23],我们只需在生成器中将卷积层更换为官方的Partial Conv模块。在练习期间,我们采用Adam求解器,学习率为0.0001,此中 β 1 = 0.5 \beta_{1}=0.5 β1=0.5, β 2 = 0.9 \beta_{2}=0.9 β2=0.9。练习批量巨细为32。输入和输出在范围 [ − 1 , 1 ] [-1,1] [−1,1]内线性缩放。
附录B. CARAFE的可视化