RCNN系列论文学习:RCNN、FastRCNN、FaterRCNN、MaskRCNN(包含IOU、NMS介绍)
最近在看图像分割方面的东西,发现MaskRCNN里面有好多东西不是很理解,于是就打算简单梳理一下。找了很多博客,还有视频。这里简单记录一下。
RCNN
RCNN的英文是 Region based CNN或者说Region with CNN feature,也就是基于(候选)区域的卷积。RCNN可以说是利用深度学习进行目标检测的里程碑。
- 候选区域的生成:Selective Search,比如对图像简单分割处理后,对某些可能是物体的区域生成一些候选框。
- 对每个候选区利用深度卷积网络提取特征,例如:
- 特征送入每一类SVM分类器,判断类别(这里20是20类)
IOU和NMS
IOU就是:两个框的相交部分面积/相并部分面积。
**NMS简单说:**就是有两个候选框,预测概率得分都很高,但是两个框的iou超过了我设定的阈值,那么我认为这两个框表示的是同一个对象,我们将那个预测得分低的那一个舍去不要。
4. 回归修正bbox这部分,放在下面的Fast RCNN里面介绍吧!
缺点:
- 慢
- 计算开销、存储开销大。
FastRCNN
注意,FastRCNN与RCNN的不同之处:
- RCNN是分别将候选区域的图像块送入特征提取网络,得到特征矩阵。FastRCNN是先用特征提取网络对整张图像提取特征,然后由候选框到特征图上的投影区域获取到相应特征矩阵。
- ROI Pooling
ROI Pooling层的作用:将所有用于训练的候选框对应特征图通过pool全部采样到7×7大小。这样好处是不需要考虑输入图像大小。 - 分类器也直接换成了全连接层
边界框回归
简单理解就是,网络学习的目标是学习参数dxdydwdh。(因为我们知道,神经网络有拟合任意函数的能力,更别说这样简单的函数参数的学习了)。使得预测框进行平移缩放,更加接近ground truth。
FaterRCNN
简单讲就是说将候选框的生成通过一个RPN网络来实现,而不是SS算法。其他的几乎和Fast RCNN一样了。
RPN
RPN网络是从区域中提出Proposal的网络。如上图,其结构:conv feature map就是通过backbone提取特征得到的特征图。因为每个特征图上一点其实是与原图有一个偏移量的,或者说是可以对应原图上一个像素点的。这个是通过步长来计算的。比如特征图中的(3,3)点,如果之前的步长和为2,那么对应原图上就是(6,6),这个公式呢其实是原图大小除特征图大小取整。但是实际上等同于从原图到特征图之间的卷积步长和stride_sum。在原图上,以这个对应的像素点为中心再以设定的比例(不同size,不同宽高比例)生成k个緢框(其实这里就不是网络自动生成的了,是通过调用自己写的一个函数)。这样的话,如果特征图大小为60*54,k为9,那么一个特征图在原图上对应的緢框个数就近20000多个。几乎涵盖了所有目标。对于每个緢框,我们要去得到它的前景 /背景分类概率,对应图中的cls layer输出2 k。以及边框回归的四个参数dxdydwdh,对应图中reg layer 4k,也就是前面FastRCNN中提到的那样。这里从conv feature map 到这两个结果,首先是3x3卷积,然后分别经过了带有1×1卷积的支路(当然,对于分类layer中间还有softmax层或者sigmod层)。这么多框,其实有很多是冗余的,这里再经过一些过滤,如NMS,超过图片边界的舍去等等操作,经过边框回归参数的调整等等。最终得到Proposal结果。接下来就是FastRCNN的操作了!
MaskRCNN
maskrcnn其实就是多了一个mask分割的分支,从候选框对应的特征图上接上FCN分割网络结构。以候选框的分类结果作为目标的实例类别。具体在实例分割经典:Mask-RCNN及pytorch代码这里总结了一下。
总结
RCNN系列非常经典,其思想一下子还不容易消化,得多品味。
对了:以上很多内容都是在B站up主霹雳吧啦Wz学习来的!是对这个系列总结非常棒的!!!
RCNN系列论文学习:RCNN、FastRCNN、FaterRCNN、MaskRCNN(包含IOU、NMS介绍)相关推荐
- R-CNN系列论文综述
本文首发自 CSDN 上几期我们讲过目标检测 One-Stage 的代表 YOLOv3 本来这一期是打算写 SSD(One-Stage 的另一个代表) 的,发现 SSD 其中涉及的知识是从 R-CNN ...
- 学习笔记:R-CNN系列论文阅读,用faster-rcnn实现交通标志牌的检测
R-CNN,Fast-RCNN,Faster-RCNN都是基于候选区域(region proposal)的识别网络,在图片上寻找可能是目标存在的区域,对每个区域进行分类和检测框回归,实现目标检测. R ...
- 目标检测R-CNN系列简要总结(RCNN, FastRCNN, FasterRCNN)
R-CNN: Region with CNN feature,是一个双阶段目标检测算法系列. 内容基于 b站霹雳吧啦Wz 博主,讲的很好,这里只是做简要总结. R-CNN: 只有Feature ext ...
- RCNN系列1:RCNN介绍
目录 预备知识: RCNN(2014) 模型架构 算法流程: 1.Region proposals 候选区域选择 2.CNN特征提取
- 【论文学习】:ICCV 2017-Detect-and-Track: Efficient Pose Estimation in Videos
项目配置链接:https://blog.csdn.net/m0_37644085/article/details/84338463 ps:不仔细学习RCNN系列→FCN→Mask RCNN是不太可能读 ...
- 记录深度学习的detection系列过程--RCNN系列
reference 做一些比较有条理的梳理,尽管网上已经有很多梳理成文的博客,不过静心沉气的理解一下也是很有必要的.方便日后在脑海里形成比较有条理的知识系统. RCNN系列 过程 先后经历了RCNN( ...
- 深度学习RCNN, Fast-RCNN, Faster-RCNN的一些事
rbg大神的深度神经网络检测算法系列RCNN.Fast-RCNN.Faster-RCNN可谓是理论与实践的经典范例,论文创新点足够,在github上开源的代码更是造福广大码农,本文以当前最新Faste ...
- [论文学习]Mask R-CNN
正文: 摘要 我们提出了一个概念上简单.灵活以及通用的目标实例分割框架.我们的方法有效地检测图像中的目标,同时为每一个实例生成高质量的分割掩模.这种叫Mask R-CNN的方法通过添加一个与现有边框 ...
- Fast RCNN论文学习
Fast RCNN建立在以前使用深度卷积网络有效分类目标proposals的工作的基础上.使用了几个创新点来改善训练和测试的速度,同时还能增加检测的精确度.Fast RCNN训练VGG16网络的速度是 ...
最新文章
- .Net桌面程序的旗舰--参加亚控科技组态王7.0发布有感
- Cannot find class for bean with name解决
- 我的世界修改服务器头像,我的世界单机模式更换头像的方法 各种怪物的头等来换...
- C++ 类对象作为类成员
- 获取表数据_mysql数据库部分表被truncate,部分数据被delete的解决过程
- 64位处理器_电脑系统32位好还是64位好 哪个快?
- 配置vim在源代码中自动添加作者信息
- C++学习之路 | PTA乙级—— 1034 有理数四则运算 (20 分)(精简)
- Activiti工作流(三)——流程变量
- 烂泥:dnsmasq搭建简易DNS服务器
- svg html转换器,html – 将嵌入的SVG转换为PNG到位
- BeanFactory和FactoryBean区别
- 万年历c语言程序设计免费,C语言程序设计万年历程序
- 电脑wps可以语音录入吗_WPS怎么样?语音速记助你1分钟输入400字
- BFS - CH2906 - 武士风度的牛
- iframe框架下的子父级页面监控页面关闭事件
- mysql有mdf文件和ldf文件吗_如何得到.MDF和.LDF文件
- Python 判断列表中是否含有给定字符串
- php框架tp6自学笔记——pdf文件下载
- 高等数学同济第七版下册期中复习提纲思维导图知识体系
热门文章
- 学习Unity3D之探照灯效果和相机跟随。
- 牛客算法周周练16全题解
- 高斯混合模型(GMM)实现和可视化
- 用户画像之概念知识!
- matlab GUI制作拼图小游戏
- 如何提升网站关键词排名
- 计算机考研350是什么水平,计算机考研考350难吗
- 如何实现select * exclude column
- python从右侧向左第三个字符_字符串是一个字符序列,例如,字符串s,从右侧向左第3个字符用什么索引?_学小易找答案...
- matlab中load函数是什么意思,MATLAB中load函数的用法