【RCNN系列】Fast RCNN论文总结

news2024/11/15 1:54:58

目标检测论文总结

【RCNN系列】
RCNN
Fast RCNN


文章目录

  • 目标检测论文总结
  • 前言
  • 一、Pipeline
  • 二、模型设计
    • 1.改进点
    • 2.RoI pooling layer
    • 3.Backbone初始化
    • 4.采样策略
    • 5.损失函数
    • 6.其他小细节
  • 三、总结


前言

一些经典论文的总结。


一、Pipeline

在这里插入图片描述
利用Selective Search(比较古老)算法取搜索Input image中可能有物体的区域(不同于RCNN不用保存本地磁盘)即region proposal。传入Input image,把整张图送进CNN得到feature map,此时将region proposa映射到feature map中,经过一个RoI pooling later后进行分类和框回归(同RCNN)。

将region proposa映射到feature map,这样就不用把每个region proposal都传入CNN了。这是Fast RCNN相比于RCNN的一个改进点。

二、模型设计

1.改进点

在这里插入图片描述
1.更高的mAP
2.训练是单阶段取消了SVM(注意区别one stage的检测器),使用了多任务损失
3.整个网络可以同步更新因为2
4.不需要保存本地磁盘

2.RoI pooling layer

RoI(region of interest)就是感兴趣区域也就是可能有物体的proposal。RoI是由一个长度为4的元组表示(r,c,h,w),(r,c)表示其左上角的坐标,(h,w)分别是高宽。

RoI pooling layer其实就是一个最大池化层。普通的池化是有步长的,但是RoI pooling是把任何一个feature map池化成固定大小H * W(比如 7*7)。原理就是将h*w 大小的RoI划分为7* 7个网格,那么每个网格的大小就是h/7 * w/7(出现小数取整)。

不管RoI原来是多大的特征图都会划分为一个7*7大小的网格,每个网格取出最大值跟最大池化层是一样的。这样就可以统一大小可以输入进后面的全连接层,不然2000多个RoI大小肯定是不一样的,如果不统一就无法输入进全连接层。
在这里插入图片描述

3.Backbone初始化

Fast RCNN的backbone是VGG,这里以VGG16为例。

1.把VGG16的最后一个池化层换成RoI pooling
2.把最后一层全连接层和softmax去掉换成两个兄弟层
3.网络的输入是input imgae和一系列的RoI

在这里插入图片描述

4.采样策略

Fast RCNN 的一个batch是每次输入N张图片,从每个图像中都采样R/N个RoI。比如,N=2,R=128,也就是说每次输入两张图片,然后从每张图片中采样68个RoI输入backbone。因为之前RCNN是从每张图片中采样一个RoI,也就是一个bactch是由128张图片个采样1个RoI组成,这样反向传播效率很低。

效率低的原因作者是这样解释的:
在这里插入图片描述
按照我理解:如果是128张图片各选一个RoI,那么就要同时计算和存储128个不同的Feature map,结合作者说的每个RoI都可能由很大的感受野,就导致每个batch的前向传播的输入会很大,所以反向传播效率低。而如果采取Fast RCNN的策略只需要N个Feature map,R/N 个RoI是共享Feature map的,每个RoI可以直接映射到Feature map上。

再来谈正负样本的选取,每次输入两张图片,然后从每张图片中采样68个RoI输入backbone。作者从与GT框的IoU大于0.5的RoI中抽取出25%(16个正样本),这些RoI被视为正样本即前景,而剩下的RoI从 IoU [0.1,0.5] 中挑选出最大的48个。IoU阈值的设定和RCNN其实是类似的

5.损失函数

在这里插入图片描述

6.其他小细节

1.作者也使用了多尺度训练方法,但是受GPU限制只能在小backbone上使用
2.因为Fast RCNN的全连接层很多,作者使用了奇异值分解来加速运算。


三、总结

Fast RCNN相较于RCNN的改进还是挺多的,backbone用了更深的VGG,loss用了多任务损失,pipeline也变简单了,最大的改进是得益于RoI pooling的设计(任意大小的RoI feature map可以进行最大池化),可以将region proposa映射到feature map,这样就不用把每个region proposal都传入CNN了。

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

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

相关文章

Unity——通过点击鼠标进行场景切换

前记 通过点击按钮进行场景切换请参考: unity——通过点击按钮进行场景切换_行秋的博客-CSDN博客1.准备两个示例场景 2.点击File—>Build Settings...,将场景添加到视图中,点击Build。选择文件夹进行保存。(建议将文件打包到…

linux命令二

12.whoami,whereis,which,id //whoami:确认自己身份 //whereis:查询命令所在目录以及帮助文档所在目录 //which:查询该命令所在目录(类似whereis) //id:打印出自己的UID以及GID。(UID:用户身份唯一标识。GID:用户组身份唯一标识。每一个用…

程序人生——css绘制世界杯足球场

写在之前的话 花有重开日,人无再少年。 疯狂无大小,热爱即疯狂! 足球⚽️,是我大学时期的一门选修课,足球需要场地,场地绘制现在就开始!!! 四年一次的世界杯再卡塔尔进行…

电影院网站设计毕业设计,电影院网站的设计与实现,电影院售票系统源码毕设作品参考

项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于web网页的电影院购票选座系统,整个网站项目使用了B/S架构,基于python的Django框架下开发;管理员通过后台录入信息、管理信息,设置网站信息,管理…

KBPC1010-ASEMI液压升降装置方案整流桥10A 1000V

编辑-Z KBPC1010在KBPC-4封装里采用的4个芯片,其尺寸都是100MIL,是一款10A 1000V液压升降装置方案整流桥。KBPC1010的浪涌电流Ifsm为200A,漏电流(Ir)为10uA,其工作时耐温度范围为-65~150摄氏度。KBPC1010采用光阻GPP芯片材质&…

用R语言模拟混合制排队随机服务排队系统

M / M / 1系统 该系统的基本参数:: 使用M / M / 1系统进行仿真非常简单 。 lambda <- 2 mu <- 4 rho <- lambda/mu # 2/4 ..例如&#xff0c; 可以快速可视化随时间变化的资源使用情况。在下面&#xff0c;我们可以看到仿真如何收敛到系统中理论上的平均客户数。 …

单点部署linux命令----linux命令 总结篇

java -jar XXX.jar nohup java -jar xxx.jar & nohup java -jar visual_map-1.0.0.jar >/log/log.txt 2>&1 & nohup java -jar visual_map-1.0.0.jar & nohup java -jar_C18298182575的博客-CSDN博客 java -jar后台启动的四种方式_普通网友的博客-CSD…

基于JavaWeb的大学迎新系统设计与实现(源码+数据库脚本+论文+开题报告)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

NLP命名实体识别

命名实体识别&#xff08;Named Entity Recognition&#xff0c; NER&#xff09;是指在文本中识别出特殊对象&#xff0c;如人、地点、组织机构等。 命名实体识别方法概述 基于规则的方法&#xff1a;利用专家手工制订的规则进行命名实体识别。举例&#xff1a;“赵某出生于…

【动态规划】独立任务最优调度问题

1.题目描述 2.算法思路 我认为做动态规划题的关键是找到一个合适的dp数组&#xff0c;确定它dp[i][j]的含义&#xff0c;用它和题目的最优子结构性质结合求解。具体思路如下&#xff1a; (笔记些许潦草hhh…) 1.dp[i][j]表示第i个作业在第j&#xff08;0-A,1-B&#xff09;台…

Keil setting issue

1, data type default issue caused enter “hard fault during debug” void HardFault_Handler(void) { /* if Hard Fault exception occurs, go to infinite loop */ if(CoreDebug->DHCSR & 1) {//check c DEBUGEN 1 -> Debugger connected __breakpoint(0); //…

小迪-day12(SQL注入简要概述)

1、相关sql函数、语句 1.1 count() 1.1.1 count(column_name) ​ count(column_name)是计算数据库表中指定列有多少行&#xff0c; ​ 例&#xff1a; SELECT COUNT(column_name) FROM table_name1.1.2 count(*) 可以计算表中有多少行&#xff08;有多少条数据&#xff0…

基于 docker 搭建 grafana+prometheus 监控资源之mysql+docker+alertmanager配置(二)(超详细版)

先去看第一篇&#xff08;基础部署篇&#xff09;&#xff0c;看完后&#xff0c;才能接上本篇。 基于 docker 搭建 grafanaprometheus 监控资源之mysqldockeralertmanager配置&#xff08;二&#xff09;环境信息服务基本信息一、安装Mysqld_exporter1.1 标准启动1.2 docker-c…

1554_AURIX_TC275_时钟监控功能以及时钟紧急行为

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 这部分还是前面CCU寄存器的一些延续&#xff0c;寄存器支持模块的禁用、禁用状态的查询以及是否支持休眠的控制。 1. 时钟监控是时钟进行安全设计需要考虑的一个手段&#xff0c;支持两种锁…

历史性突破,200层以上存储芯片率先量产,领先国外芯片巨头

近日&#xff0c;中企芯片技术迎来历史性突破&#xff0c;200层以上存储芯片率先量产&#xff0c;领先国外存储芯片巨头&#xff0c;或将成为全球行业领导者。后起之秀&#xff0c;鱼跃龙门 众所周知&#xff0c;存储芯片的生产&#xff0c;不仅需要高端技术&#xff0c;还需要…

MySQL之MVCC

多版本并发控制MVCC&#xff0c;也就是Copy on Write思想。MVCC除了支持读和读并行&#xff0c;还支持读和写并行、写和读并行&#xff0c;但为了保持数据一致性&#xff0c;写和写是无法并行的。 ​ 如下图&#xff0c;在事务1写的时候会copy一个记录的副本&#xff0c;其他事…

编译器做了这么多,你知道吗?

编译器做了什么 从最直观的角度来讲&#xff0c;编译器就是将高级语言翻译成机器语言的一个工具。比如我们用C/C语言写的一个程序可以使用编译器将其翻译成机器可以执行的指令及数据。我们前面也提到了&#xff0c;使用机器指令或汇编语言编写程序是十分费事及乏味的事情&…

LabVIEW编程LabVIEW开发ITECH IT6000D系列电源例程与相关资料

LabVIEW编程LabVIEW开发ITECH IT6000D系列电源例程与相关资料 ​IT6000D系列大功率可编程直流电源可支持多种规格的输出能力&#xff0c;以满足高电流、低电压或高电压、低电流等多种测试需求。同时&#xff0c;相同型号的整机间可并联工作&#xff0c;以实现更强大的输出能力…

settings.py配置文件(详解)

文章目录settings.py配置文件1. settings.py文件介绍1) BASE_DIR2) SECRET_KEY3) DEBUG4) ALLOWED_HOSTS5) INSTALLED_APPS6) MIDDLEWARE7) ROOT_URLCONF8) TEMPLATES9) WSGI_APPLICATION10) DATABASES11) AUTH_PASSWORD_VALIDATORS12) LANGUAGE_CODE和TIME_ZONE13) USE_118N和…