【目标检测】Casecade R-CNN论文讲解(超详细版本)

news2024/11/18 20:42:01

目录:Casecade R-CNN论文讲解

  • 一、背景
  • 二、简单回顾R-CNN结构
    • 2.1 Training阶段
    • 2.2 Inference阶段
  • 三、论文摘要
  • 四、介绍
  • 五、关于mismatch问题
  • 六、关于单纯增大训练时IoU阈值问题
  • 七、相关工作
    • 7.1 two-stage
    • 7.2 one-stage
    • 7.3 multi-stage
  • 八、Cascade R-CNN讲解
  • 九、总结

论文讲解已经整理成word版本发布,作品源地址为:

https://mbd.pub/o/bread/Y56Tmp1x

下面是展示的部分数据!

一、背景

从文章的题目上我们就可以看出这篇文章的目标是提高检测质量,希望能获得更精确的检测结果。文章提出的cascade结构的效果是惊艳的,几乎对于任意的R-CNN(Faster RCNN,FPN,R-FCN等)都可以带来 到 个点的AP提升。

Object Detection需要找到true positives,同时抑制大量的close false positives。训练detector时需要使用IoU阈值 来定义positive和negative。

二、简单回顾R-CNN结构

以经典的Faster RCNN为例。整个网络可以分为两个阶段,training阶段和inference阶段,如下图所示:

在这里插入图片描述

2.1 Training阶段

在这里插入图片描述
在这里插入图片描述

2.2 Inference阶段

在这里插入图片描述

三、论文摘要

在这里插入图片描述

四、介绍

目标检测是一个复杂的问题,需要解决两个主要的任务:

  • 首先,检测器必须解决识别问题,区别前景目标和背景目标,并为其分配匹配的类别标签;
  • 其次,检测器必须解决定位问题,为不同的目标分配精确的bounding box。

许多目标检测器都是基于两阶段网络框架Faster R-CNN的。两阶段检测网络是一个多任务学习问题,包括目标的分类和边界框回归。

与物体识别不同的是,定义正/负样本需要一个IoU阈值。通常使用的IoU阈值为0.5 , 0.5对IoU的设置是相当低的。检测的目标经常包括很多噪声。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、关于mismatch问题

在training阶段和inference阶段使用不同的阈值很容易导致mismatch,什么意思呢?

在training阶段,由于给定了GT,所以可以把与GT的IoU大于阈值的proposals作为正样本,这些正样本参与之后的bbox回归学习和分类。

在inference阶段,由于GT是未知的,所以只能把所有的proposals都当作正样本,让后面的bbox回归器回归坐标。且在inference阶段,只有生成的proposals自身的IoU值和训练器训练时设定的IoU阈值较为接近时,训练器输出的IoU值才会高即网络性能才好。

所以在training阶段和inference阶段,bbox回归的输入分布是不一样的,training阶段输入的proposals质量更高(被采样过,IoU>threshold),inference阶段的输入proposals质量相对较差(没有采样过,可能包含很多IoU<threshold的情况),这就是论文中提到的mismatch问题,这个问题是固有存在的,通常threshold取0.5时,mismatch问题不会很严重。

六、关于单纯增大训练时IoU阈值问题

在这里插入图片描述
在这里插入图片描述
从上图可以看到,随着stage的加深,相应区域的positive依旧拥有大量的proposal,因此不会出现严重的过拟合现象。

七、相关工作

7.1 two-stage

在这里插入图片描述

7.2 one-stage

在这里插入图片描述

7.3 multi-stage

在这里插入图片描述

八、Cascade R-CNN讲解

本文解决的重要思想是每一个单独的detector只对一个单独的IoU(原文称quality level)进行优化。此前有类似的工作,但本文的思想与其不同,此前是对False positive rate优化,本文是对一个给定的IoU阈值优化。

高IoU预设在输入高IoU样本时输出较好,低IoU预设在输入低IoU样本时输出较好。也就是说预设值与输入值匹配的情况下表现最好。

然而,要生成一个高质量的detector,光是简单地提高阈值也没什么用,如上面讲过的,提高阈值输出还是不断下降,作者认为这样的原因是因为提高阈值之后会使positive samples太少。本来神经网络就很脆弱,这么少的样本很容易造成过拟合。另一个问题是上文提到的预设与输入IoU阈值不匹配的问题。

作者首先给了一张当时比较流行的方法示意图,此图后文用到多次,我们称之为结构图,各大写字母含义图中也给出解释:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

九、总结

RPN提出的proposals大部分质量不高,导致没办法直接使用高阈值的detector,Cascade R-CNN使用cascade回归作为一种重采样的机制,逐stage提高proposal的IoU值,从而使得前一个stage重新采样过的proposals能够适应下一个有更高阈值的stage。这篇论文的启发:

在这里插入图片描述

IoU阈值训练级联检测器。最关键的是逐渐提高的IoU阈值的stage要对应着高IoU阈值样本的分布,否则很容易发生过拟合;恰巧的是低IoU阈值的bbox在经过回归后,其IoU阈值一定会变大,故这样就级联起来了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/149271.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【NI Multisim 14.0原理图设计基础——元器件分类】

目录 序言 一、元器件分类 &#x1f349;1.电源库 &#x1f349;2.基本元器件库 &#x1f349;3.二极管库 &#x1f349; 4.晶体管库 &#x1f349;5.模拟元器件库 &#x1f349; 6.TTL库 &#x1f349;7.CMOS库 &#x1f349;8.其他数字元器件库 &#x1f349;9.混合…

白帽子VPS 选购指南

本文长期更新&#xff0c;用于记录价格便宜&#xff0c;可以支持个人代码审计测试/部署资产监控任务/hw临时使用等。因为国内云服务器的一些限制&#xff0c;所以文章推荐服务器均为国外服务器&#xff0c;且不需要进行实名认证 PS&#xff1a;不要进行未授权非法活动&#xf…

2、HDFS 入门

一、概述 ​ HDFS&#xff08;Hadoop Distributed File System&#xff09;是分布式文件存储系统&#xff0c;主要用来解决海量数据的存储问题。HDFS比较适合一次写入&#xff0c;多次读出的场景。 NameNode&#xff08;NN&#xff09; 管理HDFS的namespace维护副本策略管理Bl…

黑马学ElasticSearch(二)

目录&#xff1a; &#xff08;1&#xff09;初始ES-安装IK分词器 &#xff08;2&#xff09;IK分词器的拓展和停用词典 &#xff08;3&#xff09;操作索引库-mapping属性 &#xff08;4&#xff09;操作索引库-创建索引库 &#xff08;5&#xff09;操作索引库-查询-删除…

2023浙大MPA项目复试参考

今年浙大MPA项目复试是否会恢复线下面试呢&#xff1f;从形式上来说&#xff0c;常规批复试无论是采取钉钉线上还是现场&#xff0c;似乎都可以顺利完成这一项研究生录取前的必要环节。但在2021年浙大MBA和MPA两个项目顶着风险组织了一次现场面试&#xff0c;只不过是放在了西溪…

EEG-SEED数据集作者的---基线论文阅读和分析

《Investigating Critical Frequency Bands and Channels for EEG-based Emotion Recognition with Deep Neural Networks》 方法&#xff1a; A.预处理根据被试的反应&#xff0c;只选择诱发目标情绪的实验时期进行进一步分析。 将原始脑电图数据降采样至200Hz采样率。目视…

【C语言课堂】 函数精讲

欢迎来到 Claffic 的博客 &#x1f49e;&#x1f49e;&#x1f49e; 前言&#xff1a; 上期我们详细讲了分支和循环语句&#xff0c;这次我们来讲解函数。说到函数&#xff0c;大家应该不陌生。C语言中的函数是什么样的呢&#xff1f;听我娓娓道来 ~ 目录 ❤️1.何为函数 &a…

目标检测:YOLO V1 思想总结

目标检测&#xff1a;YOLO V1 思想总结YOLO V1Introduction&#xff08;模型介绍&#xff09;Network Design&#xff08;网络设计&#xff09;Backbone&#xff08;骨干网络&#xff09;Grid Cell&#xff08;单元格&#xff09;Loss Function&#xff08;损失函数&#xff09…

信息系统项目管理师考点之进度与成本常见计算

信息系统项目管理师考点之进度与成本常见计算总时差和自由时差区别PERT技术进度管理常见问题解决方案挣值分析成本控制主要工作内容参考链接总时差和自由时差区别 总时差 指一项工作在不影响总工期的前提下所具有的机动时间 总时差 LS - ES LF - EF 自由时差 指一项工作在不…

【STL标准库 范型编程】学习笔记(1):C++学习网站、STL六大部件介绍

目录 简介C++学习网站STL六大部件学习来源结语简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国…

YUTU

FE: Cortex-R4 处理器 第一个基于 ARMv7-R 体系结构的深层嵌入式实时处理器 BE : Cortex-M3处理器 基于 ARMv7-M体系结构 The YuTu SoC is a Flash memory controller chip, which provides a PCIe Gen 3x4 host interface and 4 channels (up to 8 CEs per channel) Flash in…

【自学C++】C++变量赋值

C变量赋值 C变量赋值教程 变量 的赋值就是给已经定义的变量进行重新设置值的过程&#xff0c;C 中变量的赋值可以单独为单个变量赋值&#xff0c;也可以同时为多个变量赋值。 C变量赋值详解 语法 varname1 value1;参数 参数描述varname1需要赋值的变量。value1需要给变量…

【MySQL系列】Java的JDBC编程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 目录 文章目录 前言 一、JCBD背景知识引入 二、安装MySQL数据库驱动包&#xff0c;并且导入到项目中 三、JDBC的使用 3.1 JDBC插入数据操作 3.2 JDBC修改数据操作…

哈希(C++)

C语言总结在这常见八大排序在这作者和朋友建立的社区&#xff1a;非科班转码社区-CSDN社区云&#x1f496;&#x1f49b;&#x1f499;期待hxd的支持哈&#x1f389;&#x1f389;&#x1f389;最后是打鸡血环节&#xff1a;想多了都是问题&#xff0c;做多了都是答案&#x1f…

计算机网络复习之运输层

文章目录ARQ协议停等式ARQ回退n帧的ARQ&#xff08;GBN&#xff09;选择性重传ARQ&#xff08;SR&#xff09;UDP协议TCP协议TCP协议的特点TCP报文段首部格式TCP连接管理TCP可靠传输TCP的流量控制TCP拥塞控制参考拥塞&#xff1a;若对网络中某一资源的需求超过了该资源所能提供…

Jenkins安装

Jenkins安装1、Jenkins简介2、Jenkins安装2.1 安装条件2.2 安装JDK2.2.1 检索可用包2.2.2 安装2.3 下载Jenkins的war包2.4 启动jenkins并测试3、安装maven1、Jenkins简介 Jenkins是一款开源 CI&CD 软件&#xff0c;用于自动化各种任务&#xff0c;包括构建、测试和部署软件…

LeNet5—论文及源码阅读

LeNet5—论文及源码阅读&#x1f42c; 目录: 一、概论二、论文选读三、源码精读四、参考资料 一、概论 LeNet-5是一种经典的卷积神经网络结构&#xff0c;于1998年投入实际使用中。该网络最早应用于手写体字符识别应用中。普遍认为&#xff0c;卷积神经网络的出现开始于LeCu…

蓝牙Inquiry与Inquiry Scan

文章目录一、Inquiry和Inquiry Scan二、Inquiry的三种模式2.1 Inquiry命令2.2 标准Inquiry应答2.3 带RSSI的Inquiry应答2.4 带EIR的Inquiry应答三、Extend Inquiry Response3.1 EIR数据格式3.2 EIR数据注册3.3 EIR数据解析示例3.4 获取对端设备名称的方法四、Inquiry Scan参数一…

推荐系统入门学习(二)【小白入门系列】

搭建你的第一个推荐系统 初识推荐系统 最初的推荐系统&#xff0c;作用是过滤垃圾邮件。今日机器学习算法的发展&#xff0c;朴素贝叶斯、神经网络已然成为了过滤垃圾邮件的好手。但是在30年前&#xff0c;算法还没有如今使用得广泛的时候&#xff0c;“找相同”就成为了过滤…

大型网络游戏任务系统的架构与设计

在网路游戏中做任务已经成为游戏很重要的一个核心功能和玩法&#xff0c;如何做好一个灵活可扩展的任务系统的架构与设计&#xff0c;今天来给大家分享一些我们的设计经验。接下来我把整个的任务系统分成以下6个模块:任务配置表设计与管理;游戏任务的解锁与生成;任务完成判定;任…