深度学习可形变卷积
深度学习可形变卷积
Deformable Convolutional Networks
参考文献链接:https://arxiv.org/pdf/1703.06211.pdf
参考代码链接: https://github.com/ msracver/Deformable-ConvNets
可形变卷积
卷积神经网络(CNNs)由于其构建模块中固定的几何结构,其固有的局限性在于模型的几何变换。在这项工作中,引入了两个新的模块来增强CNNs的转换建模能力,即可变形卷积和可变形RoI池。这两种方法都基于这样的思想,即在不需要额外监视的情况下,使用附加偏移量来增加模块中的空间采样位置,并从目标任务中学习偏移量。新的模块可以很容易地取代现有cnn中的普通模块,并且可以通过标准的反向传播进行端到端的简单训练,从而产生可变形卷积网络。大量实验验证了该方法在复杂的目标检测和语义分割视觉任务中的有效性。
使用可变形卷积,可以提升Faster R-CNN和R-FCN在物体检测和分割上的性能。只要增加很少的计算量,就可以得到性能的提升。
传统/常规卷积基于定义的滤波器大小,在输入图像或一组输入特征图的预定义矩形网格上操作。该网格的大小可以是3×3和5×5等。然而,想要检测和分类的对象可能会在图像中变形或被遮挡。
在DCN中,网格是可变形的,因为每个网格点都可以通过一个可学习的偏移量移动。卷积作用于这些移动的网格点上,因此称为可变形卷积,类似于可变形RoI池化的情况。通过使用这两个新模块,DCN提高了DeepLab、Faster R-CNN、R-FCN、和FPN等的准确率。
最后,MSRA使用DCN+FPN+Aligned Xception在COCO Detection Challenge中获得第二名,Segmentation Challenge中获得第三名。发表于2017 ICCV,引用次数超过200次。
1. 可变形卷积
可变形卷积
- 规则的卷积是在一个规则的网格R上操作的。
- 对R进行可变形卷积运算,但每个点都增加一个可学习的偏移∆pn。
- 卷积生成2N个特征图,对应N个2D个偏移量∆pn(每个偏移量对应有x-方向和y-方向)。
标准卷积(左), 可变形卷积(右)
- 如上所示,可变形卷积将根据输入图像或特征图在不同位置为卷积选择值。
- 与Atrous convolution相比,Atrous convolution在卷积过程中具有较大但固定的膨胀值。(Atrous convolution也称为dilated convolution或hole算法。
- 与Spatial Transformer
Network (STN)比较:STN对输入图像或特征图进行变换,而可变形卷积可以被视为一个非常轻量级的STN。
2. Deformable RoI Pooling
Deformable RoI Pooling
- 常规RoI Pooling将任意大小的输入矩形区域转换为固定大小的特征。
- 在Deformable RoI Pooling中,首先,在top path中,仍然需要常规的RoI Pooling来生成池化的feature map。
- 然后,使用一个全连接(fc)层生成归一化的偏移∆p̂ij,然后转化为偏移∆pij(方程在右下角)其中γ= 0.1。
- 偏移量归一化是必要的,使偏移量的学习不受RoI大小的影响。
- 最后,在底部路径,执行deformable RoI pooling。输出特征图是基于具有增强偏移量的区域进行池化的
3. Deformable Positive-Sensitive (PS) RoI Pooling
Deformable Positive-Sensitive (PS) RoI Pooling (在这里颜色很重要)
对于原始的R-FCN中的Positive-Sensitive (PS) RoI pooling,所有的输入特征图首先转换为每个类别k²个得分图(假设背景类总共C + 1个类别)(最好是读一下R-FCN,理解一下最初的PS RoI pooling)
- 在deformable PS RoI pooling中,首先,在顶部路径上,和原始的相似,
卷积用于生成2k²(C + 1)得分图。 - 这意味着,对于每个类别,有k²个特性图,这些特征图代表了要学习的物体的偏移量{上左(TL),上中(TC), . .,右下(BR)}。
- 偏移量(顶部路径)的原始的PS RoI Pooling是使用图中相同的区域和相同的颜色来池化的。在这里得到偏移量。
- 最后,在底部路径中,执行deformable PS RoI pooling来池化偏移量增强的特征图。
可形变卷积的进阶:RepPoints
RepPoints: Point Set Representation for Object Detection
论文地址:https://arxiv.org/abs/1904.11490
代码链接:https://github.com/microsoft/RepPoints
现代的目标检测器在很大程度上依赖于矩形的边界框,如锚、方案和最终预测,来表示不同识别阶段的目标。边界框使用方便,但仅提供对象的粗略定位,并导致相应的对象特征的粗略提取。在本文中,提出了一种新的更精细的对象表示方法&textbf{RepPoints}(代表点),它是一组用于定位和识别的样本点。给定训练的地面真值定位和识别目标,RepPoints学习以限定对象空间范围并指示语义上重要的局部区域的方式自动排列自己。此外,它们不需要使用锚来采样边界框空间。结果表明,基于RepPoints的无锚目标检测方法与现有的基于锚的检测方法一样,在COCO测试dev检测基准上,使用ResNet-101模型,具有46.5ap和67.4的检测效率。
目前,Bounding Box(即包含物体的一个紧致矩形框)几乎主导了计算机视觉中对于物体的表示,其广泛流行得益于它简便且方便物体特征提取的特点,但另一方面也限制了对物体更精细的定位和特征提取。
研究者们提出了一种新的视觉物体表示方法,称作 RepPoints(representative points,代表性点集),这种方法能更精细地描述物体的几何位置和进行图像特征的提取,同时也兼有简便和方便特征提取的特点。利用这种表示,很自然能得到一个 anchor-free 的物体检测框架,取得了和目前 anchor-based 方法可比的性能。
动机
在目标检测任务中,边界框描述了目标检测器各阶段的目标位置。
虽然边界框便于计算,但它们仅提供目标的粗略定位,并不完全拟合目标的形状和姿态。因此,从边界框的规则单元格中提取的特征可能会受到背景内容或前景区域的无效信息的严重影响。这可能导致特征质量降低,从而降低了目标检测的分类性能。
本文提出一种新的表示方法,称为 RepPoints,它提供了更细粒度的定位和更方便的分类。
如图所示,RepPoints 是一组点,通过学习自适应地将自己置于目标之上,该方式限定了目标的空间范围,并且表示具有重要语义信息的局部区域。
RepPoints 的训练由目标定位和识别共同驱动的,因此,RepPoints 与 ground-truth 的边界框紧密相关,并引导检测器正确地分类目标。
Bounding Box Representation
边界框是一个4维表示,编码目标的空间位置,即
x,y 表示中心点, w,h 表示宽度和高度。
由于其使用简单方便,现代目标检测器严重依赖于边界框来表示检测 pipeline 中各个阶段的对象。
性能最优的目标检测器通常遵循一个 multi-stage 的识别范式,其中目标定位是逐步细化的。其中,目标表示的角色如下:
RepPoints
如前所述,4维边界框是目标位置的一个粗略表示。边界框表示只考虑目标的矩形空间范围,不考虑形状、姿态和语义上重要的局部区域的位置,这些可用于更好的定位和更好的目标特征提取。
为了克服上述限制,RepPoints 转而对一组自适应样本点进行建模:
其中 n 为表示中使用的样本点的总数。在这项工作中, n 默认设置为 9。
Learning RepPoints
RepPoints 的学习是由目标定位损失和目标识别损失共同驱动的。为了计算目标定位损失,首先用一个转换函数
将 RepPoints 转换为伪框 (pseudo box)。然后,计算转换后的伪框与 ground truth 边界框之间的差异。
RPDet
作者设计了一种不使用 anchor 的对象检测器,它利用 RepPoints 代替边界框作为目标的基本表示。
目标表示的演化过程如下:
RepPoints Detector (RPDet) 由两个基于可变形卷积的识别阶段构成,如图所示。
可变形卷积与 RepPoints 很好地结合在一起,因为它的卷积是在一组不规则分布的采样点上计算的,另外,它的分类可以指导训练这些点的定位。
上图的第一个偏移量通过对角点监督学习得到,第二个偏移量在前一个偏移量的基础上通过分类监督学习得到。
从另一个角度来理解RepPoints:
可形变卷积通过最后的分类分支和回归分支的监督,自适应的关注到合适的特征位置,提取更好的特征,但是我一直没想明白的是可形变卷积真的能够关注到合适的特征位置吗,可形变卷积的偏移量学习是非常自由的,可能会跑到远离目标的位置,那么这些特征真的是有帮助的吗,这些问题一直困扰着我,我觉得可形变卷积的中间过程太模糊了,太不直接了,是难以解释的。而RepPoints通过定位和分类的监督信号来直接监督偏移量的学习,这样偏移量不就有可解释性了吗,偏移的位置使得定位和分类更加准确(即偏移的位置可定位目标并且语义信息可识别目标),这样偏移量就不会乱跑了,而且是可解释的。
从这个角度来想,RepPoints其实是对可形变卷积进一步的改进,相比可形变卷积有两个优点:
1.通过定位和分类的直接监督来学习可形变卷积的偏移量,使得偏移量具有可解释性。
2.可以通过采样点来直接生成伪框 (pseudo box),不需要另外学习边界框,并且分类和定位有联系。
参考文献
[1] 《Deformable Convolutional Networks》
[2] 《Deformable ConvNets v2: More Deformable, Better Results》
[3] 《RepPoints: Point Set Representation for Object Detection》
[4] 《孔涛:Deformable ConvNets v2 paper reading》
[5]《北大、清华、微软联合提出RepPoints,比边界框更好用的目标检测方法》