当前位置: 首页 > 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;我们可以在几分钟内创建一个高效、便捷的投票平台。本文将详细介绍如何在微信小程序中添加投…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)

引言 在嵌入式系统中&#xff0c;用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例&#xff0c;介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单&#xff0c;执行相应操作&#xff0c;并提供平滑的滚动动画效果。 本文设计了一个…...

【技巧】dify前端源代码修改第一弹-增加tab页

回到目录 【技巧】dify前端源代码修改第一弹-增加tab页 尝试修改dify的前端源代码&#xff0c;在知识库增加一个tab页"HELLO WORLD"&#xff0c;完成后的效果如下 [gif01] 1. 前端代码进入调试模式 参考 【部署】win10的wsl环境下启动dify的web前端服务 启动调试…...

中科院1区顶刊|IF14+:多组学MR联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点

中科院1区顶刊|IF14&#xff1a;多组学MR联合单细胞时空分析&#xff0c;锁定心血管代谢疾病的免疫治疗新靶点 当下&#xff0c;免疫与代谢性疾病的关联研究已成为生命科学领域的前沿热点。随着研究的深入&#xff0c;我们愈发清晰地认识到免疫系统与代谢系统之间存在着极为复…...