首页 > 其他分享 >深度学习-卷积神经网络--Mask RCNN-62

深度学习-卷积神经网络--Mask RCNN-62

时间:2024-04-01 23:13:18浏览次数:15  
标签:候选框 14 -- Mask 62 类别 RCNN 分支

目录

参考链接:
https://blog.csdn.net/qq_47233366/article/details/131326554?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522171196013016800213023649%252522%25252C%252522scm%252522%25253A%25252220140713.130102334..%252522%25257D&request_id=171196013016800213023649&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-131326554-null-null.142%5Ev100%5Epc_search_result_base5&utm_term=maskrcnn%25E5%25AE%259E%25E4%25BE%258B%25E5%2588%2586%25E5%2589%25B2&spm=1018.2226.3001.4187

Mask RCNN是在Faster RCNN的基础上提出的,因此你需要对Faster RCNN的结构相当了解,Mask RCNN中又嵌入了FCN语义分割模块。

1. 总体网络结构

Mask RCNN的网络结构

主要分为两个部分,下图中黄框框住的部分为Faster RCNN结构,绿框框住的是一个FCN结构。也就是说,Mask RCNN是在Faster RCNN的基础上添加了一个FCN结构,

Mask RCNN的结构就是这么简单,却能起到非常好的效果。而且可扩展行非常好,比如我们还添加一个可以检测人体关键点信息的网络,

2. Mask RCNN细节


对于一张输入图片,我们先将其经过特征提取骨干网络得到特征图,然后将特征图送入RPN网络得到一系列候选框,接着利用刚刚得到的候选框,剪裁出候选框对应特征图的部分
候选框的坐标是相对原图而言,
然后送入ROI Align层【先当成ROI Pooling即可】 获得尺寸一致的特征图,然后分别送入分支①(class、box分支)和分支②(Mask分支),分支①用于获取图像中物体的位置和类别信息,分支②用于获取图像中物体的分割信息。分支①和分支②之前的部分大家应该很熟悉才是,完全和Faster RCNN一样.

分支②,其就是一个FCN结构,其详细结构如下图所示:

一些基础的卷积和转置卷积操作,最后的输出Mask尺寸为:

对于coco数据集来说
RoIAlign的作用就是将输入统一到指定大小,上图将原始输入H × W × 256 H×W×256H×W×256统一至14 × 14 × 256 14×14×25614×14×256大小
RoIAlign的作用和RoIPool的作用是一致的,不过RoIAlign相比RoIPool做了一些优化,

当我们使用softmax时,分数高的会抑制分数低的,因为所有类别的预测概率要满足和为1的条件 。
作者认为这使得不同类别之间存在相互竞争,这被称为是一种耦合关系,是不利于最终的结果的。
于是作者希望消除这种耦合,即解耦。
由于在Mask RCNN中我们还有一个分类和回归分支来预测类别和边界框,因此我们可以利用分类分支的预测类别直接提取出对应的Mask,这样就消除了不同类别间的竞争关系。

3. loss

Mask RCNN就在Faster RCNN的基础上加上了一个Mask分支,那么Mask RCNN的损失即为Faster RCNN损失加上Mask分支的损失

点说一下Mask损失,其就是一个交叉熵损失,在Mask RCNN中是怎么计算交叉熵损失的呢

首先输入RoIAlign的是一个个候选框,输出的是14 × 14 × c 14×14×c14×14×c大小的特征图,然后经过一系列的卷积、转置等操作得到logits【因为使用的是sigmoid输出得到】,其是尺度为:

论文不采用传统FCN的方式实现分割,因为这样会让不同类别之前存在竞争关系,会导致最后的分割精度下降。这里我们会利用class、box分支中的类别信息,
比如我们通过class、box分支会知道当前的候选框的GT类别是cat(猫),于是我们就提取出logits中对应类别为猫的mask,此时这个mask是单通道的28×28大小的图像,这样就得到了Mask分支的预测输出

那么只要这个Mask和GT计算交叉熵损失即可,

那么我们将这个候选框在原图对应的GT【注:原图对应的GT是单通道的喔,目标区域为1,背景区域为0】上进行裁剪并将裁剪后图片缩放到28×28大小得到GT Mask,此时计算GT Mask和Mask分支的损失即可。

4. 预测

看看此时输入Mask分支的候选框来自哪里 ?会发现,其不再和训练阶段一样由RPN网络提供,而是由Fast RCNN网络提供,这一部分也非常好理解,在预测阶段我们只需要一个最准确的候选框就好了,直接从Fast RCNN网络中获得候选框即可,FPN中得到的候选框没有经过一系列微调,不准确。
经过RoIAlign后,和训练阶段一样我们会得到一个28×28的单通道图片,然后将其缩放到预测目标候选框同样大小,接着将其放到原图对应的区域,得到Mask。
最后还会设置一个阈值,比如0.5,将刚刚得到的Mask转换为二值图像,具体操作为将预测值大于0.5的区域设置为前景剩下区域都设置为背景。最后我们就能够在一张图像上展示出类别信息,边界框信息和Mask信息。

标签:候选框,14,--,Mask,62,类别,RCNN,分支
From: https://www.cnblogs.com/cavalier-chen/p/18109611

相关文章

  • 【专题】2024年中国企业数智化转型市场研究报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35565原文出处:拓端数据部落公众号数字经济正在全球范围内崭露头角,成为驱动经济增长的重要引擎。随着中国经济的转型升级,数字经济以其创新引领和高效便捷的特性,成为推动经济转型升级的核心动力。为了加快数字经济的步伐,政府正不断加大对数字基础设......
  • R语言分段回归数据分析案例报告
    原文链接: http://tecdat.cn/?p=3805原文出处:拓端数据部落公众号 我们在这里讨论所谓的“分段线性回归模型”,因为它们利用包含虚拟变量的交互项。读取数据  data=read.csv("artificial-cover.csv")查看部分数据  head(data)##   tree.covershurb.gr......
  • R语言使用Rasch模型分析学生答题能力|附代码数据
    全文链接:http://tecdat.cn/?p=10175最近我们被客户要求撰写关于Rasch的研究报告,包括一些图形和统计输出。几个月以来,我一直对序数回归与项目响应理论(IRT)之间的关系感兴趣在这篇文章中,我重点介绍Rasch分析。最近,我花了点时间尝试理解不同的估算方法。三种最常见的估算方法是:......
  • [Paper Reading] VQ-GAN: Taming Transformers for High-Resolution Image Synthesis
    名称[VQ-GAN](TamingTransformersforHigh-ResolutionImageSynthesis)时间:CVPR2021oral21.06机构:HeidelbergCollaboratoryforImageProcessing,IWR,HeidelbergUniversity,GermanyTL;DRTransformer优势在于能较好地长距离建模sequence数据,而CNN优势是天生对局部......
  • R语言生态学种群空间点格局分析:聚类泊松点过程对植物、蚂蚁巢穴分布数据可视化
    全文链接:https://tecdat.cn/?p=33676原文出处:拓端数据部落公众号点模式分析(点格局分析)是一组用于分析空间点数据的技术。在生态学中,这种类型的分析可能在客户的几个情境下出现,但对数据生成方式做出了特定的假设,因此让我们首先看看哪些生态数据可能与点模式分析相关或不相关。......
  • 线性回归和时间序列分析北京房价影响因素可视化案例
    全文链接:http://tecdat.cn/?p=21467最近我们被客户要求撰写关于北京房价的研究报告,包括一些图形和统计输出。在本文中,房价有关的数据可能反映了中国近年来的变化目的人们得到更多的资源(薪水),期望有更好的房子人口众多独生子女政策:如何影响房子的几何结构?更多的卧室,更多的空......
  • Linux 环境 (红帽 rhel 7.3) Python 3 安装
    自己装的虚拟机(红帽7),默认安装的python2.7,更新为python3.8  自己做个记录,方便日后查看注意:红帽的yum 需要注册才能使用,必须要替换yum,替换方法请参见:怎样替换rhel7.3的yum【步骤】1.下载python3.8安装包python:https://www.python.org/downloads/source/  找稳定发......
  • PLC通过modbus转profinet网关连接湿度传感器操作步骤
    Modbus转Profinet网关可以连接不同系统和设备,有些现场需要实时监测环境参数,但大由于当时环境仪表设备不能达到直连效果,通过Modbus转Profinet网关,湿度传感器的数据可以被准确、可靠地传输到监控系统中,为生产运作提供全面的数据支持。  Modbus转Profinet网关接湿度传感器的操作......
  • 鸿蒙ArkTS属性justifyContent不生效
    在鸿蒙ArkTS开发时,书写如下代码build(){Column(){Row(){Text('短信验证码登录')Text('忘记密码')}.justifyContent(FlexAlign.SpaceBetween)}.width('100%')}这时justifyContent并没有出现两端对齐的效果原因是没有设置Row......
  • 稳定性生产总结
    本期我们来谈下稳定性生产这个话题,稳定性建设目标有两个:降发生、降影响,在降发生中的措施是做到三点:系统高可用、高性能、高质量,三高问题确实是一个很热的话题,里面涉及很多点。在降影响中要做到早感知、快定位、急止损,这三点也需要很多的技术配合才可以做到的。那么量化的......