实例分割论文精读:Mask R-CNN

news2024/10/7 14:30:00

1.摘要

本文提出了一种概念简单、灵活、通用的实例分割方法,该方法在有效地检测图像中的物体同时,为每个物体实例生成一个实例分割模板,添加了一个分支,用于预测一个对象遮罩,与现有的分支并行,用于边界框识别,Mask R-CNN易于训练,只给Faster R-CNN增加了很小的开销,运行速度为5fps,另外,Mask R-CNN很容易推广到其他任务,例如,允许我们在同一框架中估计人类姿势,我们展示了COCO系列挑战的所有三个方面的最佳结果,包括实例分割、边界框对象检测以及人类关键点检测,没有任何花里胡哨的东西,Mask R-CNN在每项任务上都优于所有现有的模型参赛作品,包括COCO 2016挑战赛的获胜者。我们希望我们简单而有效的方法将作为一个坚实的基线,并有助于简化实例级识别的未来研究。

2.模型结构图

在这里插入图片描述

3.算法步骤

1.首先,输入一幅你想处理的图片,然后进行对应的预处理操作,或者预处理后的图片;
2.然后,将其输入到一个预训练好的神经网络中(ResNet等)获得对应的feature map
3.接着,对这个feature map中的每一点设定预定个的ROI,从而获得多个候选ROI;
4.接着,将这些候选的ROI送入RPN网络进行二值分类(前景或背景)和BB回归,过滤掉一部分候选的ROI;
5.接着,对这些剩下的ROI进行ROIAlign操作(即先将原图和feature map的pixel对应起来,然后将feature map和固定的feature对应起来);
6.最后,对这些ROI进行分类(N类别分类)、BB回归和Mask生成(在每一个ROI里面进行FCN操作)。

4.模型结构解析

4.1 Mask R-CNN/FPN

在这里插入图片描述
带和不带FPN结构的Mask R-CNN 在Mask分支上略有不同,对于带有FPN结构的Mask R-CNN它的class、box分支和Mask分支并不是共用一个RoIAlign,在训练过程中,对于class, box分支RoIAlign将RPN(Region Proposal Network)得到的Proposals池化到7x7大小,而对于Mask分支RoIAlign将Proposals池化到14x14大小(Mask分支,因为实例分割要保留更多的细节,所以没有池化到77格式,选择池化到1414格式)

4.2 RoIpooling和RoIAlign

Faster RCNN使用RoIPool将RPN得到的Proposal池化到相同大小,过程涉及到取整操作,导致定位不是那么准确(misalignment)
RoI pooling:1.将Proposal映射到特征层上;2.将得到的Proposal强行划分成规定大小(55->22)
RoIAlign:1.不进行四舍五入2.期望输出是22大小的话,将proposal划分为22个子区域,设置sampling_ratio为每个子区域设置采样点,计算每个子区域中采样点的值(双线性插值),最后对每个区域内所有采样点取均值即为该子区域的输出。
在这里插入图片描述
在这里插入图片描述

4.3 Mask分支

FCN中,对待每个像素的每个类别都会预测一个分数,然后通过softmax得到每个类别的概率(不同类别之间存在竞争关系),那个概率高就将像素分配给哪个类别,
在Mask R-CNN中,,对预测Mask以及Class进行解耦,对输入的RoI针对每个类别都单独预测一个Mask,最终根据box, cls分支预测的classes信息来选择对应Proposals:提议、提案、建议,在这里指的是二阶段方法中RPN的输出框,也就是对anchor第一次做回归得到的结果,就是候选框,用RPN生成候选框,然后分类和回归,region proposal指的是候选区域。类别的Mask

5.损失函数

在这里插入图片描述
logits:网络预测的输出
targets:对应的GT
如下图所示,假设通过RPN得到了一个Proposal(图中黑色的矩形框),通过RoIAlign后得到对应的特征信息(shape为14x14xC),接着通过Mask Branch预测每个类别的Mask信息得到图中的logits(logits通过sigmoid激活函数后,所有值都被映射到0至1之间)。通过Fast R-CNN分支正负样本匹配过程我们能够知道该Proposal的GT类别为猫(cat),所以将logits中对应类别猫的预测mask(shape为28x28)提取出来。然后根据Proposal在原图对应的GT上裁剪并缩放到28x28大小,得到图中的GT mask(对应目标区域为1,背景区域为0)。最后计算logits中预测类别为猫的mask与GT mask的BCELoss即可。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

node各个版本的下载地址

下载地址: https://nodejs.org/dist/ 可以下载多个版本,使用nvm控制切换(需要先安装nvm再安装node) nvm下载地址(访问的是github,请科学上网,下载后解压安装exe即可):h…

【leetcode题解C++】54.螺旋矩阵I and 59.螺旋矩阵II

54.螺旋矩阵I 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2: 输入:m…

通俗易懂实现功能强大的实战项目 springboot+java+vue+mysql 汽车租赁管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

如何在免费云Colab上使用扩散模型生成图片?

前言 在人工智能技术的迅猛发展下,内容生成领域也迎来了一系列创新的突破。其中,使用扩散模型(如Stable Diffusion)从文字生成图片的AI技术备受瞩目。这一技术的出现,为我们创造栩栩如生的图像提供了全新的可能性。本…

ceph、gluster、longhorn选型对比

Ceph Ceph是一个分布式的存储系统,可以在统一的系统中提供唯一的对象、块和文件存储。 名词解释: RADOS: 由自我修复、自我管理、智能存储节点组成的可靠、自主、分布式对象存储LIBRADOS: 一个允许应用程序直接访问 RADO 的库&…

机器学习 | 无监督聚类K-means和混合高斯模型

机器学习 | 无监督聚类K-means和混合高斯模型 1. 实验目的 实现一个K-means算法和混合高斯模型,并用EM算法估计模型中的参数。 2. 实验内容 用高斯分布产生 k k k个高斯分布的数据(不同均值和方差)(其中参数自己设定&#xff…

网络分流规则

现在的网络是越来越复杂。 有必要进行分流。 有一些geosite.dat是已经整理好的,包含许多的网站的分类: 分流规则: route规则 主要是: {"type": "field","outboundTag": "direct","domain&quo…

【Windows】你不能访问此共享文件夹,因为你的组织安全策略...解决方法

WinR键打开运行窗口,输入gpedit.msc进入本地组策略编辑器。 找到计算机配置,然后点击管理模板,找到网络,然后点击lanman工作站,将右侧窗口中的启用不安全的来吧登录开启就解决了 设置为已启用,应用后确定&a…

定时器--JAVA

定时器是软件开发中的一个重要组件,类似于一个"闹钟"当达到一个设定的时间之后,就执行某个指定好的代码(任务)。 Timer JAVA标准库中已经为我们实现了一个定时器,我们直接new就行了。 Timer timer new Timer(); Timer类中最重要的一个方法…

Fine-tuning:个性化AI的妙术

随着人工智能(AI)技术的迅猛发展,Fine-tuning作为一项重要而神奇的技术崭露头角。Fine-tuning俗称“微调技术。其本质上是对已有模型进行能力的迁移学习扩展,由于重新训练神经网络模型的成本太高,所以使用微调技术可以…

GZ075 云计算应用赛题第8套

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷8 某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenSt…

MySQL——深入数据库原理(事务及锁)

文章目录 锁行级锁共享 (S) 锁排他 (X) 锁间隙锁 表级锁意向锁自增锁Lock Table/DDL 事务ACID 原则1. 原子性 A2. 一致性 C3. 隔离性 I4. 持久性 D 隔离级别1. READ UNCOMMITTED(未提交读)2. READ COMMITTED(提交读)3. REPEATABLE…

强化学习应用(五):基于Q-learning的物流配送路径规划研究(提供Python代码)

一、Q-learning算法简介 Q-learning是一种强化学习算法,用于解决基于马尔可夫决策过程(MDP)的问题。它通过学习一个值函数来指导智能体在环境中做出决策,以最大化累积奖励。 Q-learning算法的核心思想是使用一个Q值函数来估计每…

《计算思维导论》笔记:10.2 什么是数据库与数据库系统?

《大学计算机—计算思维导论》(战德臣 哈尔滨工业大学) 《10.2 什么是数据库与数据库系统?》 数据库 简单来讲,数据库就是相互有关联关系的数据的集合。 一个表聚集了具有相同结构类型的若干个对象一行数据反映了某一对象的相关…

【Python数据分析系列】实现txt文件与列表(list)相互读写转换(源码+案例)

这是Python数据分析系列原创文章,我的第199篇原创文章。 一、问题 平时在做数据分析或者程序开发的时候,需要将中间的一些结果或最后的处理结果保存下来,比如保存为txt格式的文本文件,这就涉及列表与txt之间的一种读取和写入操作…

【python】11.文件和异常

文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景,而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词,可能需要先科普一下关于文件系统的知识,但是这里我们并不浪费笔墨介绍这个概念,请大…

《WebKit 技术内幕》之一: 浏览器和浏览器内核

第一章 浏览器和浏览器内核 浏览器的内核是浏览器的最核心的部件。 1.浏览器 1.1 浏览器发展简介 80年代后期90年代初期:由Berners-Lee 发明,诞生了世界上第一个浏览器 WorldWideWeb,后改名为 Nexus;并于1991年公布源代码&…

《2023年终总结》

笔者来回顾一下2023年的个人成长。 2023年总的来说,工作和生活都相对比较顺利。 工作上领导给予了肯定的评价,升职加薪,对我的鼓舞很大; 生活上和女朋友的感情越来越好,生气频率降低,也能相互理解&#xf…

【编码魔法师系列_构建型4】原型模式(Prototype Pattern)

学会设计模式,你就可以像拥有魔法一样,在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们(GoF)凝聚出来的最佳实践,可以提高代码的可读性、可维护性和可重用性,从而让我们的开发效率更高。通…

Meproc:简单高效的跨平台进程/任务管理工具

最近使用 Melang 语言写了一个 supervisor 相似服务Meproc来管理进程。 Meproc 有如下特性: 使用 HTTP API 管理控制 Meproc 来管理进程跨平台,支持 UNIX/Linux 、Mac 、Windows 等平台支持 cron 类定时调度任务支持简单的任务间依赖关系支持原生的协…