当前位置: 首页 > news >正文

【深度学习基础】从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

相关文章:

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

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...

面试算法51:节点值之和最大的路径

题目 在二叉树中将路径定义为顺着节点之间的连接从任意一个节点开始到达任意一个节点所经过的所有节点。路径中至少包含一个节点,不一定经过二叉树的根节点,也不一定经过叶节点。给定非空的一棵二叉树,请求出二叉树所有路径上节点值之和的最…...

阿里云 k8s 容器服务 设置节点为不可调度的两种方法有什么区别?

两种方法的区别在于:drain 会驱逐原来节点上的所有 pod,而 cordon 只是停止调度, 禁止新的 pod 调度进来,但旧的 pod 不会受影响。...

新一代数据质量平台datavines

在我实习的第一家公司的时候,有幸参与Apache Griffin的开发,也先后在一起其他公司使用过数据质量平台,同时也调研过一些开源的数据质量平台。 最近和朋友一起参与开发了datavines数据质量平台,随着在数据行业越呆越久&#xff0c…...

建议收藏《2023华为海思实习笔试-数字芯片真题+解析》(附下载)

华为海思一直以来是从业者想要进入的热门公司。但是岗位就那么多,在面试的时候,很多同学因为准备不充分,与岗位失之交臂,无缘进入该公司。今天为大家带来《2023华为海思实习笔试-数字芯片真题解析》题目来源于众多网友对笔试的记录…...

【详细教程】关于如何使用GitGitHub的基本操作汇总GitHub的密钥配置 ->(个人学习记录笔记)

文章目录 1. Git使用篇1.1 下载安装Git1.2 使用Git 2. GitHub使用篇2.1 如何git与GitHub建立联系呢?2.2 配置公钥 1. Git使用篇 1.1 下载安装Git 点击 官网链接 后,进入Git官网,下载安装包 然后根据系统类型进行下载,一般为wind…...

HTML样式CSS、图像

HTML样式-CSS: CSS (Cascading Style Sheets) 用于渲染HTML元素标签的样式。CSS可以通过以下方式添加到HTML中&#xff1a;1&#xff09;、内联方式&#xff1a;在HTML元素中使用“style”属性&#xff1b;2&#xff09;、内部样式表&#xff1a;在HTML文档头部<head>区…...

智能电表瞬时电量是什么意思?

智能电表已经成为我们进行能源管理的重要工具。其中&#xff0c;瞬时电量这一概念逐渐走进大众视野。那么&#xff0c;智能电表瞬时电量究竟是什么意思&#xff1f;它对我们的生活和能源管理又有哪些影响呢&#xff1f;下面&#xff0c;小编就来为大家介绍一下瞬时电量&#xf…...

Redis之 redis.config配置文件

文章目录 前言一、基本配置1.单位2.包含3.网络配置4.通用5.快照6.安全7.限制8.仅追加模式 二、总体主要介绍总结 前言 行家一出手&#xff0c;就知有没有&#xff0c;让一起学习redis.config配置文件。 一、基本配置 Redis 的配置文件位于 Redis 安装目录下&#xff0c;文件名…...

BIOS开发笔记 - CMOS

CMOS原来指的是一种生产电子电路的工艺,在PC上一般指的是RTC电路单元,因为早期它是由这种工艺生产出来的,所以又把RTC称作了CMOS。 RTC(Real Time Clock)即实时时钟,用于保存记录时间和日期,也可以用来做定时开机功能。RTC靠一组独立的电源给它供电,这样设计的目的就是…...

leetcode_117 填充每个节点的下一个右侧节点指针 II

文章目录 1. 题意2. 题解2.1 BFS2.2 BFS空间优化2.3 DFS序层次记录 3. Ref 1. 题意 在一颗树的同层之间用指针把他们链接起来。 填充每个节点的下一个右侧节点指针 II 2. 题解 2.1 BFS 用一个变量记录下同层最右侧的节点&#xff0c;当遍历到时更新下一层的最右侧节点即可…...

亲测 IDEA Pycharm 全家桶 自动重置免费30天

理论上是通用的 插件市场安装 添加第三方插件仓库地址 在Settings/Preferences... -> Plugins 内手动添加第三方插件仓库地址&#xff1a;https://plugins.zhile.io 搜索&#xff1a;IDE Eval Reset插件进行安装。如果搜索不到请注意是否做好了上一步&#xff1f;网络是否…...

Marp: 将 Markdown 变为 PPT 式样的 VScode 插件

样例代码&#xff1a; --- marp: true size: 16:9 theme: default header: footer: --- <!-- _footer: Jia ming<br>Gansu University of Political Science and Law --> <!-- _backgroundColor: lightskyblue --> ## <!-- fit --> 笔记检验概述>…...

根据正则表达式截取字串符,这个办法打败99%程序员

作为一名程序员&#xff0c;常常会在以下情况下使用函数功能根据正则表达式截取字符串&#xff1a; 1.字符串处理&#xff1a;当需要使用正则表达式匹配和提取字符串中的特定模式时&#xff0c;可以使用该函数。例如&#xff0c;从一段文本中提取电子邮件地址、电话号码或网站…...

冬天女儿的羽绒服就选它了,哈哈很喜欢

长款设计感满满的羽绒服 真的一下子就戳中了我的心巴 90白鸭绒&#xff0b;杜邦三防工艺&#xff0b;精细压线 厚实保暖不臃肿&#xff0c;粉色撞色甜美又可爱...

Vim插件配置

工欲善其事&#xff0c;必先利其器&#xff0c;倒腾一下vim的配置&#xff0c;做个记录。 ".vimrc里的内容&#xff1a;""for base configure set t_Co256 if ! has("gui_running")set t_Co256 endifif &diffhighlight DiffAdd ctermbold cte…...

函数参数的最佳传递方式与现代C++的规则

函数参数的最佳传递方式与现代C的规则 在C中&#xff0c;如何最佳地传递函数参数以及如何处理类的特殊成员函数&#xff0c;一直是优化性能和代码质量的重要话题。下面我将详细解释这些概念。 使用移动语义实现 Swap 函数 移动语义&#xff08;Move Semantics&#xff09;能…...

Asterisk Ubuntu 安装

更新环境 sudo apt update sudo apt install wget build-essential git autoconf subversion pkg-config libtool sudo contrib/scripts/get_mp3_source.sh A addons/mp3 A addons/mp3/common.c A addons/mp3/huffman.h A addons/mp3/tabinit.c A addons/mp3/Ma…...

rwkv模型lora微调之accelerate和deepspeed训练加速

目录 一、rwkv模型简介 二、lora原理简介 三、rwkv-lora微调 1、数据整理 2、环境搭建 a、Dockerfile编写 b、制造镜像 c、容器启动 3、训练代码修改 四、模型推理 1、模型推理 2、lora权重合并 3、推理web服务 五、总结 由于业务采用的ChatGLM模型推理成本太大了…...

分享一下在微信小程序里怎么做一个投票链接

在当今信息化社会&#xff0c;投票已成为各行各业收集意见、汇聚智慧的重要手段。传统的投票方式往往需要投入大量人力物力&#xff0c;而如今&#xff0c;借助微信小程序&#xff0c;我们可以在几分钟内创建一个高效、便捷的投票平台。本文将详细介绍如何在微信小程序中添加投…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行&#xff1a; rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

Python竞赛环境搭建全攻略

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型&#xff08;算法、数据分析、机器学习等&#xff09;不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...

联邦学习带宽资源分配

带宽资源分配是指在网络中如何合理分配有限的带宽资源&#xff0c;以满足各个通信任务和用户的需求&#xff0c;尤其是在多用户共享带宽的情况下&#xff0c;如何确保各个设备或用户的通信需求得到高效且公平的满足。带宽是网络中的一个重要资源&#xff0c;通常指的是单位时间…...

使用homeassistant 插件将tasmota 接入到米家

我写一个一个 将本地tasmoat的的设备同通过ha集成到小爱同学的功能&#xff0c;利用了巴法接入小爱的功能&#xff0c;将本地mqtt转发给巴法以实现小爱控制的功能&#xff0c;前提条件。1需要tasmota 设备&#xff0c; 2.在本地搭建了mqtt服务可&#xff0c; 3.搭建了ha 4.在h…...

EC2安装WebRTC sdk-c环境、构建、编译

1、登录新的ec2实例&#xff0c;证书可以跟之前的实例用一个&#xff1a; ssh -v -i ~/Documents/cert/qa.pem ec2-user70.xxx.165.xxx 2、按照sdk-c demo中readme的描述开始安装环境&#xff1a; https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c 2…...

JVM——对象模型:JVM对象的内部机制和存在方式是怎样的?

引入 在Java的编程宇宙中&#xff0c;“Everything is object”是最核心的哲学纲领。当我们写下new Book()这样简单的代码时&#xff0c;JVM正在幕后构建一个复杂而精妙的“数据实体”——对象。这个看似普通的对象&#xff0c;实则是JVM内存管理、类型系统和多态机制的基石。…...