目标检测论文阅读:RepPoints(Anchor Free)

目标检测论文阅读:RepPoints

论文链接:https://arxiv.org/abs/1904.11490
代码链接:https://github.com/microsoft/RepPoints
这周来看一下anchor free领域的一个比较新的算法reppoints,ICCV 2019的文章。这篇文章漂亮的地方在于对deformable卷积的有趣应用。而且虽然是基于points检测的,但是完全没有像cornernet或者extremenet一样有points之间的匹配问题。

1. Background

之前我在我前两篇博客里总结了两种截然不同的anchor free思路,这两种思路面临的问题其实是不一样的。基于keypoints的往往在图像中检测关键点,然后对关键点进行匹配和组合;而基于segmentations的,往往在每个位置预测一个box,然后通过centerness或者fovea机制等抑制掉离中心区域较远的不准确的点。
Reppints其实可以看做这两种思路的结合。它确确实实在feature map的每个location位置,以该location做为中心,去预测一个box,但是它预测的不是类似FCOS那样的到box四个边界的距离,而是预测的一系列reppoints,然后通过把这些点映射为box得到最终的结果。

2. Method

Reppoints

文章默认的思路是预测9个reppoints点。在每个location位置处,网络都会预测9对偏移量,对应下面公式:
在这里插入图片描述
通过location的位置和网络学习出来的9组偏移量,我们可以得到9个一组的reppoints点。而在每个location位置处产生相对偏移,这个和deformable卷积非常相似,这也是这篇文章很重要的一个Motivation。
在这里我们需要面临两个问题,一是如何把reppoints转化为box来衡量检测结果和gt的差异,这里作者给出了几种不同的思路:

  • Min-max function:在所有点中找最小和最大值,获得囊括所有点的外接框
  • Partial min-max function:选取部分点进行上述操作
  • Moment-based function:求出所有点的均值和方差,通过另外两个全局学习的系数将均值和方差还原为box

实验可以发现,这三种思路得到的结果差异比较小(在0.1%内),作者通过得到box和gt的top-left与bottom-right之间的smooth l1误差来监督。这里有一个问题,就是用9个reppoints点去还原一个box看起来绰绰有余,理论上我们甚至用两个点就可以还原出一个box了,这里学习9个点有什么用意吗?
作者给出的解释是,学习9个点,然后去计算Box更精准。在这个无监督的过程中,他发现这9个点经常落在extremepoints或者对语义表达很有帮助的地方(如下图所示)。
在这里插入图片描述

Init object representation

可以发现,其实这个检测思路和FCOS和YOLO等有一点点像,都是把每个位置作为中心点。作者认为,这种anchor free和传统的anchor based的差异在于,后者的搜索空间是4d的(额外引入大量ratio和scale),而过于庞大的搜索空间其实存在冗余,anchor free的搜索空间其实是2d的,而且已经完全足够。
这里涉及到一个问题,那就是怎么样确定每个location的正负值,也就是YOLO当中怎么样根据object的中心把object分配到不同location的问题,主要问题就是两个box可能落在一个,不好解决。作者给出的解决思路是FPN。理由包括:1、FPN的多尺度可以把同一个位置但是尺度不同的物体区别开来 2、FPN的高分辨率的层比较大,减少了两个物体落在一个Location的概率。作者给出的结果是,使用FPN之后大概只有1.1%的目标会遇到这个问题,如果真的遇到作者是随机分配的。

Networks与target assignment

作者采用的是两次回归的方法。从下面两图就可以看出,是先预测一组offset1得到reppoints1,然后还会进行第二阶段,预测offset2得到第二组结果。
在这里插入图片描述
在这里插入图片描述
在第一阶段,只有gt的大小满足对应的pyramid level,且gt的中心点落在对应的location的时候,这个location才是正例。而在第二阶段,只有iou大于0.5的那些points才会被当作正例。分类损失只在第一阶段计算。大于0.5的是正例,小于0.4的是负例。
值得一提的是,虽然也是两个阶段回归了两次,但是这个网络的GFLOPS甚至比Retianet更高效。附加的第二阶段只是增加了两个卷积层,引起的额外计算量非常非常小。

3. Results

最后,来看一下算法的结果,可以看到结果还是很棒的。个人认为,这篇文章对deformable的挖掘很亮眼,文章中也有专门探讨这种思路和deformable卷积的异同。这篇文章写得还是蛮清楚的,包括对anchor free方法的2d搜索空间解释,以及location的安排,也有数据支撑,感兴趣的可以看一看。
在这里插入图片描述

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值