论文链接
CVPR2018的文章。和BPN一样,本文主要关注的是目标检测中IoU的阈值选取问题,但是BPN主要针对的是SSD等single-stage的detector,感兴趣的童鞋可以看我的另一篇博文BPN
目标检测中,detector经常是用低IoU阈值来train的,如果提高IoU阈值,则会导致两个问题:
(1)IoU提高以后,训练中positive samples的数量会指数级减少,从而导致过拟合。
(2)预测和训练用不同阈值,会导致不匹配。

问题发现


可以看到,图a中低阈值的IoU训出的detector会有很多close false positives,设想如果IoU阈值设为刚好0.5,那么在0.5附近就会有很多的close false positives,我们就很难让检测器reject这些close false positives。

同时,在c中可以得出一个结论,一个检测器只能在某一quality level上最优。quality level用detector的IoU设定阈值来确定。同时在d图中可以看到,u=0.5在low IoU样本表现得最好,但是在高IoU level时就比不过u=0.6了。所以总的来说,a detector optimized at a single IoU level is not necessarily optimal at other levels。
同时,直接用大阈值来训练检测器不一定会提高效果,可以看到d图中u=0.7的时候,它会降低performance,AP只有0.319。这其中很大的一部分原因就是:和low quality的detector相比,hypotheses的分布会改变,原因和上面提到的问题1类似。

目标检测

iterative BBox

论文中阐述了一下bounding box的回归方程,在这里就贴一下:
这个Lloc在R-CNN中用的时L2 loss,在fast-rcnn中就改成了smooth L1 loss了。
然后Lloc用来对距离向量进行操作:

但是和classificatoin相比, 这个bounding box回归的梯度往往小于它,所以很多工作提出了单次回归对于精确的定位来说根本不够,所以就提出了多次回归的方法,


但是,它忽略的两个问题:

  1. u=0.5的回归器对于更好的hypothese来说不是最优的,所以对于u≥0.85的bounding box来说,会降低它的效果。
  2. 在图2中,每次iteration之后,bounding box的分布会显著地改变,所以回归器如果对于初始分布最优,那它对于其他分布可能不是最优。

integral loss


只是单纯地多次分类提高分类精度,每次分类针对的IoU阈值变高,但是这样对定位毫无帮助,并且容易过拟合。

Cascade R-CNN


级联R-CNN,总的来说就是多次回归,但是每次回归的回归器都是不一样的,所用的阈值不断提高,同时回归器训练时也是用提高的阈值训练的(和iterative BBox不同)

T时级联的总数。
级联R-CNN和iterative BBox的不同:

  1. 首先,iterative BBox时后处理过程,用了改善bounding box,但是级联回归是一个重采样过程,它会改变预测值的分布。
  2. 其次,因为它在训练和预测中都有使用,所以不会导致预测和训练分布的不同
  3. 各个回归器都在其stage上是最优的,因为不同stage的分布都重采样了。这在图4中也有体现

loss


bt是上个stage回归后的bounding box。值得注意的是,有几个stage就有几个loss,t指的是stage的级数。

实验

本文选择的三个stage是{0.5,0.6,0.7}。本文实验了三个baseline,faster rcnn(VGG),R-FCN和FPN。

Quality mismatch


图5(a)中,三条实线是用不同阈值训练的单一的检测器,可以看出u=0.5在低IoU阈值表现得好,在高IoU阈值比不过u=0.6. 然后我们为了理解这是怎么发生的,在b中我们加入了一些ground truth bounding boxes。 可以看到,u=0.7有了很大的提高。所以说,高阈值的检测器所需的样本必须匹配quality。虚线表示用cascade里面的proposals代替原样本,可以发现检测器得到了很好的提高。

和iterative BBox和integral loss的比较


虽然都超过了baseline,但是cascade r-cnn的提升还是大了很多。

图7(a)是和iterative BBox定位的比较,可以看出单一回归器的使用会降低高IoU的hypotheses,这个影响在iterative BBox中会累计,但是cascade中later stages的表现在all levels都比BBox好。
图7(b)则是integral loss的分类AP,u=0.6在all IoU表现得最好,u=0.7最差,融合也没效果。

消融实验



(这里有个小小的疑问,Table 标号不应该放在表的上方吗)

和state-of-the-art的比较

【论文解析】Cascade R-CNN: Delving into High Quality Object Detection相关推荐

  1. 目标检测论文阅读:Cascade R-CNN: Delving into High Quality Object Detection(CVPR2018)

    Cascade R-CNN: Delving into High Quality Object Detection(CVPR2018) 论文链接:https://arxiv.org/abs/1712. ...

  2. cascade rcnn:delving into high quality object detection

    轻松掌握 MMDetection 中常用算法(五):Cascade R-CNN - 知乎文@ 0000070 摘要本篇主要介绍目前主流常用的高性能目标检测算法中最广为人知的算法之一 Cascade R ...

  3. Cascade R-CNN: Delving into High Quality Object Detection(个人学习笔记)

    论文基本信息 标题:Cascade R-CNN: Delving into High Quality Object Detection 作者:Zhaowei Cai,Nuno Vasconcelos ...

  4. 论文翻译之Enriched Feature Guided Refinement Network for Object Detection

    摘要 我们提出了一个单阶段检测框架,该框架解决了多尺度目标检测和类不平衡的问题.我们没有设计更深层的网络,而是引入了一种简单而有效的特征丰富化方案来生成多尺度的上下文特征.我们进一步引入了一种级联的优 ...

  5. Cascade R-CNN: High Quality Object Detection and Instance Segmentation(级联R-CNN:高质量目标检测与实例分割)

    Cascade R-CNN: High Quality Object Detection and Instance Segmentation Zhaowei Cai, and Nuno Vasconc ...

  6. 深度学习论文: An Energy and GPU-Computation Efficient Backbone Network for Object Detection及其PyTorch

    An Energy and GPU-Computation Efficient Backbone Network for Real-Time Object Detection PDF:https:// ...

  7. 【论文翻译】FCOS3D: Fully Convolutional One-Stage Monocular 3D Object Detection

    文章目录 PaperInfo Abstract 1 Introduction 2 Related Work 2D Object Detection Monocular 3D Object Detect ...

  8. 【论文阅读】Point-GNN: Graph Neural Network for 3D Object Detection in a Point Cloud

    最近在看3d目标检测的文章,感觉看完东西还是要记一下自己的想法,尤其是有思考的文章. 论文题目:Point-GNN: Graph Neural Network for 3D Object Detect ...

  9. [论文阅读] Stereoscopically Attentive Multi-scale Network for Lightweight Salient Object Detection

    论文地址:https://dx.doi.org/10.1109/TIP.2021.3065239 代码:https://mmcheng.net/SAMNet 发表于:TIP 2021 Abstract ...

最新文章

  1. fusioncompute中cpu可以设置的qos参数有哪些?_kubernetes 中 Qos 的设计与实现
  2. java 判断二叉树是否平衡_剑指Offer - 判断二叉树是否是平衡二叉树
  3. Learning React Native笔记
  4. Linux思维导图整理,你确定不收藏?
  5. ArcGIS Desktop 10.5 安装教程(win10环境下)
  6. php中qq授权登录,ThinkPHP利用QQ互联实现网站第三方登录(QQ登录)
  7. python绘制直方图显示数字_python plotly绘制直方图实例详解
  8. 用js做分页,点击下一页时,直接跳到了最后一页——Number()的妙用
  9. Java FilterInputStream skip()方法与示例
  10. 万字长文!不为人所知的分布式锁实现全都在这里了
  11. (2015秋) 软工作业成绩公布
  12. .NET----错误和异常处理机制
  13. 两个pv挂一个vg_今日德杯:VG、TES零封对手会师四强;FOFO状态爆表台湾网友热议:Maple比Fofo混得差;管泽元:牛宝快跑...
  14. ERROR: The minSdk version should not be declared in the android manifest file.
  15. java实现一台电脑控制多台手机_涨姿势:教你用电脑远程控制多台手机!终于可以挂手机了!...
  16. php实现推箱子游戏,C语言实现推箱子游戏的代码示例
  17. 电脑有弹窗广告怎么办?真实个人经验分享
  18. vuex报错TypeError: sub is not a function
  19. jpg转bmpbmp转jpg
  20. 自媒体写好文案的技巧,这5个网站请收藏好!你想要的都在!

热门文章

  1. HK shopping
  2. '学python哪个机构好'_长沙学python哪个机构好
  3. retrieve在JAVA_Cause: java.sql.SQLException: Could not retrieve transation read-only status server
  4. 企业网站如何插入第三方平台不带广告的宣传宣传片
  5. u大师u盘启动盘制作工具下载过程中需要输入密码?
  6. 未来的道路.该怎么走
  7. find的用法:find查找指定文件和文件夹,设置为指定用户和用户组
  8. ASO优化技巧:苹果加急审核注意事项,app store的aso怎么做
  9. vscode连接远程linux服务器显示错位:Resolver error: Error
  10. 64位win7搭建php mysql_在64位Win7系统中配置Apache+Mysql+PHP环境