目标检测-Two Stage-Mask RCNN

文章目录

  • 前言
  • 一、Mask RCNN的网络结构和流程
  • 二、Mask RCNN的创新点
  • 总结


前言

前文目标检测-Two Stage-Faster RCNN提到了Faster RCNN主要缺点是:

  • ROI Pooling有两次量化操作,会引入误差影响精度

Mask RCNN针对这一缺点做了改进,此外Mask RCNN还添加了全卷积网络的分支,拓展了网络的应用范围,使其可用于多种视觉任务:包括目标分类、目标检测、语义分割、实例分割、人体姿态识别等


提示:以下是本篇文章正文内容,下面内容可供参考

一、Mask RCNN的网络结构和流程

  1. 利用骨干网架构(Backbone Architecture)提取多尺度特征,获得多尺度共享卷积特征图(Feature Maps)

Backbone Architecture由Backbone(ResNet50)和特征金字塔网络FPN(Feature Pyramid Network)组成
在这里插入图片描述

  1. 利用RPN(Region Proposal Network)网络生成候选框,进行分类和第一次边框修正

ps:输入的是多个尺度特征图,每个特征图对应一个RPN,因为输入是多尺度特征,就不需要再对每层都使用3种不同尺度的anchor了,所以只为每层设定一种尺寸的anchor
在P2-P6的五个特征图上分别对应设置5个不同的anchor size(32, 64, 128, 256, 512)并设置3种长宽比(0.5, 1.0, 2.0),也就是每个特征图的每个像素点生成3个anchor(x, y, w, h)
例如,输入图像为512 × 512,那么五个特征图的尺寸分别为128, 64, 32, 16, 8,那么生成的anchors的数量为(128 × 128 + 64 × 64 + 32 × 32 + 16 × 16 + 8 × 8) × 3 = 21824 × 3 = 65472
在这里插入图片描述

  1. 将生成的Region Proposal和多尺度共享卷积特征图(Feature Maps)输入RoI Align,获取每个候选框的多尺度池化特征图

ps:ROI Align是RoI Pooling的改进
ROI Align并没有采用量化操作,而是使用线性插值算法计算特征图,因为没有用到量化操作,就没有引入误差,即原图中的像素和feature map中的像素是完全对齐的,没有偏差,这不仅会提高检测的精度,同时也会有利于实例分割。
在这里插入图片描述

  1. 将候选框的池化特征图输入Head Architecture结构进行分类、第二次边框修正以及生成掩膜(mask)

ps:当使用FPN时,Head Architecture为左边结构,反之为右边结构,实际使用中右边结构更加常用
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

二、Mask RCNN的创新点

  1. 结合FCN增加了Mask Prediction Branch,使得到的网络可用于多种视觉任务,向通用视觉模型迈出了一步
  2. 提出了RoI Pooling的改良方法RoI Align,提高了精度
  3. 通过引入特征金字塔网络(Feature Pyramid Network,简称FPN)来处理不同尺度的目标,有助于改进目标检测的性能,尤其是小尺寸对象目标检测。

总结

  • 整个Mask R-CNN算法非常的灵活,可以用来完成多种任务,包括目标分类、目标检测、语义分割、实例分割、人体姿态识别等多个任务
  • 除此之外,我们可以更换不同的Backbone Architecture和Head Architecture来获得不同性能的结果。
  • 但是,Mask RCNN仍未脱离Two Stage算法速度慢的限制,难以用于实时场景,因此,出现了目标检测新的流派:One Stage算法

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

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

相关文章

C/C++动态内存分配 malloc、new、vector(简单讲述)

路虽远,行则将至 事虽难,做则必成 今天来主要讲C中动态内存分配 其中会穿插一些C的内容以及两者的比较 如果对C语言中的动态内存分配还不够理解的同学 可以看看我之前的博客:C语言动态分配 在讲解C的动态内存分配之前 我们先讲一下C内存模型 &#xff1…

楼宇智慧能源消耗监测管理系统,楼宇中的能源“管家”

随着人口的增加,楼宇数据呈上涨趋势,但是楼宇智能建设在我国普及性远远不足,相比传统楼宇控制,智能楼宇控制系统对于楼宇内部的用电设备控制,能够更加的节约能源,降低成本。对于现代化楼宇而言,…

ORACLE P6 v23.12 最新虚拟机(VM)全套系统环境分享

引言 根据上周的计划,我简单制作了两套基于ORACLE Primavera P6 最新发布的23.12版本预构建了虚拟机环境,里面包含了全套P6 最新版应用服务 此虚拟机仅用于演示、培训和测试目的。如您在生产环境中使用此虚拟机,请先与Oracle Primavera销售代…

C#最佳工具集合:IDE、分析、自动化工具等

C#是企业中广泛使用的编程语言,特别是那些依赖微软的程序语言。如果您使用C#构建应用程序,则最有可能使用Visual Studio,并且已经寻找了一些扩展来对您的开发进行管理。但是,这个工具列表可能会改变您编写C#代码的方式。 C#编程的…

模拟器怎么代理IP?代理IP对手机设置模拟器有哪些影响?

一、代理IP的基本概念和作用流冠代理IP是一种网络服务,可以帮助用户隐藏自己的真实IP地址,通过代理服务器进行网络请求,从而保护用户的隐私和安全。在模拟器中,代理IP的作用也是如此,可以帮助模拟器隐藏真实的IP地址&a…

Hubery-个人项目经历记录

研究生期间很有幸的进入到了崔老师的组,从此也就进入到了分析人体生理信号的领域,充满挑战的同时也充满了乐趣。借着CSDN整理一下近几年来参与的项目,这里蕴含着我各种美好的回忆,也作为一个展示自己的平台吧。 开始之前&#xff…

小红书12月内容趋势分析

为洞察小红书平台的内容创作趋势及品牌营销策略,新红推出12月月度榜单,从创作者、品牌、热搜词多方面入手,解析月榜数据,为从业者提供参考。 以下为12月部分榜单解析,想要查看更多行业榜单,创作优质内容&am…

【MySQL】常用存储引擎,数据库管理,数据表管理,数据库账户管理

目录 一 常用的数据引擎(4) 1.1 InnoDB存储引擎 1.2 MyISAM存储引擎 1.3 Memory存储引擎 1.4 ARCHIVE存储引擎 二 数据库管理 2.1 元数据库概念与分类 2.2 相关操作命令 三 数据表的管理 3.1 三大范式 3.2 数据类型 四 数据库账户管理 五 思维导图 一 常用的数据…

探索AliExpress商品详情API:使用与解析

一、引言 AliExpress是阿里巴巴旗下全球领先的B2C在线交易平台,为全球数亿消费者提供安全、便捷、高效的购物体验。随着电子商务的快速发展,获取商品详情成为了电商应用程序中的一项重要功能。AliExpress商品详情API(aliexpress.item_get&am…

Vue中的选项式 API 和组合式 API,两者有什么区别

Vue中的选项式 API(Option API)和组合式 API(Composition API)是两种不同的组件编写方式,它们各有特点和适用场景: 选项式 API(Option API): 传统方法:Vue最初的编程范式…

redis服务迁移数据工具--RDM

一、背景: 在日常的运维工作经常遇见各种数据迁移工作,例如mysql数据库迁移、redis数据库迁移、minio数据迁移等等工作。这里介绍一下redis数据库的迁移过程。 二、迁移思路: redis服务/集群的数据迁移思路是需要新建一个配置、密码一样的re…

【字典树Trie】LeetCode-139. 单词拆分

139. 单词拆分。 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1: 输入: s "leetcode&q…

openGauss学习笔记-185 openGauss 数据库运维-升级-提交升级/升级版本回退/异常处理

文章目录 openGauss学习笔记-185 openGauss 数据库运维-升级-提交升级/升级版本回退/异常处理185.1 提交升级操作步骤 185.2 升级版本回滚操作步骤 185.3 异常处理升级问题FAQ openGauss学习笔记-185 openGauss 数据库运维-升级-提交升级/升级版本回退/异常处理 185.1 提交升级…

grep笔记240103

常用选项:: -i:忽略大小写进行匹配。 -v:反向匹配,只打印不匹配的行。 -n:显示匹配行的行号。 -r:递归查找子目录中的文件。 -l:只打印匹配的文件名。 -c:只打印匹配的行…

rk3588中编译带有ffmpeg的opencv

有朋友有工程需要,将视频写成mp4,当然最简单的方法当然是使用opencv的命令 cv::VideoWriter writer;bool bRet writer.open("./out.mp4", cv::VideoWriter::fourcc(m, p, 4, v), 15, cv::Size(640, 512), 1); 但是奈何很难编译成功&#xff…

NGUI基础-图集制作(保姆级教程)

目录 图集是什么 如何打开图集制作工具 制作步骤 图集的三个关键配置 相关参数介绍 Atlas Material Texture Padding Tim Alpha PMA shader Unity Packer TrueColor Auto-upgrade Force Square Pre-processor 图集是什么 Unity图集(Sprite Atlas&…

AI:109-基于机器学习的文本图像关联分析

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

SecOC中新鲜度值和MAC都按照完整的值来生成,但是在发送和认证的时候只会截取一部分。这边截取的部分一般取多长?由什么参数设定?

新鲜度值(Freshness Value, FV)和消息验证码(Message Authentication Code, MAC)是SecOC协议中用于保证数据的真实性和新鲜度的重要信息。它们的长度取决于不同的因素,如加密算法、安全级别、通信带宽等。 一般来说,FV和MAC的长度越长,安全性越高,但也会占用更多的通信…

ROS Gazebo的基本使用

Gazebo 提供了一个实时的三维虚拟环境,用于模拟各种复杂的真实世界条件,包括光照、地形、物理碰撞以及传感器模型(如激光雷达、摄像头等)。通过 ROS 和 Gazebo 的结合,开发者可以在无需实际硬件的情况下设计、测试和验…

2024,这将是量子计算的真正挑战

2023年,一项项量子计算纪录被打破。 谷歌量子AI团队证明了将多个量子比特分组合成为一个逻辑量子比特的纠错方法可以提供更低的容错率。以往的纠错研究随着比特数的增加,错误率会提高,都是“越纠越错”,而这次谷歌首次实现了“越纠…