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

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即可。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Unity】【VRTK】【Pico】如何快速在VRTK中引入带动画的PICO控制器

【背景】 之前的VRTK篇章中,我只介绍了Oculus,Open VR,SImulator这三种Rig的配置方法,那么Pico如何融合VRTK进行开发呢? 【需要的开发包】 先像一个正常PICO项目那样导入PICO的SDK到Unity。VRTK 4的Package导入器中搜Pico,可以导入一个Pico的Integration,导入后Projec…

陀螺仪LSM6DSV16X与AI集成(6)----检测自由落体

陀螺仪LSM6DSV16X与AI集成.6--检测自由落体 概述视频教学样品申请源码下载生成STM32CUBEMX串口配置IIC配置CS和SA0设置串口重定向参考程序初始换管脚获取ID复位操作BDU设置 概述 本文介绍如何初始化传感器并配置其参数,以便在检测到自由落体事件时发送通知。 最近…

回归预测 | Python基于ISSA多策略改进麻雀优化ISSA-CNN-BiLSTM多输入单输出回归预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 原创改进, ISSA多策略改进麻雀优化ISSA-CNN-BiLSTM 多输入单输出回归 python代码 优化参数:filter,unints1,units2,学习率(可添加) 以下是三个主要的改进点&…

Echarts折线图中数据根据正负数显示不同区域背景色-配置

示例 Echarts折线图中数据根据正负数显示不同区域背景色 Piecewise 分段类型Continuous 连续类型 Echarts配置 option {backgroundColor: "#030A41",xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun],axisTick: {show: false,},axisLabel: { /…

【Git】本地仓库管理远程库(GitHub)——clone(下载)、commit(添加到本地仓库)、push(提交到远程仓库)、pull(拉取)操作

目录 使用远程仓库的目的将本地仓库同步到git远程仓库 1.克隆远程仓库(clone)2.新建一个文件3.将工作区的文件添加到暂存区4.将暂存区的文件添加到本地仓库(commit)5.提交(同步)到远程仓库(push)6.远程库拉取到本地库(pull)7.团队协作开发和跨团队协作开发(开源项目) 使用远程…

翻译: Streamlit从入门到精通 显示图表Graphs 地图Map 主题Themes 二

Streamlit从入门到精通 系列: 翻译: Streamlit从入门到精通 基础控件 一 1. 使用Streamlit显示图表Graphs 1.1 为什么我们需要可视化? 数据可视化通过将数据整理成更容易理解的格式来讲述故事,凸显趋势和异常点。好的可视化能够讲述一个故…

CAN总线报文格式---远程帧(遥控帧)

远程帧(Remote frame) 用于向远程节点请求数据。远程帧可分为标准远程帧和扩展远程帧。(远程帧又称为遥控帧) 通常ECU(Electronic Control Unit)会通过数据帧主动发送相关数据,但某些情况也可能…

redis数据结构源码分析——跳表zset

文章目录 跳表的基本思想特点节点与结构跳跃表节点zskiplistNode属性 跳跃表链表属性 跳表的设计思想和优势API解析zslCreate(创建跳跃表)zslCreateNode(创建节点)zslGetRank(查找排位)zslDelete&#xff0…

jenkins-cl参数化构建

pipeline片段(对应jenkins-cli -p参数的BRANCHdevelop) parameters {string(name: BRANCH, defaultValue: master, description: Enter the branch name)}stages {stage(Get Code) {steps {script {def branch params.BRANCHcheckout scmGit(branches: …

关于AMC8模拟考试延长到1月19日14点,以及常见的几个新问题

相信过去的周末两天,很多参加今年AMC8美国数学思维竞赛活动的孩子们都参加了AMC8模拟考试。昨天有家长问六分成长,周末两天因故没能参加要不要紧?如果还想参加怎么办? 不用担心!官方已经把AMC8模拟考试的时间延长到1月…

c#异形窗体遮罩效果

c#异形窗体遮罩效果,移动,关闭,最大化,最小化,还原操作 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Drawing2D…

《WebKit 技术内幕》之二: HTML 网页和结构

第二章 HTML 网页和结构 HTML网页是利用HTML语言编写的文档,HTML是半结构化的数据表现方式,它的结构特征可以归纳为:树状结构、层次结构和框结构。 1.网页构成 1.1 基本元素和树状结构 HTML网页使用HTML语言撰写的文档,发展到今…

基于MOD02/MYD02获得亮度温度再转冰温

用HEG处理MOD02/MYD02,提取里面的EV_1KM_Emissive波段,band为11和12(其实就是band 31和32)。注意这里的band和output dile type 1. 获得之后,转辐射亮度。 参考:https://www.cnblogs.com/enviidl/p/16539422.html radiance_scales,和radiance_offset这两项参数代表波段…

你好2024,OpenStreetMap 20 周岁

2004年,OpenStreetMap在英国诞生。2024年,OpenStreetMap 满 20 周岁,其愿景是创建一个免费的、可编辑的世界地图。当时,地图数据的获取往往受到限制或价格昂贵1。 经过20年的发展,该数据集合成为了最为全面的街道级别开…

通过eXtplorer+cpolar,搭建个人云存储并实现访问内网服务器数据

文章目录 1. 前言2. eXtplorer网站搭建2.1 eXtplorer下载和安装2.2 eXtplorer网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1. 前言 在数字时代,互联网传输文件已成为我们日常生活和工作的核心部分。…

消息的发送与接收

消息的发送与接收 消息的发送与接收不仅仅是在于聊天功能的实现。其实还有很多种情况也算"消息的发送与接收"。而且我们还可以通过多种方法去实现。我们可以基于实际情况来选择。 WebSocket实现 node做后端。找了好多,前端页面总是用到了jQuery&#x…

SK入门第一篇(设置baseurl)

问题说明 之前在一些公众号就看到了关于SK的开发文章,然后说自己也试试看。然后就遇到一个关于如何设置baseurl的问题。啥意思呢?同样是SK,用python语言的话,OpenAI的baseurl是可以直接设置的,但是在C#下没法直接设置…

爬虫-6-数据提取-beautifulsoup4

#声明:本文仅供学习。 (●—●)

JVM:双亲委派机制类加载器

JVM:双亲委派机制 1. 例子2. 类加载器总结3. 类加载过程4. 双亲委派模型的执行流程:5. 双亲委派模型的好处 1. 例子 Java运行时环境有一个java.lang包,里面有一个ClassLoader类 我们自定义一个String类在java.lang包下,下面的…

BP神经网络原理

1.基本概念 1.1 简介 BP神经网络(Back Propagation Neural Network)是一种基于误差反向传播算法(Back Propagation Algorithm)的人工神经网络,也是应用最广泛的神经网络之一。它可以用来解决分类、回归、模式识别、数据…