anchor free 目标检测_目标检测之anchor-free类

这部分包括了三篇文章,即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
x是input feature map,y是output~~,Pn是kernel中的位置的枚举,Pn∈{(-1,-1),(-1,0),(-1,1)......(1,-1),(1,0),(1,1)},W(Pn)是Pn位置处的权值,△Pn是每一个位置的偏置,{△Pn | n=1...N},N是kernal的面积

ec8408674a65fada19569d56c523515f.png
x(P0+Pn+△Pn)可以通过上述的双线性插值来计算

4fb0e38bac1e17231770efdfd4e2f2d8.png
G(. , .)是双线性,二维的可以继续拆分计算

(2).后向传播(back propagation)

4976ce157efb18dc0d58a44fb6c00d5e.png
偏置△Pn的梯度

如下图所示,△Pn可以通过一个卷积层来得到,如下图所示:

8a06d1df7ba36ea00aead90680cd29e6.png
上方分支就是通过一个卷积层来学习偏置,此时通道数为2N(有N个2维偏置,故为2N)

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
标准卷积核可变形卷积的比较

如上图所见,标准卷积中的可接收域和采样位置都是固定的;而在可变形卷积中,可接受域和采样的位置都可以根据目标的尺寸的形状进行调整。

下面这张图就可以展示这种方法的优缺点:

06a0ea2d3efc058c0cbe4833c73b43ea.png
检测背景 检测小物体 检测大物体

如上图所示,虽然可变形卷积在采样物体特征的时候,确实可接受域及采样位置都根据目标的形状的大小发生了变化,但是这种方法容易被背景和没有信息的一些前景信息所干扰,这个问题的来源就是因为offset的训练没有额外的监督,导致在训练过程中,我们不知道这种偏置是否向着正确的方向进行。

二、Deformable conv v2:More Deformable,Better Results

有了deformable conv v1之后,有位作者就将v1的结果可视化了(the PASCAL visual object classes challenge),然后呢他就发现,虽然v1加了偏置之后,确实发现采样点聚集在目标周围了,但是,这种聚集并不精确,容易包含目标之外的信息。如下图所示:

22b93d7143ea8e78784efa7290b92b0a.png
左侧为检测小物体,中间是大物体,右侧是检测背景

因为CNN网络缺少内部机制处理几何变换的问题,所以提出DCN v1,又因为offset没有约束,所以提出DCN v2。

1)可变形卷积v2的理论知识:

(1)前向传播

1cb09a522c9c8cef2750d627c747e09b.png
p是输出特征图上的任一个位置,k=9,Pk∈{(-1,1),(-1,0),(-1,1)......(1,-1),(1,0),(1,1)},△Pk是可学习的偏置,△mk是第k个位置的权重,△mk∈[0,1],是个标量,相同地,x(p+pk+△Pk)可以通过插值法进行计算

△Pk和△mk都是可以通过一个单独的卷积层和输入特征图x进行卷积来得到,输出的特征图是3K通道的,前2K通道是和△Pk相关的,最后1k通道再通过一个sigmiod层后才得到△mk。

(2)后向传播

e3a4dba5529c2bc3a691075003b9338f.png

后向传播和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
右侧faster RCNN 左侧 RCNN

在上图中,右侧分支就是用于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
如上图,直接根据特征点生成伪框,不需要另外学习边界框,并且分类和定位有联系。其次,通过定位和分类的直接监督来学习可形变卷积的偏移量,使得偏移量具有可解释性且定位更准确。

RepPoints是一组点,如下定义:

a0bf907925f2c70fbed84983195787f8.png

RepPoints的提炼:

45a6d49adb4724c7e7b86171f4474674.png
其中△xk,△yk是新点到旧点的偏置

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

定位部分(locate subnet)先是采用3个3x3 256维的可变形卷积(DCN),然后分为两个小网络去计算两个RepPoints的偏置。

分类部分(class subnet)也是先采用3个3x3 256维的可变形卷积,然后再与offset1一同经过一个3x3 256维的可变形卷积,最后接一个组归一化层,即1x1 的可变形卷积层。

现下介绍RPDet的整体网络架构:

01c1f6ceb71d4544c07fe6d7aa55317f.png

分类的标准:伪框(pseudo box)和ground-truth bounding box之间的交并比IOU,IOU大于0.5,则为positive,小于0.4为背景,其他的忽略。

定位分为两个阶段:其一是从假设的物体中心点中产生第一系列的RepPoints;其二就是从第一代中精炼出第二代RepPoints。,两个阶段中,只有positive的目标假设才能用来定位。

(第一阶段如何才能得到positive?) (第二阶段如何才能得到positive)论文有写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值