Abstract:

目标检测领域,IoU 被用来定义 positives 和 negatives,当一个detector使用 0.5的IoU时,会产生nosiy detections,但是当提高IoU时,检测的表现又会变差。造成变差的主要原因有两点,一是训练时因为positive samples 的减少而造成的overfitting,另一个是inference时的IoU和训练时IoU的不匹配问题。Cascade RCNN可以解决以上两个问题,通过逐步提高IoU的级联detectors来克服假阳性的例子。证明了一个detector的输出分布对训练更高质量的detector是有益的。因为inference 和训练过程使用相同的级联结构, 所以在每一个stage有一个比较好的match。

Introduction:

目标检测需要解决两个问题,一个是recognition,一个是localization。这两种问题都十分困难,因为detector要处理很多close false positives(close but not correct)。在 two-stage 的 R-CNN的detector中需要使用IoU来定义 positives/negatives,通常情况下会使用 0.5 的值,这样会放松对正例的限制,产生很多nosigy bounding box,detector将不会很好的分辨出假阳性例子。

基于单个detector只会对单个quality level 是最优的知识,来进行高精度检测任务的优化。

我们定义了一个IoU质量,如下图所示:

图中三条线分别是在 IOU = 0.5,0.6,0.7 时训练得到的模型。

上图 C 为location performance,横轴是测试的 Input IOU,纵轴是输出的 IOU,从C可以看出使用0.5训练出来的模型在Input IOU在[0.55,0.6]表现最好,0.6得到的模型在[0.65,075]表现最好,0.7得到的模型在[0.8:]的效果最好,而且这三个模型输出的IOU都高于baseline。

上图 D 为detection performance,横轴是测试时设置的IOU阈值,高于阈值的视为正例,之后对置信度进行排序,得到Ap值。可以看出随着阈值的增大,Ap值逐渐降低,同时0.5阈值训练的到的网络在低IOU阈值得到的结果好于0.6训练出来的结果,0.6阈值训练出来的在高阈值得到的结果好,由此可以得知,一个detector只对单个IOU level 表现较好。

单纯的提高阈值结果并不好,例如上图的 u=0.7 的结果,这是因为正例个数的减少,很容易造成overfitting,另一个原因是因为mismatch,如上图,高质量的detector只对 high quality hypotheses(测试的IoU比较大的)是最优的,对于其他的level不是最优的。

因为一个detector的输出的IOU总是优于他的输入的IOU,上图C三个都优于baseline,所以我们自然而然的使用级联的方式,使用上一层的输出当做下一层的输入。这样的过程类似于重新采样,但不同于 mine hard negatives,我们通过调整 bounding box 来找到更适合的close false positive 来进行下一个stage的训练。通过IOU的逐步提高可以克服过拟合的问题,同时在Inference使用相同的结构。

Related Work

one stage detector中,SSD 网络和 RPN 相似,但是使用了多层 feature map 特征。RetinaNet 网络解决了dense object detection的类极度不平衡问题,优于最好的 two-stage detector。

还有许多multi-satge object detection。有使用Fast RCNN循环产生boundingbox的, 有将cascade 嵌入到检测网络中的,有迭代检测和分割任务的。

1)Object Detection

我们扩展Faster RCNN,如下图所示:

H0 是 rpn 网络,H1 是 detection Head 。

2)Bounding Box Regression

在RCNN中使用的是 L2 loss ,在 Fast-RCNN 中使用的是 L1 loss。因为 Lloc 一般比 classification risk 小很多,所以会使用均值方差来标准化 Lloc。有一些工作类似于上图b,称为 iterative BBox 。

3)Classification 

一个 M + 1 维的预测类别后验概率的分支,使用 classic cross-entropy loss。

4)Detection Quality 

因为 boundingbox 中会有 object 和 background ,所有很难界定正负例,一般使用 IOU 来界定,如果把 IOU 设置的太高,正例包含的背景虽少但是正例的个数也会很少。如果把 IOU 设置的比较低,正例会很多但是这些正例会包含许多 close false positives。通常情况下 IOU 设为 0.5 是的 detector 产生很多 close false positive 的结果。

有一种朴素的继承 classifier 的方法,如上图 c ,Lclass 如下:

但是这种方式随着IOU的提高会让正例急剧减少,造成过拟合。

Cascade RCNN

1) Cascade Bounding Box Regression

Casecade RCNN 就是一个 cascade regression problem 结构如上图 d,它的 casecade regressor 如下:

共有T个cascade stage,每一个T都是对其输入b是最优的,通过这种方式,逐渐提高 Bbox 的质量。

不同于 Iterative Bbox 以后处理方式提高 boundingbox,我们的方式是一个重采样的过程,改变了hypothese的分布。

2)Cascade Detection

论文:Cascade RCNN相关推荐

  1. cascade rcnn:delving into high quality object detection

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

  2. cascade rcnn论文总结

    1.bouding box regression总结: rcnn使用l2-loss 首先明确l2-loss的计算规则: L∗=(f∗(P)−G∗)2,∗代表x,y,w,h    整个loss : L= ...

  3. 目标检测论文阅读: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. ...

  4. 【论文解析】Cascade R-CNN: Delving into High Quality Object Detection

    论文链接 CVPR2018的文章.和BPN一样,本文主要关注的是目标检测中IoU的阈值选取问题,但是BPN主要针对的是SSD等single-stage的detector,感兴趣的童鞋可以看我的另一篇博 ...

  5. 【目标识别】Cascade RCNN论文解读

    摘要 在目标检测中,需要一个交并比(IOU)阈值来定义物体正负标签.使用低IOU阈值(例如0.5)训练的目标检测器通常会产生噪声检测.然而,随着IOU阈值的增加,检测性能趋于下降.影响这一结果的主要因 ...

  6. Cascade RCNN论文翻译

    翻译仅为学习,如有侵权请联系我删除. 翻译不当之处请多多指教. 摘要 在目标检测中,需要一个交并比(IOU)阈值来定义物体正负标签.使用低IOU阈值(例如0.5)训练的目标检测器通常会产生噪声检测.然 ...

  7. 论文阅读笔记 | 目标检测算法——Cascade R-CNN算法

    如有错误,恳请指出. 文章目录 1. Introduction 2 Related Work 2.1 iterative bounding box regression 2.2 Integral Lo ...

  8. Cascade R-CNN的一些记录

    Cascade R-CNN的一些记录 <Cascade R-CNN: Delving into High Quality Object Detection>CVPR2018的一篇文章 论文 ...

  9. 深度学习之 Cascade R-CNN

    Zhaowei Cai, Nuno Vasconcelos. <Cascade R-CNN: Delving into High Quality Object Detection>. CV ...

最新文章

  1. c语言常用数据类型转换整理
  2. ViewPager页面切换效果
  3. ssm使用全注解实现增删改查案例——mybatis-config.xml
  4. 前端学习(2834):样式引入
  5. python输入程序_python程序的输入输出(acm的几个小程序)
  6. 【LeetCode笔记】26. 删除有序数组中的重复项(Java、原地)
  7. Java 根据枚举的名字得到枚举的实例
  8. (收藏)Android VoIP
  9. mac下修改MySQL密码
  10. Linux下如何查看高CPU占用率线程 专题
  11. FISCO BCOS java sdk 组装交易的代码位置
  12. 138.复制带随机指针的链表
  13. npm WARN deprecated bfj-node4@5.3.1: Switch to the `bfj` package for fixes and new features
  14. latex去心领域符号
  15. 疫情“放大”了无人配送的价值
  16. 2022年餐饮连锁行业研究报告
  17. 计算机网络的分类 ppt,计算机网络的分类.ppt
  18. Python爬虫之scrapy框架360全网图片爬取
  19. Lucene深入浅出
  20. Paraview 测试生成管线

热门文章

  1. 苹果a13_苹果发布第二代iPhone SE手机:配备最强A13处理器
  2. jquery时间戳格式化!!!
  3. CAD查找文字(网页版)
  4. docker、oci、runc以及kubernetes梳理
  5. 苹果开始瞎搞了?你不坏我咋卖:苹果手机电量陷阱。
  6. python装饰器带参数函数二阶导数公式_MVision/caffe_简介_使用.md at master · Ewenwan/MVision · GitHub...
  7. 2010年春节夫妻团游云南(昆明 大理 丽江
  8. 计算机附件中小工具使用方法,找回Win7附件中缺失的小工具
  9. windows server 2012/2016 设置多用户远程桌面
  10. ubuntu生成Linux内核解压,Ubuntu下生成linux内核