【深度学习基础】从R-CNN到Fast R-CNN,再到MaskR-CNN,发展历程讲清楚!

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处

文章目录

  • R-CNN简介
    • R-CNN实现步骤
    • R-CNN优缺点
  • Fast R-CNN简介
    • Fast R-CNN实现流程
    • Fast R-CNN优缺点
    • Fast R-CNN的功能
  • 问题:faster rcnn 相比fast rcnn,有何改进?------RPN
  • Mask R-CNN简介
    • Mask R-CNN的由来
    • MaskR-CNN的网络结构
    • Mask分支不足
  • 参考:


R-CNN简介

R-CNN简介:区域卷积神经网络(Region Based Convolutinonal Neural Networks,R-CNN)是Girshick等人于2014年提出的第一个基于深度学习的目标检测模型,结合了卷积神经网络和选择性搜索(SelectiveSearch)算法。包括分类与回归,最大的问题速度太慢。先寻找框(region proposal),然后再卷积,因此要对所有框进行卷积操作,比较耗费时间,一张图像需要耗时49秒。只在cpu上进行计算。

R-CNN实现步骤

首先使用选择性搜索算法在输入图像中生成大量独立的候选区域,再对这些可能包含目标的候选框通过裁剪或变形的方式固定成统一尺寸。之后将它们输入到 Alex Net 网络中进行特征提取,在此基础上经过多个 SVM(Support Vector Machine,支持向量机)完成分类判断,结合线性回归的方式对得到的目标预测框进行精修。
在这里插入图片描述

R-CNN优缺点

R-CNN 算法虽然相较于传统目标检测算法在精度上有很大提升,但仍然存在不少缺陷。一方面,R-CNN 对候选区域进行尺度的变换以固定大小,会使候选区域发生形变失真而损失原有的特征信息。另一方面,R-CNN 要对得到的所有候选区域逐个进行特征提取,带来了巨大的计算消耗,进而导致目标检测速度十分缓慢。此外,R-CNN并不是端到端的整体网络,需要进行多次繁琐耗时的训练,浪费大量存储空间,导致该算法难以应用到工业领域中。

Fast R-CNN简介

Fast R-CNN简介:相比于R-CNN其主要创新之处在于:在R-CNN的全连接层和前一个卷积层中添加了一个感兴趣区域池化层(Region of interest pooling,Ro I pooling),提取每个区域建议的特征。输入到该层的不同大小特征图会被统一到固定的尺寸,不需要再对原始图片进行裁剪就可以满足全连接层的需要。这样可以保留候选样本的空间特征信息,减少对磁盘空间的占用,提高训练速度。此外,Fast R-CNN 引入了多任务损失函数,并行进行分类任务和回归任务的训练,加快模型收敛速度。对于分类器计算的参数,也不用单独进行保存,节省了许多空间,同时使模型的实现变得更加简单。

Fast R-CNN实现流程

首先对输入图像使用选择性搜索算法生成候选区域,并利用卷积神经网络对图像进行特征提取,然后将得到特征图上的感兴趣区域输入到 RoI pooling 层形成一个统一尺寸的兴趣区域特征向量,最后经过全连接层进行Soft Max 分类和边界框回归。
在这里插入图片描述

Fast R-CNN优缺点

Fast R-CNN 算法的精度和速度虽然相较于 R-CNN 算法有了大幅度的提升,却依然存在很大缺陷:需要使用计算量大的选择性搜索方法获得候选区域,候选区域的生成过程依然复杂,效率低下。该方法在> Fast R-CNN 的训练和预测时长占比很大,是 Fast R-CNN 速度进一步提升的主要限制。

Fast R-CNN的功能

Faster R-CNN也是何凯明等人提出来的。为解决 Fast R-CNN 网络使用选择性搜索方法计算量大的问题,Ren 等人(2015)提出了 Faster R-CNN。做了两个工作:
1、共享卷积。先做卷积,后在特征图上进行寻找框,计算量明显下降,只需做一次卷积,实现卷积共享。
2、实现了端到端的图像检测。 Faster R-CNN主要流程:首先使用卷积神经网络得到输入图像对应的特征图,再经过RPN 区域建议网络进行前景和背景初步分类并生成候选区域,之后和 Fast R-CNN 一样使用感兴趣区域池化层(RoI Poling)输出固定大小的特征图。最后,在分类分支得到目标的类别置信度得分,在回归分支进行目标的坐标定位。

问题:faster rcnn 相比fast rcnn,有何改进?------RPN

该算法提出候选区域建议网络 (RPN,Region Proposal Networks) 来替换选择性搜索方法,从而提高模型的检测效率。RPN(区域建议网络):RPN网络层是faster rcnn最核心的部分。作用是从(基于)特征图中产生候选框,用于后续的分类工作,分类属于二分类,是否是物体进行分类,这样就过滤掉一些非物体的候选框,判断是前景还是背景,去除背景,保留前景,前景是物体,背景是非物体。之后还要对候选框进行微调,也就是完成回归任务,目的就是将候选框尽量与实际框(ground truth)重叠的比例越大越好。最后,对删选出来的候选框按照实际需求,进行多分类。

Mask R-CNN简介

Mask R-CNN模型在Faster R-CNN模型的基础上添加了一个基于 FCN 的掩模预测分支用于实例分割。 输入图像首先通过骨干网络( Resnet - FPN)进行特征提取得到特征图,再通过区域建议网络
(RPN)在特征图上生成感兴趣区域ROI,并将感兴趣区域对应位置的特征池化为固定尺寸的特征,最后由检测分支进行目标框的分类和回归,由掩模预测分支对目标进行像素级别的分割。 特征金字塔(Feature Pyramid Networks,FPN)由 Tsung-Yi Lin 等人于 2017年提出,用于解决目标检测中的多尺度问题。
在这里插入图片描述

Mask R-CNN的由来

FasterR-CNN解决了目标检测准确率低、速度慢等问题,能够较好地完成目标的识别任务与矩形框的定位任务。但是对于某些需要输出目标边缘轮廓(即分割结果)的检测而言,FasterR-CNN只能实现检测的部分,无法完成其分割任务,而FCN刚好与之相反,它可实现分割,却无法实现目标的检测。针对这个问题,He Kai-ming等人将热门的目标检测网络—FasterR-CNN和经典的语义分割网络—FCN相结合,提出了实例分割网络——MaskR-CNN。MaskR-CNN继承于FasterR-CNN,只是在FasterR-CNN的基础上,通过FCN增加了一个mask掩码预测分支,即在保证良好检测性能的基础上,实现了目标检测和分割的一体化。

MaskR-CNN的网络结构

Mask R-CNN在Faster R-CNN的基础上改进。改进与意义:
1、FPN。采用特征金字塔网络提取特征-----FPN。对特征图进行上下采样,并做融合,特征更加丰富。
2、RoIAlign。将RoIAlign层替换RoIPooling层。保留小数特征,提高对小物体的检测精度。之前的roipooling是向下取整的,因此会损失小数部分的特征。为了对小数部分也提取特征(保留小数特征),采用roialign,这样(提高了)更适合对小物体的检测。最后输出的是7X7的特征图
3、添加了一个mask分支。对于Mask分支,是Mask R-CNN在Faster R-CNN基础上增加的分支用于生成检测目标的掩码。Mask分支的输入来自于经过ROI Align处理后的ROI。对于每一个ROI,Mask分支有K个m×m维度的输出,对这些大小为m×m的Mask进行编码,得到该ROI K个类别的概率值,由此实现实例分割的目的。如图4所示,Mask分支对其进行4次卷积和1次反卷积操作,并使用了像素级sigmoid激活函数,最后得到K×m×m维度的输出,其中K为检测目标的类别数目,m为特征图的尺寸。由于Mask分支根据分类分支所预测的类别标签来选择输出的掩码,其允许网络为每一类生成一个掩码,不同类之间不存在竞争,这使得分类和掩码生成分解开来,可以提高实例分割的效果。
在这里插入图片描述

Mask分支不足

然而Mask R-CNN作为两阶段检测模型,实行先检测后分割策略,其分割效果受检测结果的制约。对于RPN提取出的ROI特征图,Mask分支采用全卷积操作提取语义信息,这对于局部语义信息有较好的敏感度,但是忽略了上下文信息。
在这里插入图片描述

参考:

1、https://blog.csdn.net/qq_36269513/article/details/80420363?ops_request_misc=%7B%22request_id%22%3A%22164251636616780261910185%22%2C%22scm%22%3A%2220140713.130102334…%22%7D&request_id=164251636616780261910185&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-80420363.pc_search_result_control_group&utm_term=+FCN&spm=1018.2226.3001.4187

2、https://blog.csdn.net/wangdongwei0/article/details/83110305

3、https://blog.csdn.net/qq_27825451/article/details/89677068?ops_request_misc=%7B%22request_id%22%3A%22164886912816780271937139%22%2C%22scm%22%3A%2220140713.130102334.pc_all.%22%7D&request_id=164886912816780271937139&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-89677068.142%5Ev5%5Epc_search_result_cache,157%5Ev4%5Econtrol&utm_term=mask+rcnn%E7%9A%84%E7%BD%91%E7%BB%9C%E7%BB%93%E6%9E%84&spm=1018.2226.3001.4187

4、https://blog.csdn.net/linolzhang/article/details/71774168?ops_request_misc=%7B%22request_id%22%3A%22164251624216780271977050%22%2C%22scm%22%3A%2220140713.130102334…%22%7D&request_id=164251624216780271977050&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-71774168.pc_search_result_control_group&utm_term=mask+rcnn&spm=1018.2226.3001.4187

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

观察者模式——解决解耦的钥匙

● 观察者模式介绍 观察者模式是一个使用频率非常高的模式,它最常用的地方是GUI系统、订阅——发布系统。因为这个模式的一个重要作用就是解耦,将被观察者和观察者解耦,使得它们之间依赖性更小,甚至做到毫无依赖。以CUI系统来说&a…

【Spring MVC】Spring MVC框架的介绍及其使用方法

目录 一、MVC模式 1.1 MVC模式的发展 1.1.1 Model1 模型 1.1.2 Model2 模型 1.2 MVC模式简介 1.模型(Model) 2.视图(View) 3.控制器(Controller) 二、Spring MVC模型简介 三、Spring MVC 六大核心组件 3.1 六大组件简介 1.前端控制器 DispatcherServlet&#xff08…

MySQL EXPLAIN查看执行计划

MySQL 执⾏计划是 MySQL 查询优化器分析 SQL 查询时⽣成的⼀份详细计划,包括表如何连 接、是否⾛索引、表扫描⾏数等。通过这份执⾏计划,我们可以分析这条 SQL 查询中存在的 问题(如是否出现全表扫描),从⽽进⾏针对优化…

C语言查看各数据类型所占大小

编译器&#xff1a;VC2010 #include<stdio.h> int main() {printf("%d\n",sizeof(char));printf("%d\n",sizeof(short));printf("%d\n",sizeof(int));printf("%d\n",sizeof(long));printf("%d\n",sizeof(long long))…

基于Pytorch框架的LSTM算法(一)——单维度单步预测(1)

1.项目说明 使用data中的close列的时间序列数据完成预测【使用close列数据中的前windowback-1天数据完成未来一天close的预测】 2.数据集 Date,Open,High,Low,Close,Adj Close,Volume 2018-05-23,182.500000,186.910004,182.179993,186.899994,186.899994,16628100 2018-05…

阅读论文StyleGAN2-ada

在图像分类任务中,使用旋转、噪声等数据增强方法训练图像分类器,可以提高分类器对这些保留语义的扭曲的不变性,这是图像分类器极为期望的一种质量。 引用Bora等人的工作,指出只要增强过程可以表示为概率分布上的可逆变换,那么训练过程中网络可以消除这种增强,找到正确的分布。…

Python之Excel数据相关

Excel Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具&#xff0c;再加上成功的市场营销&#xff0c;使Excel成为最流行的个人计算机数据处理软件。在1993年&#xff0c;作为Microsof…

史上最全,从初级测试到高级测试开发面试题汇总,冲击大厂年50w+

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 接口测试面试相关…

合成数据对于机器学习模型至关重要

机器学习算法彻底改变了我们处理和分析数据的方式&#xff0c;在从医疗诊断到自动驾驶汽车等领域取得了突破。然而&#xff0c;为了有效地训练这些模型&#xff0c;需要大量高质量的数据。这可能是一个挑战&#xff0c;尤其是在具有敏感或私人信息或难以获取数据的行业中。 合…

试利用栈的基本操作写出先序遍历二叉树的非递归形式的算法

试利用栈的基本操作写出先序遍历二叉树的非递归形式的算法 代码思路&#xff1a; 要用栈解决先序遍历&#xff0c;我们首先要知道栈的性质和二叉树先序遍历的规则 栈最基本的就是先进后出 而二叉树先序遍历就是“根左右” 利用这两个性质&#xff0c;我们可以先将根结点入队…

Linux Vim撤销和恢复撤销快捷键

使用 Vim 编辑文件内容时&#xff0c;经常会有如下 2 种需求&#xff1a; 对文件内容做了修改之后&#xff0c;却发现整个修改过程是错误或者没有必要的&#xff0c;想将文件恢复到修改之前的样子。 将文件内容恢复之后&#xff0c;经过仔细考虑&#xff0c;又感觉还是刚才修改…

唐顿庄园的AI圣诞设计(ideogram.ai )

唐顿庄园是一部经典的英国历史剧&#xff0c;讲述了 Crawley 家族在 20 世纪初生活的故事。该剧以其精美的服装、场景和道具而闻名&#xff0c;因此它是圣诞装饰的绝佳灵感。 在本文中&#xff0c;我们将使用 ideogram.ai 创建一个 Downton Abbey 圣诞设计。ideogram.ai 是一个…