目标检测|新的目标表示方法RepPoints

论文相关信息

1.论文题目:RepPoints: Point Set Representation for Object Detection

2.发表时间:ICCV 2019

3.文献地址:http://openaccess.thecvf.com/content_ICCV_2019/html/Yang_RepPoints_Point_Set_Representation_for_Object_Detection_ICCV_2019_paper.html

4.论文源码:https://github.com/microsoft/RepPoints

创新:新的目标表示方法RepPoints,基于此表示方法提出了新的检测网络

摘要

现代目标检测器严重依赖于矩形边框来在不同的stage表征物体,如anchor,proposals以及最终的预测。边框使用起来很方便,但是边框只是较粗略的物体定位,进而提取的也是较粗略的物体特征。于是这篇文章抛弃了边框,提出RepPoint(representative points代表点)作为物体的更好的代表,即使用一些样本点来做定位和预测。给定物体的位置和类别,RepPoints会自动学习这些点的分布以限制一个物体的空间范围和表示语义上重要的局部区域。RepPoints这样的基于anchor-free 的检测器能够取得和当前SOTA的基于anchor的检测器一样的性能。COCO test-dev上其精度为46.5 AP , 67.4 AP50,骨干网使用的是ResNet-101。

1. 介绍

目标检测中边框的流行可归因于两点。一是它所有的评估指标比较通用,表示了预测和物体间的重叠度;二是它计算较容易,容易划分池化的集合。但是其缺点前面也提到了,就是它划定的空间是粗略的(coarse),不能很好的贴合实际物体的形状,因此其检测性能会很容易受到背景内容以及无意义的前景区域的影响,从而使提取的特征质量和检测性能下降。

这篇文章提出的RepPoints,也就是利用n个点来包围物体以及标识一些有重要语义特征的区域(如图1所示),其训练是同时受目标位置和识别对象所驱动。RepPoints是自顶向下地从输入图片或目标特征学习,能够端到端的训练,属于two-stage家族,无需额外的监督就能预测位置精准的预测。

在这里插入图片描述

图1. RepPoints是目标检测的一种新的目标表示,由一些点组成,这些点表示了物体空间的范围以及一些语义重要的局部区域。这种表示通过真实框的若定位监督和隐式的识别反馈来学习得到。本文基于这种丰富的RepPoints表示发展了一种anchor-free的检测器,这种检测器的性能比使用边框来表示的检测器更好。

2. 相关工作

边框在目标检测问题中的应用:边框现在是目标检测领域中表示物体的主流形式,其流行的原因之一是边框方便标准,没有歧义,且为子识别任务提供了足够的位置精度。所以当前的主流benchmarks都是基于边框来标准和评估的,这也进而推动了目标检测算法使用边框作为基本的表示。原因二是因为很多的特征提取器是使用带有规则格子的patch作为输入,所以使用边框的话提取很方便。虽然RepPoints是不规则的,但是也能方便地提取特征,它与可变性卷积相结合起来,从几个采样点的输入特征中聚合信息。并且,RepPoints也可以生成伪框,使得表示能够用在benchmark上。

现代目标检测器中的边框:目前最先进的目标检测器都是多阶段的,并且在每个阶段都有边框的身影。RepPoints可以替代每个阶段的边框表示,得到更高效的检测器。特别注意的是,anchor被中心点所替代,中心点是RepPoints中的特殊配置。 建议框和最终定位目标被RepPoints建议和最终目标替代。由于使用了中心点作为初始目标的表示,得到的检测器是anchor-free的,甚至比基于anchor的检测器更方便。

其他目标检测的表示:有bottom-up和top-down两种方式的表示。bottom-up的有CornerNet和ExtremeNet这样的,他们都需要在确定点之后给关键点分组,即有额外的后处理操作。top-down 的则有RepPoints。

目标识别中的可变性建模:视觉识别的一大挑战是识别形状各异的物体,为了建模适应这种变化,已有的工作有自上而下的可变性建模方法DCN(Deformable convolutional
networks),RepPoints和其的主要区别在于RepPoints除了能够提取语义特征外,还能够得到更加灵活的且位置精准的目标表示。与之成对比的是, deformable convolution 和 deformable RoI pooling都只是为了提高特征提取性能。,而无法得到准确的几何定位。

3. RepPoints表示

3.1 边框表示

之前边框回归时学习对象是预测的边框和真实边框之间的距离,通过训练得到4个参数来回归预测边框,使得回归后的边框和真实边框尽可能接近。但是这种方式在初始表示和真实框的距离比较远时表现很差,而且四个参数见中心位置的偏移和宽高的偏移的尺度差异很大,需要设置不同的损失权重。

3.2 RepPoints

边框采用的是一个4维向量来粗略表示是目标位置,忽略了一些重要语义区域的形状、姿势和位置,为了克服以上限制,RepPoints提出了以一个采样点集合来替代4维向量建模:

R = { ( x k , y k ) } k = 1 n R=\left\{(x_k,y_k)\right\}_{k=1}^n R={ (xk,yk)}k=1n, (4)

其中n是用于表示的总采样点数,文章中n默认为9。

RepPoints refinement:RepPoints的精炼可以被简单的表示如下:
R r = { ( x k + Δ x k , y k + Δ y k ) } k = 1 n R_r=\left\{(x_k+\Delta x_k,y_k+\Delta y_k)\right\}_{k=1}^n Rr={ (xk+Δxk,yk+Δyk)}k=1n, (5)

其中 { Δ x k , Δ y k } k = 1 n \left\{\Delta x_k,\Delta y_k\right\}_{k=1}^n { Δxk,Δyk}k=1n是新采样点相对于旧采样点的偏移。这种精炼不会遇到边框回归参数的尺度差异的问题,因为RepPoints精炼的过程种所有偏移都在同一尺度。

将RepPoints转换为边框:在训练时需要利用边框形式的标注,此外评估时也需要将预测转为边框形式,因此需要一种将RepPoints转为边框的方法。这里通过一种预定义的函数 T \mathcal{T} T来实现这个转换: R p → B p R_p \to B_p RpBp, R p R_p Rp指代的是物体P的RepPoints, T ( R p ) \mathcal{T(R_p)} T(Rp)指代的是一个伪边框。

有三种转换函数能够实现这个目的:

T = T 1 \mathcal{T}=\mathcal{T_1} T=T1:Min-max函数。
…具体如下图
在这里插入图片描述

学习RepPoints:RepPoints的学习同时目标位置损失和目标识别损失驱动。为了计算目标位置损失,首先需要通过上一步的转换函数将RepPoints转换为伪边框,然后计算伪边框和真实框的差异,这里适用的是smooth l 1 l_1 l1来计算左上角和右下角的距离,但是不需要调整损失的权重。图4显示了训练同时受目标位置和目标识别损失驱动时,物体的极点和语义关键点就能自动学习

4. RPDet: 一个anchor-free的检测器

作者设计了一个anchor-free的检测器,其整体架构见图2,适用RepPoints替代了边框作为基础的表示。在多阶段的检测流中,目标表示的演变过程如下:
在这里插入图片描述

RepPoints Detector (RPDet)由两个基于可变性卷积的识别阶段构成,如图2所示。可变性卷积是基于不规则分布的采样点计算的,并且其识别反馈能反过来知道这些点的位置的训练,因此能够和RepPoints很好的配合。

在这里插入图片描述

图2.RPDet的整体图。该检测器采用FPN作为骨干网,为了清楚表示,只画了一个尺度的特征图。所有尺度的特征图共享后面的网络架构并且有着一样的参数。

基于中心点的目标初始化表示:中心点表示的好处在于其假设空间小,比起基于anchor的方法需要大量不同尺度和比例的anchor来覆盖很大的4维假设空间,中心点的2维假设空间很容易覆盖。其缺点在于两个不同的物体的中心位于同一特征图的同一位置时会出现目标模糊问题,这限制了其发展。RPDet通过FPN结构极大的缓解了这一问题,首先,中心点在同一位置的不同尺度的物体会被分配到不同的特征层上,其次,FPN有着高分辨率,这也降低了两个物体中心处于同一特征点的概率。此外,作者观察到实际种中,COCO数据集只有1.1%物体在使用FPN后还存在中心点重叠的问题。

中心点可以视为RepPoints的特殊配置,其中只有一个固定的采样点被使用,从而整个检测框架可以维持一致的表示方式。

RepPoints的使用:RepPoints在整个检测系统中充当着基本的物体表示。起初是中心点,然后第一个RepPoints集合通过在中心点上的回归得到。RepPoints的学习受两点驱动:1)伪框和真实框左上角和右下角的距离损失;2)下一阶段的目标识别损失。

如图4所示,极点和关键点会自动的学习。

在这里插入图片描述

图4.学习到的RepPoints和生成的边框的示意图。总体而言,学习到的RepPoints位于物体的极点和语义关键点上。

第二个RepPoints集合表示的是最终的目标定位,由上面提到的等式5精炼得到。

Backbone 和 head architectures :这里采用的骨干网和RetinaNet一样,生成5个特征图(stage3-7,下采样8倍到128倍)。其中head网络架构如图3所示。

在这里插入图片描述

图3.RPDet的head网络。

其head网络有两个非共享的子网络,即定位网络和分类网络。其中定位网络在3个卷积之后跟着两个连续的小网络用于计算两个RepPoints集合的偏移。分类网络在三个卷积层之后应用一个可变性卷积,它同时把一阶段的偏移作为输入。在每个分支的前三个256通道的3×3卷积后都应用了组卷积(ground normalization)。

虽然网络使用了two stage的定位,但是它甚至比one stage 的RetinaNet更高效。

Localization/class target assignment。有两个定位阶段:从目标中心点假设精炼得到第一个RepPoints集合;从第一个RepPoints集合精炼得到第二个RepPoints集合。在两个阶段中,都只有正的目标假设(positive object hypothesis)会被分配定位对象来训练。对于第一个定位阶段,如果满足以下两个条件,纳闷这个特征图格子(bin)为positive:1)如果这个特征图格子的金字塔level等于真实物体的log尺寸,即 s ( B ) = ⌊ l o g 2 ( w B h B / 4 ) ⌋ s(B)=\left \lfloor log_2(\sqrt{w_Bh_B}/4)\right \rfloor s(B)=log2(wBhB /4);2)该真实物体的中心在这个特征图上的映射位于这个bin内。第二个定位阶段,如果第一个阶段得到的RepPoints生成的伪框和真实框的IoU大于0.5则为正(positive)。

分类只在第一个RepPoints上之上执行,分类的标准也和RetinaNet一样,IoU大于0.5为positive,小于0.4表示背景,其它的则忽略。此外,还使用了RetinaNet作为分类的训练。

5. 实验

实验的设置

实验是基于MS-COCO数据集,SOTA比较在test-dev集合进行。训练时,使用的SGD,4个GPUs,8张图片每个minibatch,2张图片每个GPU。采用了ImageNet预训练模型来初始化,学习率方案使用的是“1x”设置。还有随机水平图片反正的数据增强。推断时,和RetinaNet一样使用NMS(\sigma=0.5)做后处理。

消融实验

在这里插入图片描述

表1.边框表示和RepPoints表示的消融实验。除了表示方式不同,其余都相同。

在这里插入图片描述

表2.监督资源的消融学习。
在这里插入图片描述

表3.不同初始目标表示的消融实验。

在这里插入图片描述

表4.RPDet与其他基于anchor的和anchor-free(YOLO-like)方法的比较。

在这里插入图片描述

表5.将RepPoints变换到伪边框的不同方法消融实验。

在这里插入图片描述

表6.应用deformable RoI pooling。

State-of-the-art Comparison

RPDet与sota检测器在MS COCO的test dev上的比较。
在这里插入图片描述

表7.RPDet和当前SOTA检测器的比较。ms指代多尺度。可见RPDet的AP50相对很高。

结论

文章提出了一种新的目标表示方法RepPoints,这种表示方法能够得到精确的位置信息并标记重要的语义区域,基于这种表示方法作者提出一种新的检测器RPDet,文章指出未来更加语义丰富和自然的目标表示方法是一个充满前景的研究方向。

猜你喜欢

转载自blog.csdn.net/yanghao201607030101/article/details/112547864