实例分割论文阅读之:《Mask Transfiner for High-Quality Instance Segmentation》

1.摘要

两阶段和基于查询的实例分割方法取得了显著的效果。然而,它们的分段掩模仍然非常粗糙。在本文中,我们提出了一种高质量和高效的实例分割Mask Transfiner。我们的Mask Transfiner不是在规则的密集张量上操作,而是将图像区域分解并表示为四叉树。我们基于变压器的方法只处理检测到的容易出错的树节点,并并行地自我纠正它们的错误。虽然这些稀疏像素只占总数的一小部分,但它们对最终的掩模质量至关重要。这使得Mask Transfiner能够以较低的计算成本预测高度准确的实例掩码。大量的实验表明,Mask Transfiner在三个流行的基准测试上优于当前的实例分割方法,显著提高了两阶段和基于查询的框架在COCO和BDD100K上的+3.0掩码AP,以及在cityscape上的+6.6边界AP。

2.介绍

图像实例分割的进步在很大程度上是由强大的目标监测范式的发展所推动的。基于Mask RCNN和最近的DETR的方法在例如COCO挑战上取得了越来越高的性能。虽然这些方法在物体的监测和定位方面表现出色,但有效预测高精度分割掩码的问题迄今仍是难以琢磨的。
如图3所示,最近最先进的方法,特别是基于查询的方法,在边界盒和分割性能之间仍然存在较大差距,这强烈表明,掩膜质量的改进并没有跟上检测能力的进步,在图2中,先前方法的预测掩码非常粗糙,大多数情况下是过于平滑的的对象边界,实际上,高效而精确的掩膜预测是极具挑战性的,因为需要高分辨率的深度特征,而这需要大量的计算和内存成本。
图1
为了解决这些问题,我们提出了Mask Transfiner,这是一种高效的基于transformer的高质量实例分割方法,在图1中,我们的方法首先识别容易出错的区域,这些区域大多分布在对象边界或者高频区域,为此,我们的网络学习检测非相干区域,由下采样掩码自身时的信息损失来定义,这些非相干区域分布稀疏,仅占总像素的一小部分,然而,由于它们对最终的分割性能至关重要,它允许我们在细化过程中只处理高分辨率特征图的一小部分。因此,我们构建了一个分层四叉树来表示和处理多尺度的非相干图像像素。
为了改进非相干四叉树节点的掩码标签,我们设计了一个基于transform的改进网络,而不是标准卷积网络,因为它们需要在均匀网格上运行。我们的变压器有三个模块:节点编码器,序列编码器和像素解码器。节点编码器首先丰富了每个不相干点的特征嵌入。序列编码器然后将这些编码的特征向量跨多个四叉树级别作为输入查询。最后,像素解码器预测其对应的掩码标签。与MLP相比,序列表示和多头关注使得Mask Transfiner能够灵活地将稀疏特征点作为跨层并行的输入,对它们的逐像素关系进行建模,然后在长距离范围内传播信息。
我们在COCO, cityscape和BDD100K基准测试中广泛分析了我们的方法,其中定量和定性结果表明,Mask Transfiner不仅优于现有的两阶段和基于查询的方法,而且与标准变压器使用相比,在计算和内存成本方面效率更高。我们使用ResNet-50在41.6 APMask的COCO测试开发上建立了一个新的最先进的结果,显著优于最近的SOLQ和queryst。

3.相关工作

在这里插入图片描述

实例分割:两阶段实例分割方法首先检测边界框,然后在每个RoI区域中执行分割。 Mask R-CNN 使用 FCN 分支扩展了 Faster R-CNN 。后续工作 也为 Mask R-CNN 模型家族做出了贡献。一阶段方法 和基于内核的方法 ,例如 PolarMask 、YOLOACT 和 SOLO 删除了提案生成和特征重新池化步骤,以更高的效率获得可比较的结果。
基于查询的实例分割方法 受到 DETR 的启发,最近通过将分割视为集合预测问题而出现。这些方法使用查询来表示感兴趣的对象,并对它们联合执行分类、检测和掩模回归。在[15, 23]中,使用DCT或PCA算法将对象掩码压缩为编码向量,而QueryInst采用具有掩码信息流的动态掩码头。然而,图 3 中检测和分割性能之间的巨大差距表明,这些基于查询的方法产生的掩模质量仍然不能令人满意。与上述方法相比,Mask Transfiner 的目标是高质量的实例分割。在我们高效的转换器中,输入查询是不连贯的像素节点,而不是表示对象。我们的方法适用于两阶段框架和基于查询的框架,并且在其中都有效。
实例分割的细化:大多数现有的实例分割细化工作都依赖于专门设计的卷积网络 或 MLP 。 PointRend [28] 对低置信度分数的特征点进行采样,并使用共享 MLP 细化其标签,其中所选点由 Mask R-CNN 的粗略预测确定。 RefineMask [47] 结合了细粒度的特征和额外的语义头作为指导。后处理方法 BPR [36] 裁剪图像的边界块和初始掩模作为输入,并使用 [38] 进行分割。值得注意的是,一些方法 [11,14,46] 专注于细化语义分割细节。然而,由于更复杂的分割设置、每个图像的对象数量不同以及描绘重叠对象的要求,使得实例分割具有挑战性[27]。
与这些细化方法相比,Mask Transfiner 是一种端到端的实例分割方法,使用转换器来纠正错误。使用轻量级 FCN 来预测要细化的区域,而不是基于掩模分数的非确定性采样 [28]。与[28]中的MLP不同,顺序和分层输入表示使Mask Transfiner能够有效地将非局部稀疏特征点作为输入查询,其中变压器的强大全局处理非常适合我们的四叉树结构。

4.Mask Transfiner

图5
我们提出了一种有效解决高质量实例分割的方法。 Mask Transfiner 的整体架构如图 5 所示。 Mask R-CNN [21],我们采用多尺度深度特征金字塔。然后,对象检测头将边界框预测为实例建议。该组件还以低分辨率生成粗略的初始掩模预测。给定这些输入数据,我们的目标是预测高度准确的实例分割掩模。
由于大部分分割错误归因于空间分辨率的损失,我们首先在 3.1 节中定义这种不相干的区域并分析它们的属性。为了识别和细化多个尺度的不相干区域,我们采用了四叉树,这将在 3.2 节中讨论。轻量级不相干区域检测器将粗略初始掩模与多尺度特征一起作为输入,并以级联方式预测每个尺度的不相干区域。这使得我们的 Mask Transfiner 能够节省巨大的计算和内存负担,因为只有一小部分高分辨率图像特征由细化网络本身处理。我们的细化transformer(第 3.3 节详述)在检测到的不相干区域中运行。由于它对构建的四叉树上的特征点进行操作,而不是在统一的网格中,因此我们设计了一个transformer架构,它联合处理四叉树各级中的所有不相干节点。最后,我们介绍了 Mask Transfiner 的训练策略以及实现细节。

3.1 不相干区域

现有实例分割方法 [15, 21] 产生的大部分分割错误是由于空间分辨率的损失造成的,例如掩模下采样操作、小 RoI 池大小和系数压缩 [15, 23],其中掩模预测本身是在粗略的特征尺度上执行的。尽管其效率很高,但由于高频细节的丢失,低空间分辨率使得预测准确的对象边界变得困难。在本节中,我们首先定义不相干区域,其中由于空间分辨率降低而丢失掩模信息。然后,通过分析它们的属性,我们观察到很大一部分错误确实位于这些区域。
在这里插入图片描述

不相干区域的定义
为了识别不相干的区域,我们通过对掩模本身进行下采样来模拟由于网络中下采样而导致的信息丢失。具体来说,在无法通过后续上采样步骤正确重建掩模的区域中,信息会丢失,如图 4 所示。正式地,令 Ml 为尺度级别 l 的对象的二进制真实实例掩模。每个尺度级别的分辨率相差 2 倍,其中 l = 0 是最精细的尺度,l = L 是最粗糙的尺度。我们分别用 S↓ 和 S↑ 表示 2× 最近邻下采样和上采样。尺度 l 处的不相干区域是二元掩模,如下所示:
在这里插入图片描述
这里,⊕表示逻辑“异或”运算,O↓是通过在每个2×2邻域中执行逻辑“或”运算来进行2×下采样。因此,如果原始掩模值Ml-1在更精细尺度级别中的至少一个像素中与其重建不同,则像素(x,y)是不相干的Dl(x,y)=1。直观上,不连贯的区域大多沿着对象实例边界或高频区域散布,由粗掩模丢失或额外预测错误标签的点组成。我们在图 6 和补充中提供了它们的可视化。文件,它们稀疏且不连续地分布在典型图像上。
在这里插入图片描述
在这里插入图片描述
不相干区域的属性:在表 1 中,我们提供了对上面定义的不相干区域的分析。
结果表明,大部分预测误差集中在这些不相干区域,占所有错误预测像素的 43%,而对应的边界框区域仅占 14%。不相干区域的粗掩模预测准确率为 56%。通过修复边界框检测器,我们进行了预言机研究,用真实标签填充每个对象的所有这些不连贯区域,同时将其余部分保留为初始掩模预测。与在不相干区域使用初始掩模预测相比,性能从 35.5 AP 飙升至 51.0 AP,这确实证明它们对于提高最终性能至关重要。

3.2用于掩膜细化的四叉树

在本节中,我们将描述检测和细化图像中不相干区域的方法。我们的方法基于迭代检测和划分每个特征尺度中的不相干区域的思想。通过仅分割已识别的不相干像素以进一步细化,我们的方法仅关注重要区域,从而有效地处理高分辨率特征。为了形式化我们的方法,我们采用四叉树结构首先识别跨尺度的不连贯区域。然后,我们使用 3.3 节中详细介绍的网络来预测四叉树中所有不相干节点的细化分割标签。最后,我们的四叉树用于通过将校正后的掩模概率从粗尺度传播到更细尺度来融合来自多个尺度的新预测。
不相干区域的检测:图 5 的右侧部分描述了我们的轻量级模块的设计,用于有效检测多尺度特征金字塔上的不相干区域。按照级联设计,我们首先连接最小特征和粗略对象掩模预测作为输入,并使用简单的全卷积网络(四个 3×3 卷积),然后使用二元分类器来预测最粗略的不相干掩模。然后,对检测到的较低分辨率掩模进行上采样并与相邻级别中的较高分辨率特征融合,以指导更精细的不相干预测,其中仅采用单个 1×1 卷积层。在训练过程中,我们强制执行等式生成的较低级别的真实不相干点。 1 在更高级别特征图中其父点的覆盖范围内。
四叉树的定义和构造:我们定义一个点四叉树来分解检测到的不相干区域。
我们的结构如图 5 所示,其中较高级别 FPN 特征(例如特征分辨率 28×28)中的一个黄点在其相邻的较低级别 FPN 特征图中(例如分辨率 56×56)有四个象限点。这些都是特征点,但具有不同的粒度,因为它们位于不同的金字塔级别。与计算机图形学中使用的传统四叉树“单元”相反,四叉树“单元”可以有多个点,我们的点四叉树的细分单元始终在单个点上,点的划分由检测到的不相干值决定以及二元分类器的阈值。基于检测到的不相干点,我们构造一个多级分层四叉树,从使用最高级别特征图中检测到的点作为根节点开始。选择这些根节点来细分到较低级别特征图上的四个象限,具有更大的分辨率和更多的局部细节。请注意,在精细级别,只有被检测为不相干的象限点才能进一步分解,并且不相干树节点的扩展被限制在与先前粗略级别的不相干预测相对应的区域中。

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

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

相关文章

Pymysql之Cursor常用API

Cursor常用API 1、cursor.execute(query, argsNone):执行sql语句。 参数: query (str):sql语句。 args (tuple, list or dict):sql语句中如果有变量,或者格式化输出,会在这里填充数据。 Returns:返…

springboot项目启动报错:dynamic-datasource can not find primary datasource

项目启动报错信息 Caused by: com.baomidou.dynamic.datasource.exception.CannotFindDataSourceException: dynamic-datasource can not find primary datasourceat com.baomidou.dynamic.datasource.DynamicRoutingDataSource.determinePrimaryDataSource(DynamicRoutingDat…

七、Nacos源码系列:Nacos服务发现

目录 一、服务发现 二、getServices():获取服务列表 2.1、获取服务列表 2.2、总结图 三、getInstances(serviceId):获取服务实例列表 3.1、从缓存中获取服务信息 3.2、缓存为空,执行订阅服务 3.2.1、调度更新,往线程池中…

DC-8靶机渗透详细流程

信息收集: 1.存活扫描: arp-scan -I eth0 -l └─# arp-scan -I eth0 -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:dd:ee:6a, IPv4: 192.168.10.129 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.10…

uni使用openlayer加载本机离线地图

manifest.json添加配置 "runmode": "liberate"(默认为normal) 把地图打包进apk,这样手机每次访问地图就可以访问到工程文件夹的地图资源了,不用每次都请求云资源,消耗流量太大了

第9章 安全漏洞、威胁和对策(9.11-9.16)

9.11 专用设备 专用设备王国疆域辽阔,而且仍在不断扩张。 专用设备是指为某一特定目的而设计,供某一特定类型机构使用或执行某一特定功能的任何设备。 它们可被看作DCS、物联网、智能设备、端点设备或边缘计算系统的一个类型。 医疗设备、智能汽车、…

《MySQL 简易速速上手小册》第3章:性能优化策略(2024 最新版)

文章目录 3.1 查询优化技巧3.1.1 基础知识3.1.2 重点案例3.1.3 拓展案例 3.2 索引和查询性能3.2.1 基础知识3.2.2 重点案例3.2.3 拓展案例 3.3 优化数据库结构和存储引擎3.3.1 基础知识3.3.2 重点案例3.3.3 拓展案例 3.1 查询优化技巧 让我们来聊聊如何让你的 MySQL 查询跑得像…

【python】if __name__ == ‘__main__‘:

if __name__ __main__: 是一个Python脚本中使用的常见结构,用来判断该脚本文件是直接运行的还是被导入到其他文件中运行的。 当一个Python文件被运行时,Python解释器会自动创建一些特殊的变量,__name__就是其中之一。如果这个文件是作为主程…

米贸搜|Facebook在购物季使用的Meta广告投放流程

一、账户简化 当广告系列开始投放后,每个广告组都会经历一个初始的“机器学习阶段”。简化账户架构可以帮助AI系统更快获得广告主所需的成效。例如: 每周转化次数超过50次的广告组,其单次购物费用要低28%;成功结束机器学习阶段的…

Ondo宣布将其原生稳定币USDY带入Sui生态

重要提示:USDY是由短期美国国债支持的token化票据,持有者享受稳定币的实用性同时获得收益。USDY不得在美国或向美国人出售或以其他方式提供。USDY也未根据1933年美国证券法注册。 不到一年的时间,Sui已经成为全链TVL排名前十的区块链&#xf…

Netty源码 之 ByteBuf自适应扩缩容源码

Netty体系如何使得ByteBuf根据实际IO收发数据场景进行自适应扩容缩容的? IO收发数据的过程: read 读取("I"):网卡硬件通过网络传输介质读取对端传输过来的数据,网卡硬件再把数据写到recv-socke…

Flask 入门7:使用 Flask-Moment 本地化日期和时间

如果Web应用的用户来自世界各地,那么处理日期和时间可不是一个简单的任务。服务器需要统一时间单位,这和用户所在的地理位置无关,所以一般使用协调世界时(UTC)。不过用户看到 UTC 格式的时间会感到困惑,他们…

Linux系统安装(CentOS Vmware)

学习环境安装 VMware安装 VMware下载&安装 访问官网:https://www.vmware.com 在此处可以选择语言 点击China(简体中文) 点击产品,点击Workstation Pro 下滑,点击下载试用版 下滑找到Workstation 17 Pro for Wi…

如何查看端口映射?

端口映射是一种用于实现远程访问的技术。通过将外网端口与内网设备的特定端口关联起来,可以使外部网络用户能够通过互联网访问内部网络中的设备和服务。在网络中使用端口映射可以解决远程连接需求,使用户能够远程访问设备或服务,无论是在同一…

彻底学会系列:一、机器学习之线性回归(一)

1.基本概念(basic concept) 线性回归: 有监督学习的一种算法。主要关注多个因变量和一个目标变量之间的关系。 因变量: 影响目标变量的因素: X 1 , X 2 . . . X_1, X_2... X1​,X2​... ,连续值或离散值。 目标变量: …

DAY7 作业

1.简易QQ登录页面 实际效果 qss界面代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);this->setWindowTitle("QQ"); /*设置窗口标题*/this->…

python官网下载慢怎么办?这里是一些解决方法

为什么Python官网下载速度慢? Python官网是开源软件的官方网站,提供了Python编程语言的最新版本和相关资源供开发者下载。然而,由于全球用户访问量较大,有时候会导致Python官网的下载速度变慢或不稳定。这对于急需获取Python的开…

idea设置terminal为git

要在IntelliJ IDEA中设置终端为Git Bash,请按照以下步骤操作: 打开 Settings(设置)。点击 Tools(工具)选项卡。进入 Terminal(终端)界面。在 Shell Path 下选择 Browse(…

如何在 Microsoft Azure 上部署和管理 Elastic Stack

作者:来自 Elastic Osman Ishaq Elastic 用户可以从 Azure 门户中查找、部署和管理 Elasticsearch。 此集成提供了简化的入门体验,所有这些都使用你已知的 Azure 门户和工具,因此你可以轻松部署 Elastic,而无需注册外部服务或配置…

【git】本地项目推送到github、合并分支的使用

1. github上创建仓库信息 点击个人头像,选择【你的仓库】 点击【新增】 填写仓库信息 2. 本地项目执行的操作 1.生成本地的git管理 (会生成一个.git的文件夹) git init 2.正常提交到暂存区,并填写提交消息 git add . git commit -m "init…