Cascade R-CNN: Delving into High Quality Object Detection(个人学习笔记)
论文基本信息
- 标题:Cascade R-CNN: Delving into High Quality Object Detection
- 作者:Zhaowei Cai,Nuno Vasconcelos
- 机构:UC San Diego
- 来源:CVPR2018
- 时间:2017/12/03
- 链接:https://arxiv.org/abs/1712.00726
- 代码: https://github.com/zhaoweicai/cascade-rcnn(official code)
https://paperswithcode.com/paper/cascade-r-cnn-delving-into-high-quality
文章概要
问题背景
背景:
Object Detection需要找到True Positives,同时抑制⼤量close False Positives。训练Detector时需要使⽤IoU阈值u来定义Positive和Negative
分析:
图1( a ):
- 如果使⽤较低的IoU阈值进⾏训练,detector⽣成的detection通常⽐较noisy
- u=0.5时对positive的要求相当loose。多数⼈认为IoU阈值为0.5时会放过close false
positives
图1( b ):⽬标是学习high quality detector,其中输出⼏乎没有False Positive
- the quality of an hypothesis:hypothesis(proposal BBox)与GT的IoU
- the quality of the detector:训练detector时使⽤的IoU阈值u
图1( c ):
- localization performance:u为训练detector时使⽤的IoU阈值,Input IoU应该是输⼊到
regressor的proposal与GT的IoU,Output IoU为regressor输出与GT的IoU。在Input IoU与u
接近时,各个BBox regressor的location效果最佳(应该是Output IoU与baseline差距最⼤)
图1(d):
- detection performance:横轴IoU Threshold应该是使⽤该阈值对detector⽣成的detection进
⾏过滤,纵轴就是detector的AP;对于与GT的IoU较低的prpoposal,u=0.5的detector优于
u=0.6的detector;但对于与GT的IoU较⾼的prpoposal,u=0.6的detector优于u=0.5的
detector。在Input IoU与u接近时,detector表现最佳。 - 为得到high quality detector,并不能简单地增加u。随着训练detector时使⽤的IoU阈值u增
加,检测性能可能会下降,如图1(d)中u=0.7时的AP低于u=0.5和0.6。因为detector中proposal
hypothesis的分布通常严重不平衡(low quality的较多,所谓的正负样本不平衡),使⽤更⼤
的u会导致positive training example的数量呈指数级减少(正负样本更加不平衡),对于含⼤
量参数的神经⽹络,这⾮常容易导致训练期间overfitting
- 先看左图,横轴的是proposal的IoU,纵轴的是经过box reg得到的新的IoU,不同的线条代表不同阈值训练出来的detector,显然新的IoU越高,说明detector进行回归的性能越好。可以看到在0.55-0.6的范围内阈值为0.5的detector性能最好,在0.6~0.75阈值为0.6的detector性能最佳,而到了0.75之后就是阈值为0.7的detector了……这就说明了,只有proposal自身的阈值和训练器训练用的阈值较为接近的时候,训练器的性能才最好。
- 从图中我们可以意识到,单一阈值训练出的检测器效果非常有限,以现在最常见的阈值0.5为例,由于所有IoU大于0.5的proposal都会被选中,那么对于IoU0.6-0.95的proposal来说,detector的表现就很差了。那么,我能不能直接选用0.7的高阈值呢?毕竟这样子0.5-0.7的proposal都被排除了,横轴0.7-0.95之间,红色线条的表现似乎不差啊?但是看到右图你就会发现,实际上detector的性能反而是最低的,原因是这样子训练样本大大减少,过拟合问题非常严重。
结论
• 问题:
- 图1( a ):u较⼩时,detector⽣成的BBox通常⽐较noisy
-图1( d ):u较⼤时,positive training example减少,容易过拟合 - 图1( c )、( d ):基于单个IoU阈值训练的detector在使⽤其它IoU阈值进⾏测试时不⼀定最优
- 图1( c ):某个proposal在经过detector后的IoU几乎必然是增加的,那么再经过一个更大阈值训练的detector,它的IoU就会更好
- 举个例子,有三个串联起来的用0.5/0.6/0.7的阈值训练出来的detector,有一个IoU约为0.55的proposal,经过0.5的detector,IoU变为0.75;再经过0.6的detector,IoU变为0.82;再经过0.7的detector,最终IoU变为0.87……比任何一个单独的detector的结果都要好。不仅仅只有IoU改善的好处,因为每经过detector,proposal的IoU都更高,样本质量更好了,那么即使我下一个detector阈值设置得比较高,也不会有太多的样本被刷掉,这样就可以保证样本数量避免过拟合问题。
• Observation / Motivation:
- 图1( c )、( d ):在Input IoU与训练时IoU阈值u接近时,各个BBox regressor的location效果最
佳,detector表现也最佳。 - 图1( c ):只有提供high quality proposal才能得到higher quality detector(可想⽽知);⽽
regressor的output与GT的IoU⼏乎总是优于input与GT的IoU
相关实验
- I:image
- conv:backbone
- H0:RPN
- C:classification score
- B0:proposal
- pool:region-wise feature extraction
- H1、H2、H3:detection head
- B:bounding box
1. Iterative BBox
Iterative BBox为了定位准确,采用了级联结构来对Box进行回归,使用的是完全相同的级联结构。但单一阈值0.5是无法对所有proposal取得良好效果的,proposal经过0.5阈值的detector后IoU都在0.6以上,再使用这一阈值并不明智。
第一行横纵轴分别是回归目标中的box的x方向和y方向偏移量;第二行横纵轴分别是回归目标中的box的宽、高偏差量。可以看到,从1st stage到2nd stage,proposal的分布其实已经发生很大变化了,因为很多噪声经过box reg实际上也提高了IoU,2nd和3rd中的那些红色点已经属于outliers,如果不提高阈值来去掉它们,就会引入大量噪声干扰,对结果很不利。从这里也可以看出,阈值的重新选取本质上是一个resample的过程,它保证了样本的质量。
当然,这里会有另一个问题,这样真的不会减少样本数量么?虽然第1部分给了比较直观感性的解释,但是似乎还不够……作者给出了更加详细的实验证明:
如图4左侧所⽰,初始hypothesis(⽐如RPN的proposal)的分布严重倾向于low quality
(IoU),这不可避免地导致higher quality classifier的⽆效学习。
- Cascade RCNN将Cascade Regression作为⼀种resampling解决了这⼀问题,这是因为图1( c )
中的所有曲线都在baseline(灰线)上⽅,即使⽤某个IoU阈值u训练的regressor倾向于产⽣
IoU更⾼的BBox。如图4所⽰,每个resampling step之后样本的distribution逐渐倾向于high
quality。 - 即各个stage的detector的quality(IoU阈值)是逐步增加的,这样可以使每个stage中具有⾜
够的(数量也⼤致相等)的positive example,防⽌因positive example数量太少⽽导致过拟
合。 - 更深stage的detector使⽤更⾼的IoU阈值进⾏训练,通过逐渐增加的IoU阈值可以逐渐移除⼀些
outlier,如图2所⽰,这使得各个stage的specialized detector能够更好地训练。 - 损失函数(在第t个stage时):
2.Integral Loss
Ⅰ IoU阈值的问题
- 如果1个hypothesis与GT的IoU⾼于设置的IoU阈值u,则该hypothesis是positive,否则是
negative - u⾼时,positives包含较少background,但难以得到⾜够的positive training example。u低
时,可获得richer、more diversified的positive training set,但得到的detector⽆法抑制
close false positive - ⼀般单个classifier很难在所有IoU level上表现都⽐较良好
inference时RPN等proposal detector⽣成的多数hypothesis的quality较低,因此detector必
须对low quality的hypothesis具有更⾼的辨别⼒。 - 折衷:通常确定u为0.5,但这个相对较低的阈值导致了close false positive
Ⅱ ensemble of classifiers
- 如图3( c )所⽰,1个简单的solution就是使⽤多个classifier(训练时IoU阈值u不同)
- inference:多个classifier在inference时进⾏集成
- 问题:未能解决式(6)中不同loss对不同数量的positive进⾏操作的问题。如最后一张图的第1张所⽰,positive example随u迅速减少,这会导致higher quality classifier过
拟合。此外higher quality classifier需要在inference时处理⼤量low quality proposal,⽽它们并未针
对这些⼤量low quality proposal进⾏优化。基于以上两点,该⽅法在⼤多数quality level都⽆法实现higher accuracy,并且该⽅法相对于Iterative BBox,增益很⼩。
Comparison with Iterative BBox and Integral Loss:
Comparison with the SOTA:
Cascade R-CNN: Delving into High Quality Object Detection(个人学习笔记)相关推荐
- cascade rcnn:delving into high quality object detection
轻松掌握 MMDetection 中常用算法(五):Cascade R-CNN - 知乎文@ 0000070 摘要本篇主要介绍目前主流常用的高性能目标检测算法中最广为人知的算法之一 Cascade R ...
- 目标检测论文阅读: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. ...
- 【论文解析】Cascade R-CNN: Delving into High Quality Object Detection
论文链接 CVPR2018的文章.和BPN一样,本文主要关注的是目标检测中IoU的阈值选取问题,但是BPN主要针对的是SSD等single-stage的detector,感兴趣的童鞋可以看我的另一篇博 ...
- Video Salient Object Detection via学习笔记
一.摘要 本文主要是针对视频显著性检测遇到的两个问题: ①在进行基于深度学习的视频显著性检测时缺少足够多的已经标记的像素级数据. ②如何提高加快视频显著性检测和训练. 针对这两个问题有相应的解决方案: ...
- 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 ...
- 【D2Det】《 D2Det:Towards High Quality Object Detection and Instance Segmentation》
CVPR-2020 Pytorch Code: https://github.com/JialeCao001/D2Det. 文章目录 1 Background and Motivation 2 Rel ...
- Delving into Localization Errors for Monocular 3D Object Detection 论文学习
论文地址:Delving into Localization Errors for Monocular 3D Object Detection Github地址:Delving into Locali ...
- 【显著性物体检测】【ECCV2018】Reverse Attention for Salient Object Detection【论文笔记】
简介:在不怎么增加计算量的前提下,采用从粗到精的思想,由高级特征到低级特征,补全显著性检测的轮廓[最近很多都是基于这个思想].模型的速度与效果都占优.具体关注,是怎么实现特征的多级利用的. ECSSD ...
- CenterNet: Keypoint Triplts for Object Detection 论文阅读笔记
论文名称:CenterNet: Keypoint Triplts for Object Detection 作者:Kaiwen Duan & Song Bai等 论文链接:https://ar ...
最新文章
- 开发完成的springboot项目扩展 swagger
- 【Kali渗透全方位实战】利用Beef进行XSS会话劫持(XSS Stored)
- 仿苹果通知显示在图标右上角上
- Java-Runoob-高级教程-实例-数组:01. Java 实例 – 数组排序及元素查找
- 海棠读社小程序研发(.Net Core版)
- 深入理解redis数据类型
- 在MAC下安装Exuberant ctags
- 漫步线性代数六——逆和转置
- a*算法的时间复杂度_数据结构与算法系列——时间、空间复杂度
- 机器学习实践测试驱动的开发方法pdf
- xpath 第一个元素_Chrome控制台的妙用之使用XPATH
- 编写一个Applet在屏幕上画一组同心圆
- Java项目开发工具汇总
- AcrelEMS-BP生物制药工厂能效管理系统
- YOLOv4 改进 | 记录如何一步一步改进YOLOv4到自己的数据集(性能、速度炸裂)
- 集合全套以及知识点整合
- Edge浏览器设置网速限制
- SyntaxError: Non-UTF-8 code starting with '\xd4' in file C:/PyCharmWorkSpace py on line 2
- EVE模拟器使用说明
- web页面中如何唤起打开APP
热门文章
- Excel如何设置下拉选项,并应用到整列
- Java自幂数计算及其算法改进
- 开除AI伦理学家,谷歌如何从“不作恶”到“不宽容”?
- Ubuntu18.04+KinectV1(XBOX360)+ORB_SLAM2
- 爬取巴比特快讯遇到状态码“521”
- mac vue 代理失效
- 4G(LTE)背后的技术和利益纠结——VoIP,VoLTE,SIP,IMS的前世今生
- 光E电做好个人理财规划理财如此简单
- 小鹤双拼提速方法个人经验-by老随风
- 小朋友排队问题(树状数组)