Mask Scoring R-CNN CVPR19

2023-10-14 02:40
文章标签 mask cnn scoring cvpr19

本文主要是介绍Mask Scoring R-CNN CVPR19,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

    • Mask Scoring R-CNN CVPR19
      • 创新
      • Introduction
      • 方法
        • Mask scoring
        • MaskIoU head
        • loss
        • 消融实验(挑感兴趣的)
        • 总结
    • TensorMask ICCV
  • 个人学习记录,侵删

Mask Scoring R-CNN CVPR19

参考https://blog.csdn.net/weixin_37993251/article/details/88248361
https://www.cnblogs.com/wemo/p/10505970.html

创新

在MaskRcnn基础上提出一个block给mask打分。将实例特征和相应的预测掩模结合起来,对mask Iou进行回归。
模型学习每个Mask的一个分数,而不是使用它的分类分数,通过考虑实例mask掩码的完整性,如果一个实例具有高分类分数但是mask却不足够好,那么实例掩码的分数将被扣分。

Introduction

假设,如果一个实例分割没有得到正确的评分,可能会被误认为为 false positive 或者 false negative,导致AP下降。
在MaskRcnn里实例Mask的分数与box-level分类置信度共享,作者认为使用分类置信度来度量Mask质量是不合适的,因为它只用于区分proposal的语义类别,而不知道实例Mask的实际质量和完整性。就是只知道类别的对错,但是不知道mask效果好不好,会导致虽然它对了,但是效果不好。
利用预测掩模与其地面真实掩模之间的像素级交叉联合(IoU)来描述实例分割质量,提出了一个直接学习IoU的网络为MaskIoU。

MaskIOU head:这是一个MaskIoU的预测网络。输入:RoIfeature和mask;输出:C classes MaskIoU

一旦我们在测试阶段获得预测的MaskIoU,就通过乘以预测的MaskIoU和分类分数来重新评估掩模分数。
在这里插入图片描述
maskRcnn里得分高的,在mask score rcnn里不一定高

在这里插入图片描述
从图a中可以看出,msakrcnn在maskiou很低时,有分数也很高的情况,评分和maskiou没有相关性。图b是MS rcnn 对高评分和低MaskIoU的检测进行了惩罚,并且面具评分与MaskIoU有更好的相关性。

方法

使用ResNet18+FPN,结构其实就是Mask RCNN带MaskIoU Head,将实例特征与预测Mask一起作为输入,预测输入Mask与ground truthMask之间的IoU。

在这里插入图片描述

Mask scoring

Smask定义为预测Mask的评分。理想Smask等于预测Mask与其匹配的ground truth Mask之间的像素级IoU,也就是maskIoU。

理想的Smask也应该只对ground truth类别有正的值,对其他类为0,因为Mask只属于一个类。这要求Mask Score 在两项任务上都能很好地工作:将Mask分类到正确的类别,以及对前景对象类别的Mask进行回归。仅仅使用一个目标函数来训练这两个任务是很困难的。为了简化,我们可以将mask score学习任务分解为mask分类和IoU回归,对于所有对象类别,记为

s m a s k = s c l s ⋅ s i o u s_{mask} = s_{cls} · s_{iou} smask=sclssiou

MaskIoU head

作用:将预测Mask与其gtMask之间的IoU进行回归。

  • 用2x2 max pooing layer and stride of 2 使得预测的mask具有与RoI相同的空间尺寸。
  • MaskIoU头有4个卷积层(都有内核=3,最后一个使用步幅=2进行下采样)和3个完全连接的层(最后一个输出C类MaskIoU)。所有卷积层的核大小和filter数分别设置为3和256。

只选择gt类进行回归。

loss

Lcls和Lbox与faster rcnn的定义没有区别。需要具体说明的是Lmask,假设有K个类别,那么mask分支的输出维度为K×m×m,其中m代表featuremap的长宽。每个m×m的上的值都是该类别的二值化结果(使用sigmoid计算)。但最后计算loss的只是,其ground truth对应的类别k所对应的二值化m×m的mask,其他类别产生的mask对loss没有贡献。计算Lmask的方式是,平均二值化交叉熵loss(average binary cross-entropy loss)
然而在实例分割中,可以得到一个位置精确且置信度很高的bbox,但是对应的mask可能是不准确的。因此,MSRCNN提出计算MaskIOU的方式,利用分类的置信和maskiou值的乘积作为该mask的置信。

消融实验(挑感兴趣的)

The design choices of MaskIoU head input不同输入的比较。
(a)目标mask拼接RoI特征:取目标类的分数映射,最大合并,与RoI特征拼接。
(b)目标mask乘以RoI特征:取目标类的分数图,最大合并,与RoI特征相乘。
©所有蒙版连接RoI特性:所有c类蒙版分数映射都是max-pooled并连接RoI特征。
(d)目标mask连接高分辨率RoI特征:分数的地图目标类被连接和28×28 RoI特征。
在这里插入图片描述在这里插入图片描述

总结

知乎大佬写的特别清楚https://zhuanlan.zhihu.com/p/64322544
1.假设RCNN阶段输出N个bounding boxes,利用SoftNMS从中挑选top-k个(k=100)boxes

2.这些boxes送到mask分支生成multi-class masks.(截止到此是标准的maskrcnn的前向过程)

3.把这些top-k个 mask送到MaskIOU 分支,得到iou比值,因此,mask评分= confidence*maskiou.

TensorMask ICCV

个人学习记录,侵删

这篇关于Mask Scoring R-CNN CVPR19的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/207578

相关文章

深度学习实战:如何利用CNN实现人脸识别考勤系统

1. 何为CNN及其在人脸识别中的应用 卷积神经网络(CNN)是深度学习中的核心技术之一,擅长处理图像数据。CNN通过卷积层提取图像的局部特征,在人脸识别领域尤其适用。CNN的多个层次可以逐步提取面部的特征,最终实现精确的身份识别。对于考勤系统而言,CNN可以自动从摄像头捕捉的视频流中检测并识别出员工的面部。 我们在该项目中采用了 RetinaFace 模型,它基于CNN的结构实现高效、精准的

如何将卷积神经网络(CNN)应用于医学图像分析:从分类到分割和检测的实用指南

引言 在现代医疗领域,医学图像已经成为疾病诊断和治疗规划的重要工具。医学图像的类型繁多,包括但不限于X射线、CT(计算机断层扫描)、MRI(磁共振成像)和超声图像。这些图像提供了对身体内部结构的详细视图,有助于医生在进行准确诊断和制定个性化治疗方案时获取关键的信息。 1. 医学图像分析的挑战 医学图像分析面临诸多挑战,其中包括: 图像数据的复杂性:医学图像通常具有高维度和复杂的结构

CNN-LSTM模型中应用贝叶斯推断进行时间序列预测

这篇论文的标题是《在混合CNN-LSTM模型中应用贝叶斯推断进行时间序列预测》,作者是Thi-Lich Nghiem, Viet-Duc Le, Thi-Lan Le, Pierre Maréchal, Daniel Delahaye, Andrija Vidosavljevic。论文发表在2022年10月于越南富国岛举行的国际多媒体分析与模式识别会议(MAPR)上。 摘要部分提到,卷积

【tensorflow CNN】构建cnn网络,识别mnist手写数字识别

#coding:utf8"""构建cnn网络,识别mnistinput conv1 padding max_pool([2,2],strides=[2,2]) conv2 x[-1,28,28,1] 卷积 [5,5,1,32] -> [-1,24,24,32]->[-1,28,

_get_gt_mask、cat_mask、_get_other_mask

import torch# 定义获取标签掩码的函数def _get_gt_mask(logits, target):print("原始 logits:\n", logits)print("目标 target:\n", target)# 将 target 拉平为一维张量target = target.reshape(-1)print("拉平后的 target:\n", target)# 创建一个和

震惊,从仿真走向现实,3D Map最大提升超12,Cube R-CNN使用合成数据集迁移到真实数据集

震惊,从仿真走向现实,3D Map最大提升超12,Cube R-CNN使用合成数据集迁移到真实数据集 Abstract 由于摄像机视角多变和场景条件不可预测,在动态路边场景中从单目图像中准确检测三维物体仍然是一个具有挑战性的问题。本文介绍了一种两阶段的训练策略来应对这些挑战。我们的方法首先在大规模合成数据集RoadSense3D上训练模型,该数据集提供了多样化的场景以实现稳健的特征学习。随后,

Segmentation简记-Multi-stream CNN based Video Semantic Segmentation for Automated Driving

创新点 1.RFCN & MSFCN 总结 网络结构如图所示。输入视频得到图像分割结果。 简单粗暴

CNN-LSTM用于时间序列预测,发二区5分+没问题!

为了进一步提高时序预测的性能,研究者们组合了CNN和LSTM的特点,提出了CNN-LSTM混合架构。 这种架构因为独特的结构设计,能同时处理时空数据、提取丰富的特征、并有效解决过拟合问题,实现对时间序列数据的高效、准确预测,远超传统方法。 因此,它已经成为我们应对时序预测任务离不开的模型,有关CNN-LSTM的研究也成了当下热门主题之一,高质量论文频发。 为了方便大家了解CNN-LSTM的最

40从传统算法到深度学习:目标检测入门实战 --深度学习在目标检测中的应用:R-CNN

参考视频教程:    **深度学习之目标检测常用算法原理+实践精讲  ** R-CNN 在传统的目标检测方法中,我们使用滑动窗口标记目标的位置、使用人工设计的特征和机器学习算法进行分类,此类方法虽然可以基本达到实时性的要求但是其缺点也比较明显。首先滑动窗口采用穷举的策略来找到目标,这种方法的缺陷是如果步长和窗口尺寸设置太小会导致时间复杂度过高,在检测过程中会出现过多的冗余窗口,如果窗口

img_Mask

<!DOCTYPE HTML><html lang="en-US"><head><meta charset="gb2312"><title>jQuery鼠标悬浮遮罩显示分享按钮</title><style>.pinit {position:relative;display:inline-block;}.pinit .pinit-overlay {position:absolute;t