博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【论文笔记】:RepPoints: Point Set Representation for Object Detection
阅读量:3904 次
发布时间:2019-05-23

本文共 2595 字,大约阅读时间需要 8 分钟。

&Title:

&Summary

提出了一种新的表示形式,称为RepPoints,它提供了更细粒度的定位并有助于分类。 如图所示,RepPoints是一组点,这些点学会以一种限定对象空间范围并指示语义上重要的局部区域的方式自适应地将自己定位在目标上。 RepPoint的训练是由目标定位和识别目标共同驱动的,因此RepPoint被地面真相边界框紧密约束,并引导检测器进行正确的对象分类。 可以在现代物体检测器的不同阶段上连贯地使用这种自适应和可区分的表示形式,并且不需要使用锚点在包围盒的空间上进行采样。

在这里插入图片描述
RepPoints利用DCN提取到了目标本身的多个关键点,文中选取了9个可以自适应“跳动”的采样点(初始采样点应该就是3x3卷积的9个采样点??),由分类和定位统一做监督,使得这些点更好的包含语义信息,来识别,最终定位一个目标。

&Research Objective

anchor-free + DCN取点预测

&Problem Statement

  • 之前的可变性卷积难以解释,偏移量的学习自由

  • anchor-base存在的问题:难以调参、正负样本均衡问题。

&Method(s)

提出了RPDet,整体网络结构,如下图所示,RepPoint充当整个检测系统的基本对象表示。 从中心点开始,通过回归中心点的偏移量可以获得第一组RepPoint。 这些RepPoint的学习是由两个目标驱动的:

  • 诱导伪框和地面真相边界框之间的左上和右下点距离损失;

  • 后续阶段的目标识别损失。

在这里插入图片描述

在这里插入图片描述
第二组RepPoints代表最终的目标回归,它由从第一组RepPoints从公式5中细化。仅由点距离损失(points distance loss)驱动,第二组RepPoint旨在学习更好的对象定位。

头的体系结构如下图所示。有两个非共享子网,分别针对回归(生成RepPoints)和分类。 回归子网首先应用三个256-d 3×3转换层,然后再应用两个连续的小型网络来计算两组RepPoint的偏移量。 分类子网还应用了三个256-d 3×3的conv层,然后是256-d 3×3的可变形conv层,其输入偏移字段与回归子网络中的第一个可变形conv层共享。 在两个子网中的前三个256-d 3×3 conv层中的每一个之后,应用组归一化层。

在这里插入图片描述
由上图可以看出来,分类只做一次,回归做两次,所以可以理解为1.5阶段咯??
其中第一次分类和回归的时候共享offset。

&Evaluation

  • RepPoint表示 和 bounding box表示对比实验结果:
    在这里插入图片描述
  • 监督信号的消融实验结果:
    在这里插入图片描述
  • 单个锚点和中心点作为初始对象表示的对比实验结果:
    在这里插入图片描述
  • 与基于锚点的一阶段和无锚点的一阶段对比实验结果:
    在这里插入图片描述
  • 添加可形变池化的对比实验:
    在这里插入图片描述
  • 最终实验对比结果:
    在这里插入图片描述

&Conclusion

提出了RepPoints,这是一种用于对象检测的表示形式,可以对细粒度的本地化信息进行建模,并标识出对对象分类有意义的局部区域。基于RepPoints,开发了一种称为RPDet的物体检测器,无需锚点即可实现具有竞争力的物体检测性能。

RepPoints算是一种更“高级”的“key point based”的检测方法。 用传统的人体关键点检测的想法直接套用到目标检测其实是不那么合理。比如公交车、火车等目标,并没有像人体那样显著的关键点。对于不显著的关键点也是仅仅对于我们肉眼可以看到识别的,但对于计算机来说就不一定了。所以RepPoints通过学习找到各个目标的特殊的关键点,来进行识别分类。,也算是一种关键点检测的anchor-free方法。

&Notes

Contributions

  • 巧妙的使用了deformable conv,相比于v2更显式的加了loss去学,本质上还是在追求更合理的解释性(不然offset的学习太black box)。

关于RepPoints的理解

以下理解摘自:

目标检测的通用做法是,数据以边框格式标注,模型拟合,也是拟合边框的坐标和长度,拓展到3D,可以按照标注数据的格式,拟合3维体的中心点坐标和旁开的长度。
而在二维的目标检测中,比如由于目标的形状不同,如人或动物的姿势变化,在边框内有效信息可能会相对减少,作者就针对这种情况,改变了标注数据和最终拟合的形式,变成关键点拟合。
如何拟合这些关键点呢?作者用了在通用anchor方式的检测中所用到的普通卷积算子,作为初始的状态,在误差反传的过程中,卷积算子作为偏移量,与输入数据进行运算,最终调整到拟合的head上,完成关键点拟合。

另一的理解:

之前的可形变卷积的监督信号来自于分类分支和回归分支,然而这个监督的过程是不直接的,可形变卷积学习得到的偏移量到底是如何变化的,偏移量的学习是非常自由的,会不会跑到非常远离目标的位置,那么这些位置的特征是否有帮助呢,我觉得可形变卷积的中间过程太模糊了,太不直接了,是难以解释的。而RepPoints通过定位和分类的监督信号来直接监督偏移量的学习,这样偏移量不就具备了可解释性了吗,偏移的位置使得定位和分类更加准确(即偏移的位置可定位目标并且语义信息可识别目标),这样偏移量就不会乱跑了,而且是可解释的。从这个角度来想,RepPoints其实是对可形变卷积进一步的改进,相比可形变卷积有两个优点:

  • 通过定位和分类的直接监督来学习可形变卷积的偏移量,使得偏移量具有可解释性。
  • 可以通过采样点来直接生成伪框 (pseudo box),不需要另外学习边界框,并且分类和定位是有联系的。

FPN解决的问题

基于中心点的方法面临识别目标模糊性的问题,这是由于两个不同的物体位于特征图中的相同位置而引起的,这限制了其在现代物体检测器中的普遍性。 在以前的方法中,这主要是通过在每个位置产生多个目标来解决的,这又面临归属歧义的另一个问题。 在RPDet中,由于以下原因,我们可以通过使用FPN结构大大缓解此问题:(FCOS中,使用FPN来解决目标重叠问题)

  • 首先,将不同比例的目标分配给不同的图像特征级别,该目标可解决不同比例和相同中心的对象 点位置;

  • 其次,FPN具有用于小物体的高分辨率特征图,这也减少了两个物体的中心位于同一特征位置的机会。

注:COCO数据集中只有1.1%的对象[26]遭受中心点位于同一位置的问题。

相关

转载地址:http://ebxen.baihongyu.com/

你可能感兴趣的文章
微信小程序的简单总结
查看>>
发布npm包总结
查看>>
html页面中快速使用Vue.js
查看>>
通过示例去看JNI中为什么使用extern “C“
查看>>
viewport学习资料收集
查看>>
【漏洞修复】自定义实现的X509TrustManager子类中..
查看>>
处女座/强迫症的福利,Android studio 中类成员赋值等号对齐的配置
查看>>
工欲善其事,必先利其器之-使用Typora编辑与查看Markdown文件
查看>>
使用SocketTask,弃用wx
查看>>
返回Promise对象的函数,函数内部记得加try catch!
查看>>
linux终端快捷键
查看>>
高效Linux用户需要了解的命令行技能
查看>>
macOS的pfctl使用
查看>>
breakpad的学习与使用笔记
查看>>
Android上使用leaktracer的经验分享
查看>>
工欲善其事,必先利其器之-mac下使用zsh
查看>>
webkit笔记(关键字)
查看>>
Android native开发设置线程名需要注意的地方
查看>>
查找程序加载的动态库的路径
查看>>
通过一个示例看全局对象的构造和析构以及atexit的使用
查看>>