这部分包括了三篇文章,即Deformable conv v1,Deformable conv v2和RepPoint三篇文章。
1.Deformable convolutional Networks.(2017)
2.Deformable ConvNets v2:More Deformable,Better Results(2018).
3.RepPoints:Point Set Representation for Object Detection (2019).
一、Deformable conv v1
1、可变形卷积的理论知识
视觉识别中,同一个目标可能会存在在尺寸,姿势或视角上的集合变化,但是这些小小的变化对于目标的识别来说,也是一个极大的挑战。解决这个问题主要有两种方法:1)扩大数据集,让数据集中包含足够多变化的样本集,代价就是增大计算量和计算参数;2)使用不变变换的特征和算法,比如SIFT(尺寸不变性)和基于目标检测的滑动窗。缺点就是难设计且在复杂变换的情况之下难以实行。
虽然CNN网络在目标识别方向也取得了很大的进展,但是,在目标的几何变化问题上也是存在很大的问题的,这个问题来源于在卷积单元是以固定的大小在特征图上进行采样的,且池化层也是一固定的比率降低特征图的空间分辨率的。CNN网络内部就缺少了内部机制去处理几何变换这个问题,由此,Deformable convolution和Deformable ROI pooling就被提出来了。
可变形卷积(Deformable convolution):
(1).前向传播(forward propagation)
![6746e0b560fd32d2294ba3cbebd63d78.png](https://i-blog.csdnimg.cn/blog_migrate/5842e778a7b474be72a72ad154f0d797.png)
![ec8408674a65fada19569d56c523515f.png](https://i-blog.csdnimg.cn/blog_migrate/194d9e6a3ca4a743222eb1c31eb98bcf.png)
![4fb0e38bac1e17231770efdfd4e2f2d8.png](https://i-blog.csdnimg.cn/blog_migrate/9b16df1e88388b57876e6bff9b5a823d.png)
(2).后向传播(back propagation)
![4976ce157efb18dc0d58a44fb6c00d5e.png](https://i-blog.csdnimg.cn/blog_migrate/d810bbfb898ca68189c92c8e3ecd832b.png)
如下图所示,△Pn可以通过一个卷积层来得到,如下图所示:
![8a06d1df7ba36ea00aead90680cd29e6.png](https://i-blog.csdnimg.cn/blog_migrate/9211dc15dca04497053ab103c19888cc.jpeg)
2、可变形卷积的应用:Deformable ConvNets
DCN用于提取特征:文中采用了两种最优的网络结构,一则为RestNet-101和Aligned-Inception-ResNet。这两个网络结构都有几个卷积块,一个平均池化层和一个全连接层。将平均池化层和全连接层都去掉,最后用一个1x1的卷积层将通道数降为1024。同时,最后一个卷积块(stage 5)将分辨率增加为为原特征图的1/16,即在stage5中conv5的stride=1,同时stage5中的所有卷积中dilation=2。ResNet-101的架构同ResNet-18的类似,在先前就介绍过,这部分就不做多的介绍了。那么可变形卷积是如何加载ResNet-101中呢,本文是将deformable conv替代在stage5中三个标准卷积,一共也就三个层使用了可变形卷积。
DCN用于分割和检测网络:在上一步用DCN提取特征的输出特征图上再进行特定的操作。比如语义分割中的Deeplab,Faster R-CNN。
3、如何理解Deformable ConvNets
![45c6a6f0f23033d16f564c463bf39798.png](https://i-blog.csdnimg.cn/blog_migrate/3a07380cdb4592e14850c4504eca8843.jpeg)
如上图所见,标准卷积中的可接收域和采样位置都是固定的;而在可变形卷积中,可接受域和采样的位置都可以根据目标的尺寸的形状进行调整。
下面这张图就可以展示这种方法的优缺点:
![06a0ea2d3efc058c0cbe4833c73b43ea.png](https://i-blog.csdnimg.cn/blog_migrate/8f4741a7e644e623ca98b87502204ac3.jpeg)
如上图所示,虽然可变形卷积在采样物体特征的时候,确实可接受域及采样位置都根据目标的形状的大小发生了变化,但是这种方法容易被背景和没有信息的一些前景信息所干扰,这个问题的来源就是因为offset的训练没有额外的监督,导致在训练过程中,我们不知道这种偏置是否向着正确的方向进行。
二、Deformable conv v2:More Deformable,Better Results
有了deformable conv v1之后,有位作者就将v1的结果可视化了(the PASCAL visual object classes challenge),然后呢他就发现,虽然v1加了偏置之后,确实发现采样点聚集在目标周围了,但是,这种聚集并不精确,容易包含目标之外的信息。如下图所示:
![22b93d7143ea8e78784efa7290b92b0a.png](https://i-blog.csdnimg.cn/blog_migrate/76ec08e74abaf67fc77d331e8be6c3eb.jpeg)
因为CNN网络缺少内部机制处理几何变换的问题,所以提出DCN v1,又因为offset没有约束,所以提出DCN v2。
1)可变形卷积v2的理论知识:
(1)前向传播
![1cb09a522c9c8cef2750d627c747e09b.png](https://i-blog.csdnimg.cn/blog_migrate/d000f4935706047c8cfc90460618f4cd.png)
△Pk和△mk都是可以通过一个单独的卷积层和输入特征图x进行卷积来得到,输出的特征图是3K通道的,前2K通道是和△Pk相关的,最后1k通道再通过一个sigmiod层后才得到△mk。
(2)后向传播
![e3a4dba5529c2bc3a691075003b9338f.png](https://i-blog.csdnimg.cn/blog_migrate/c918ce64c4205e46dd5650a8e29c18b7.jpeg)
后向传播和v1的是类似的,不过是多加了一个△mk.
2)Deformable conv v2的应用
由DCN v1可视化结果知道,可接受域容易被不相干的信息所干扰,作者为了解决这个问题,加强DCN 的modeling power,提出了两种方法:
(1).堆叠更多的DCN网络。
对于ResNet-50网络而言,将stage3~5中所有3x3卷积层全部用DCV v2可变形卷积,一共就有12层可变形卷积层,比DCN v1中的3层多了4倍之多。当然,对于PASCAL VOC这样简单且尺寸小的数据集而言,3个可变形卷积层就足够满足,但是对于COCO这样的数据集,在stage3~5中使用DCN v2才能达到比较好的效果。
(2).增加调制机制,即△mk。
为了减少 不相干区域信息的影响,我们就想办法消除这些区域。通过学习 weight, 我们可以让这些区域的 weight 变得比较小。
feature mimicking:消除不相干信息的干扰
在可视化ConvNet 和Deformable ConvNet的过程中,可以知道每个ROI分类节点的误差边界显著区域都会延伸到ROI(Region of Interst)区域外。为了消除掉那些ROI之外的区域,作者提出了R-CNN中的feature mimicking(特征模拟)。具体如下图所示:
![90153b02cd1fbd94fa8343bb586b0df8.png](https://i-blog.csdnimg.cn/blog_migrate/15432f47015d56a85af12940cdaae34b.jpeg)
在上图中,右侧分支就是用于feature mimicking,因为它的输入已经是Crop$Resize过的了,所以已经消除掉不少背景信息了,然后我们让左侧faster-RCNN学习到的特征和右侧学习到的特征尽可能靠近,就可以在一定程度上消除irrelevant信息的影响。所以这也算给offset加了监督。
三、RepPoints:Point Set Representation for Object Detection
DCN v1,v2是将固定形状的卷积变成加了偏置的无固定形状的卷积,在几何变换上取得了很大的成功,同理,目标检测中的锚框是否可以变成没有矩形限制的点的集合,这篇文章就是将anchor box变成RepPoints。
1)RepPoints的理论知识
在目标检测中,都是利用矩阵边界框来对目标进行定位的。虽然这种方法简单易用,但是也容易被背景或是不含信息的前景信息所影响,而且矩阵边界框也会丢失掉目标姿态和形状的一些信息。
为了解决矩形边界框的种种问题,就提出了RepPoints方法,比起采用边界框来定位目标,本文采用的是一系列点(9个点)来定位目标,它可以提供更加精细的定位来促进分类。如下图所示:
![c869862f1c79dd1e22847ac7ba88a186.png](https://i-blog.csdnimg.cn/blog_migrate/cecd063f2e7ea26e2911e2aec9292835.png)
RepPoints是一组点,如下定义:
![a0bf907925f2c70fbed84983195787f8.png](https://i-blog.csdnimg.cn/blog_migrate/3546e792a0bf8bb911d888c4b0f25dab.png)
RepPoints的提炼:
![45a6d49adb4724c7e7b86171f4474674.png](https://i-blog.csdnimg.cn/blog_migrate/51090266401e2adfbcf6400a7038cd96.png)
RepPoints中的偏置的优点就是在提炼过程中的scale是一致的。
RepPoints的损失函数是由目标定位误差加上目标识别误差。其中,为了计算目标定位误差,先将RepPoints转化成一个伪框(首先定义了一个转换功能T:Rp--->Bp。其中Rp是目标p的RepPoints,Bp=T(Rp)就是伪框。),然后计算伪框和ground-truth之间的差值,这个差值就是目标定位的误差。
2)RepPoints的应用:RPDet
RPDet(RepPoint Detector)的主要框架使用的是FPN,FPN的架构如下所示:
![5b875711c9178e8ffc013b6dc88540f6.png](https://i-blog.csdnimg.cn/blog_migrate/029682f01e556ad0311f7fb27269b7c3.png)
定位部分(locate subnet)先是采用3个3x3 256维的可变形卷积(DCN),然后分为两个小网络去计算两个RepPoints的偏置。
分类部分(class subnet)也是先采用3个3x3 256维的可变形卷积,然后再与offset1一同经过一个3x3 256维的可变形卷积,最后接一个组归一化层,即1x1 的可变形卷积层。
现下介绍RPDet的整体网络架构:
![01c1f6ceb71d4544c07fe6d7aa55317f.png](https://i-blog.csdnimg.cn/blog_migrate/c5d491e5d94aace8065389cf59f9e554.jpeg)
分类的标准:伪框(pseudo box)和ground-truth bounding box之间的交并比IOU,IOU大于0.5,则为positive,小于0.4为背景,其他的忽略。
定位分为两个阶段:其一是从假设的物体中心点中产生第一系列的RepPoints;其二就是从第一代中精炼出第二代RepPoints。,两个阶段中,只有positive的目标假设才能用来定位。
(第一阶段如何才能得到positive?) (第二阶段如何才能得到positive)论文有写。