最近在看图像分割方面的东西,发现MaskRCNN里面有好多东西不是很理解,于是就打算简单梳理一下。找了很多博客,还有视频。这里简单记录一下。

RCNN

RCNN的英文是 Region based CNN或者说Region with CNN feature,也就是基于(候选)区域的卷积。RCNN可以说是利用深度学习进行目标检测的里程碑。

  1. 候选区域的生成:Selective Search,比如对图像简单分割处理后,对某些可能是物体的区域生成一些候选框。
  2. 对每个候选区利用深度卷积网络提取特征,例如:
  3. 特征送入每一类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介绍)相关推荐

  1. R-CNN系列论文综述

    本文首发自 CSDN 上几期我们讲过目标检测 One-Stage 的代表 YOLOv3 本来这一期是打算写 SSD(One-Stage 的另一个代表) 的,发现 SSD 其中涉及的知识是从 R-CNN ...

  2. 学习笔记:R-CNN系列论文阅读,用faster-rcnn实现交通标志牌的检测

    R-CNN,Fast-RCNN,Faster-RCNN都是基于候选区域(region proposal)的识别网络,在图片上寻找可能是目标存在的区域,对每个区域进行分类和检测框回归,实现目标检测. R ...

  3. 目标检测R-CNN系列简要总结(RCNN, FastRCNN, FasterRCNN)

    R-CNN: Region with CNN feature,是一个双阶段目标检测算法系列. 内容基于 b站霹雳吧啦Wz 博主,讲的很好,这里只是做简要总结. R-CNN: 只有Feature ext ...

  4. RCNN系列1:RCNN介绍

    目录 预备知识: RCNN(2014) 模型架构 算法流程: 1.Region proposals 候选区域选择 2.CNN特征提取

  5. 【论文学习】:ICCV 2017-Detect-and-Track: Efficient Pose Estimation in Videos

    项目配置链接:https://blog.csdn.net/m0_37644085/article/details/84338463 ps:不仔细学习RCNN系列→FCN→Mask RCNN是不太可能读 ...

  6. 记录深度学习的detection系列过程--RCNN系列

    reference 做一些比较有条理的梳理,尽管网上已经有很多梳理成文的博客,不过静心沉气的理解一下也是很有必要的.方便日后在脑海里形成比较有条理的知识系统. RCNN系列 过程 先后经历了RCNN( ...

  7. 深度学习RCNN, Fast-RCNN, Faster-RCNN的一些事

    rbg大神的深度神经网络检测算法系列RCNN.Fast-RCNN.Faster-RCNN可谓是理论与实践的经典范例,论文创新点足够,在github上开源的代码更是造福广大码农,本文以当前最新Faste ...

  8. [论文学习]Mask R-CNN

    正文: 摘要  我们提出了一个概念上简单.灵活以及通用的目标实例分割框架.我们的方法有效地检测图像中的目标,同时为每一个实例生成高质量的分割掩模.这种叫Mask R-CNN的方法通过添加一个与现有边框 ...

  9. Fast RCNN论文学习

    Fast RCNN建立在以前使用深度卷积网络有效分类目标proposals的工作的基础上.使用了几个创新点来改善训练和测试的速度,同时还能增加检测的精确度.Fast RCNN训练VGG16网络的速度是 ...

最新文章

  1. .Net桌面程序的旗舰--参加亚控科技组态王7.0发布有感
  2. Cannot find class for bean with name解决
  3. 我的世界修改服务器头像,我的世界单机模式更换头像的方法 各种怪物的头等来换...
  4. C++ 类对象作为类成员
  5. 获取表数据_mysql数据库部分表被truncate,部分数据被delete的解决过程
  6. 64位处理器_电脑系统32位好还是64位好 哪个快?
  7. 配置vim在源代码中自动添加作者信息
  8. C++学习之路 | PTA乙级—— 1034 有理数四则运算 (20 分)(精简)
  9. Activiti工作流(三)——流程变量
  10. 烂泥:dnsmasq搭建简易DNS服务器
  11. svg html转换器,html – 将嵌入的SVG转换为PNG到位
  12. BeanFactory和FactoryBean区别
  13. 万年历c语言程序设计免费,C语言程序设计万年历程序
  14. 电脑wps可以语音录入吗_WPS怎么样?语音速记助你1分钟输入400字
  15. BFS - CH2906 - 武士风度的牛
  16. iframe框架下的子父级页面监控页面关闭事件
  17. mysql有mdf文件和ldf文件吗_如何得到.MDF和.LDF文件
  18. Python 判断列表中是否含有给定字符串
  19. php框架tp6自学笔记——pdf文件下载
  20. 高等数学同济第七版下册期中复习提纲思维导图知识体系

热门文章

  1. 学习Unity3D之探照灯效果和相机跟随。
  2. 牛客算法周周练16全题解
  3. 高斯混合模型(GMM)实现和可视化
  4. 用户画像之概念知识!
  5. matlab GUI制作拼图小游戏
  6. 如何提升网站关键词排名
  7. 计算机考研350是什么水平,计算机考研考350难吗
  8. 如何实现select * exclude column
  9. python从右侧向左第三个字符_字符串是一个字符序列,例如,字符串s,从右侧向左第3个字符用什么索引?_学小易找答案...
  10. matlab中load函数是什么意思,MATLAB中load函数的用法