cascade rcnn

在region proposal阶段采用不同的iou。
第一幅图,不同颜色的线是用不同的region proposal的iou阈值,横坐标是region proposal生成的框与gt的原始iou,纵坐标是未经过训练的框经过bounding box regression后生成的新框与gt的iou,发现0.5的iou阈值对0.5的的提升更好,0.6的对0.6到0.75的好,0.7对0.75以上的效果好。
第二幅图,不同颜色的线是用不同的region proposal的iou阈值,横坐标是region proposal生成的框与gt的原始iou,纵坐标是不同iou框对应的ap值。可以看到0.6的性能在提升,但变成0.7后性能反而下降了。
一般来说,0.7的iou生成的正样本的框的质量更高,应该性能更好,但ap值却在下降。原因在于,iou在0.5时,正样本大多集中在0.5到0.6之间,如果你阈值选在0.7,正样本数量大大减少,造成了过拟合。

红色的数字应该是代表的这个iou之上的正样本占总的region proposal的比例


总结起来,就是:
- cascaded regression不断改变了proposal的分布,并且通过调整阈值的方式重采样
- cascaded在train和inference时都会使用,并没有偏差问题
- cascaded重采样后的每个检测器,都对重采样后的样本是最优的,没有mismatch问题
https://zhuanlan.zhihu.com/p/35882192
https://blog.csdn.net/qq_21949357/article/details/80046867
代码实现的问题:
代码的地址:https://github.com/zhaoweicai/cascade-rcnn/tree/master/examples/voc
1.proposals这个layer层有个iou thr = 0.7,这个不是多级级联重采样选择正负样本的的iou,这个是nms的iou,即过滤的iou

2.在test的时候,在第二阶段多出现了一个分支,并且这两个分支的名字和train的对应不上,第三阶段也出现相似的情况,3个分支,如第一幅图。拿第二阶段来举例,第一个分支对应的是第一阶段的参数,第二个分支对应的是第二阶段的参数,看着layer名字不一样,但具体看里面的参数赋值就发现第一个分支就是用的第一阶段的参数,如第二幅图


3.test的预测,在每一阶段都进行了label和bouding box的预测(label是多个分支进行eltwise相加得到,bouding box只在当前stage的分支计算得到),最终输出的时候是把这3个stage的值进行加权求和,最简单的当然是每个结果乘以1/3然后相加。这也同时引发一个问题,是否需要改变权值来获得最优的结果?


cascade rcnn的更多相关文章
- Cascade R-CNN论文讲解(转载)
转载链接:https://blog.csdn.net/qq_21949357/article/details/80046867 论文思想:为了解决IOU设置带来的最终的AP值,作者引入了cascade ...
- cascade rcnn论文总结
1.bouding box regression总结: rcnn使用l2-loss 首先明确l2-loss的计算规则: L∗=(f∗(P)−G∗)2,∗代表x,y,w,h 整个loss : L= ...
- 【目标检测】Cascade R-CNN 论文解析
目录 0. 论文链接 1. 概述 2. 网络结构的合理性 3. 网络结构 4. 参考链接 @ 0. 论文链接 Cascade R-CNN 1. 概述 这是CVPR 2018的一篇文章,这篇文章也为 ...
- Cascade R-CNN目标检测
成功的因素: 1.级联而非并联检测器 2.提升iou阈值训练级联检测器的同时不带来负面影响 核心思想: 区分正负样本的阈值u取值影响较大,加大iou阈值直观感受是可以增加准确率的,但是实际上不是,因为 ...
- 目标检测 | 经典算法 Cascade R-CNN: Delving into High Quality Object Detection
作者从detector的overfitting at training/quality mismatch at inference问题入手,提出了基于multi-stage的Cascade R-CNN ...
- Anaconda中安装Cascade RCNN(Detectron)的若干问题
安装参考https://github.com/zhaoweicai/Detectron-Cascade-RCNN/blob/master/INSTALL.md 1.对于在 python detectr ...
- 论文阅读笔记五十三:Libra R-CNN: Towards Balanced Learning for Object Detection(CVPR2019)
论文原址:https://arxiv.org/pdf/1904.02701.pdf github:https://github.com/OceanPang/Libra_R-CNN 摘要 相比模型的结构 ...
- 论文阅读笔记三十七:Grid R-CNN(CVPR2018)
论文源址:https://arxiv.org/abs/1811.12030 开源代码:未公开 摘要 本文提出了目标检测网络Grid R-CNN,其基于网格定位机制实现准确的目标检测.传统方法主要基于回 ...
- 图像分割-Mask Scoring R-CNN
转载:https://zhuanlan.zhihu.com/p/58291808 论文链接:https://arxiv.org/abs/1903.00241 代码链接:https://github.c ...
随机推荐
- D3基础---简介和数据
D3.js是一种数据操作类型的javascript库(也可视其为插件):结合HTML,SVG和CSS,D3可以图形化的,生动的展现数据. d3获取:http://d3js.org/ 在代码文件中引入D ...
- Asp.net MVC5系列——第一个项目
转自http://www.cnblogs.com/wolf-sun/p/3888160.html 概述 在这一部分我们添加一个新的控制器HelloWorldController类,以便使用视图来向客户 ...
- javaweb之jsp标签
1.JSP标签简介 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 2.JSP常用标签 ...
- String Control
using System; using System.Collections.Generic; using System.Text; using System.Web; using System.We ...
- BZOJ4773: 负环(倍增Floyd)
题意 题目链接 Sol 倍增Floyd,妙妙喵 一个很显然的思路(然而我想不到是用\(f[k][i][j]\)表示从\(i\)号点出发,走\(k\)步到\(j\)的最小值 但是这样复杂度是\(O(n^ ...
- vue 数组重复,循环报错
Vue.js默认不支持往数组中加入重复的数据.可以使用track-by="$index"来实现.
- window下Jekyll建站过程
> 前言 最近决定要写一个博客,先后注册了博客园和CSND的博客,但是他们的界面主题都不是很符合自己的要求,还没有足够个性化的发挥空间,遂决定自己建一个博客. 网上找了一下教程,感觉都不太详细, ...
- Git 命令 操作
常用 Git 命令清单 我每天使用 Git ,但是很多命令记不住.一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单. ...
- easyui grid 增加合计行
一.首先,easyui grid 的 showfooter 属性设置为 true $aplgrid.datagrid({ data: globalExpenseClaimForm.ExpenseCl ...
- 核心API
1.ProcessEngine ProcessEngine是Activiti中最核心的类,其他的类都是由他而来.Activiti流程引擎的配置文件是名为 activiti.cfg.xml 的XML文件 ...