介绍

在计算机视觉的各种任务(如物体检测、显著目标检测、语义分割)中,如何表示多尺度(multi-scale)的特征是一个十分重要的问题。最近的关于骨干卷积网络的研究表明,强大的多尺度表示能力有注意提升网络性能。然而,大多数现有的方法以一种layer-wise的方式来表示多尺度特征(即使用不同的层来表示不同的尺度)。本论文提出了一种新的CNN模块——Res2Net,它在一个残差块内构建分层次的残差连接,从而增大网络中每一层的感受野变化范围,在粒度级别上(granular level)表示多尺度特征。Res2Net块可以嵌入到现有的经典CNN模型中,如ResNet、ResNeXt、DLA等。通过在多种数据集以及不同任务上的测试,使用Res2Net块取得了显著的性能提升。

Res2Net

1.png

如图所示,左侧为原始的瓶颈块,右图为Res2Net块。在1×1卷积之后,将特征图分为 $s$ 组,使用 $\boldsymbol{x}_i$ 表示,$i \in\{1,2, \ldots, s\}$。每个 $\boldsymbol{x}_i$ 与原来的特征图相比具有相同的空间尺度,但信道数变为 $1/s$。除了 $\boldsymbol{x}_1$ 之外,每个 $\boldsymbol{x}_i$ 都有一个相应的3×3卷积,表示为 $\mathbf{K}_{i}( )$。之所以忽略 $\boldsymbol{x}_1$ 所对应的3×3卷积,是为了节省参数。使用 $\boldsymbol{y}_i$ 来表示 $\mathbf{K}_{i}( )$ 的输出,其计算方式为:

$$ \boldsymbol{y}_{i}=\left\{\begin{array}{ll}{\boldsymbol{x}_{i}} & {i=1} \\ {\mathbf{K}_{i}\left(\boldsymbol{x}_{i}+\boldsymbol{y}_{i-1}\right)} & {1<i \leqslant s}\end{array}\right. $$

注意上图的特征流动路径,每个3×3卷积 $\mathbf{K}_{i}( )$ 可以接收到来自所有特征子集 $\left\{\boldsymbol{x}_{j}, j \leq i\right\}$ 的特征信息。特征图每通过一个3×3卷积,感受野便会增大,因此不同的路径组合对应着不同大小的感受野,从而使特征尺度具有多样性。

为了更好地融合不同尺度的特征信息,我们将所有的特征子集 $\boldsymbol{y}_i$ 进行连接,并通过一个1×1卷积。这种分割-合并的策略能使卷积层更加高效地处理特征。

总结

在神经网络已有的深度(depth)、宽度(width)、基数(cardinality)等基础上,Res2Net引入了一个新的维度——尺度(scale),即Res2Net块中特征分组的个数 $s$。更大的 $s$ 意味着更强的多尺度表示能力,引入的额外计算/内存开销可以忽略不计。

Last modification:November 27th, 2019 at 10:27 am
如果觉得我的文章对你有用,请随意赞赏