DynaMask:用于实例分割的动态掩码选择

news2025/2/26 3:38:33

文章目录

  • DynaMask: Dynamic Mask Selection for Instance Segmentation
    • 摘要
    • 本文方法
      • Dual-Level FPN
      • Region-Level FPN
      • Feature Aggregation Module (FAM)
      • Mask Switch Module (MSM)
      • 损失函数
    • 实验结果

DynaMask: Dynamic Mask Selection for Instance Segmentation

摘要

具有代表性的实例分割方法大多采用固定分辨率的mask来分割不同的对象实例,例如28×28网格。然而,低分辨率mask会丢失丰富的细节,而高分辨率mask则会产生二次计算开销。预测每个实例的最优二进制mask是一项具有挑战性的任务。
本文方法

  1. 为不同的对象建议动态选择合适的掩码
  2. 开发了一种具有自适应特征聚合的双层特征金字塔网络(FPN),以逐步提高掩模网格的分辨率,确保对象的高质量分割。
  3. 具体而言,引入了一种有效的区域级自上而下路径(r-FPN),以合并来自图像级FPN(i-FPN)不同阶段的互补上下文和详细信息。
  4. 为了缓解由于使用大MASK而导致的计算和内存成本的增加,开发了一种计算成本可忽略不计的掩码切换模块(MSM),为每个实例选择最合适的掩码分辨率,在保持高分割精度的同时实现高效率。
    代码地址

在这里插入图片描述
在这里插入图片描述

本文方法

在这里插入图片描述
DynaMask的整体架构:

  1. 提出了一种双层FPN框架,以逐步增加mask尺寸并实现更高质量的IS
  2. 在图像级FPN(i-FPN)和区域级FPN的每一层之间构建信息流,从而通过结合i-FPN的{P2,P3,P4}的互补信息,不断增强区域特征层次{Ltiny,Lsmall,Lmedian,Llarge},从而导致粗略到精细的掩模预测
  3. 为了降低计算和内存成本,开发了一个mask交换模块(MSM)来预测每个实例的掩码分辨率,并进行资源消耗预算。
  4. MSM输出四种不同的开关状态,对应于四个不同的掩模分辨率,即[14×14,28×28,56×56112×112]

Dual-Level FPN

较低级别的特征比较高级别的特征包含更多细粒度的细节,这有利于高质量的分割,特别是在边界区域,但Mask R-CNN中没有充分探讨这些信息。在这项工作中,我们提出了一种区域级FPN(r-FPN),将来自i-FPN较低层的更详细的信息集成到区域特征层次中。

Region-Level FPN

遵循原始的i-FPN来定义产生与对应于一个特征级别的一个网络阶段相同分辨率的特征图的层。使用{P2,P3,P4,P5}来表示i-FPN的不同特征级别。r-FPN从RoI对齐的区域特征开始,并通过融合来自i-FPN的{P2,P3,P4}的互补信息来逐渐增强,从而产生自上而下的基于区域的特征层次,表示为{Ltiny,Lsmall,Lmedium,Llarge}。从Ltiny到Llarge,空间分辨率逐渐增加两倍。我们设计了一个特征聚合模块(FAM)来集成r-FPN特征Lr和i-FPN特征Pi

Feature Aggregation Module (FAM)

由于上采样和RoI化操作,Lr和Pi之间存在空间错位,这可能会降低边界区域的分割性能。为了克服这一限制,我们提出了自适应聚合多尺度特征的FAM。如图6所示,FAM包含两个可变形卷积,它们起着不同的作用。
第一个(Deform Conv1)调整Lr的位置,使其更好地与Pi对齐。在这里,我们首先将Lr与Pi连接起来,然后将连接的特征通过3×3 Conv来获得偏移图,用∆o表示。最后,用学习的偏移∆o将Lr与Pi对齐。
在这里插入图片描述

Mask Switch Module (MSM)

所提出的双层FPN框架带来了显著的性能改进,但代价是昂贵的计算和内存负担。受不同实例需要不同的mask网格来实现精确分割这一事实的启发,我们提出了一种针对不同实例自适应调整掩模网格分辨率的新方法。具体而言,MSM被开发用于在预算计算消耗下执行掩模分辨率预测,从而在分割精度和效率之间实现良好的权衡
在这里插入图片描述
Optimal Mask Assignment

MSM模块实际上是一个轻量级分类器,用fMSM(·)表示,如图4所示。它包含一个通道式注意力模块,后面是几个卷积层和全连接层。该分类器旨在从K个候选集合中找到最佳掩码分辨率,即[r1,r2,··,rK],以便以最小的资源成本准确地分割实例。具体而言,MSM以裁剪后的区域RoI特征为输入,并通过进行softmax运算输出概率向量P=[p1,··,pK]。该向量的每个元素表示相应的候选分辨率被选择的概率:
在这里插入图片描述
使用Gumbel softmax函数作为原始softmax函数的连续、可微近似:
在这里插入图片描述

损失函数

mask loss
在这里插入图片描述
Edge Loss
在这里插入图片描述
Budget Constraint
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

共见·价值成就|光环云与您相约2023亚马逊云科技合作伙伴峰会!

在云计算蓬勃发展的今天, 在推动业务发展、实现共赢的过程中, 价值成就,是亚马逊云科技对合作伙伴 自始至终的承诺。 为助力合作伙伴成就价值,共建成长路径, 2023亚马逊云科技合作伙伴峰会将于 6月27日在上海世博…

跟着LearnOpenGL学习7--坐标系统

文章目录 一、概述二、变换过程三、局部空间四、世界空间五、观察空间六、裁剪空间6.1、正射投影6.2、透视投影 七、组合变换八、3D实战8.1、创建模型矩阵8.2、创建观察矩阵8.3、创建投影矩阵8.4、变换矩阵传入着色器 九、3D立方体9.1、Z缓冲9.2、更多的立方体 一、概述 OpenG…

【022】C++的结构体、共用体以及枚举详解(最全讲解)

C的结构体、共用体以及枚举详解 引言一、结构体的概述二、结构体变量的操作2.1、结构体变量的初始化2.2、清空整个结构体变量2.3、键盘给结构体变量中的成员赋值2.4、单独操作结构体中的成员2.5、相同类型结构体变量之间的赋值 三、结构体嵌套结构体四、结构体数组五、结构体指…

JUC基础-0531

3 线程间通信 线程间通信的模型有两种:共享内存和消息传递,以下方式都是基本这两种模型来实现的。我们来基本一道面试常见的题目来分析 多线程编程步骤: 第一步:创建资源类,在资源类创建属性和操作方法第二步:在资源…

电脑录音软件哪个好用?如何录制声音?

案例:有没有好用的电脑录音软件分享? 【使用手机录制电脑上的声音,会录入外界的杂音,导致录音文件质量不佳。我需要一款支持录制电脑声音的软件,小伙伴们有没有好用的电脑录音软件推荐?】 电脑录音软件成…

docker安装RabbitMQ教程(2023年最详细)

1.使用docker查询rabbitmq的镜像 docker search rabbitmq 2.安装镜像 如果需要安装其他版本在rabbitmq后面跟上版本号即可 docker pull rabbitmq:3.7.7-management 说明 docker pull rabbitmq:版本号 -management 安装name为rabbitmq的这里是直接安装最新的 docker pull …

算法leetcode|54. 螺旋矩阵(rust重拳出击)

文章目录 54. 螺旋矩阵:样例 1:样例 2:提示: 分析:题解:rust:go:c:python:java:每次循环移动一步:每次循环完成一个顺时针&#xff1a…

玩转 GPT4All

目录 什么是Chatgpt 什么是gpt4all 如何使用 第一步:下载LLM模型 第二步:下载代码 第三步:将模型替换到 第四步:执行启动命令 第五步:生成自己的客户端 第六步:启动 第七步:配置UI 什么…

【CesiumJS入门】(3)ImageryLayer之图层卷帘

前言 上一篇博客简单得介绍了影像图层并成功在视图上加载出来了,而今天我们来实现一个简单的可视化效果,影像图层卷帘。 前置知识:Cesium 事件详解(鼠标事件、相机事件、键盘事件、场景触发事件)_cesium点击事件_GIS…

OPT CST 慕藤光

OPT 波特率 数据长度 停止位 奇偶校验 9600 bps 8 bits 1 bit 无 所有通讯字节都采用ASCII码 特征字 = $命令字 = 1,2,3,4 打开对应通道电源关闭对应通道电源设置对应通道电源参数读出对应通道电…

【论文阅读】Twin Neural Network Regression

论文下载 GitHub bib: ARTICLE{SebastianKevin2022Twin,title {Twin neural network regression},author {Sebastian Johann Wetzel and Kevin Ryczko and Roger Gordon Melko and Isaac Tamblyn},journal {Applied AI Letters},year {2022},volume {3},number …

SpringBoot整合邮箱验证码实现用户注册

唠嗑部分 今天我们来分享一下在系统开发过程中,如何使用验证码来验证用户并完成用户注册 首先来看一下成品界面展示 说一下以上注册功能的设计: 用户手动输入用户名(全数据库唯一)、密码、确认密码、邮箱地址(单个邮箱最多可注册3个用户)、正确的邮箱…

Arm 推出 2023 全面计算解决方案,加速终端 AI 应用开发和部署

在当今数字化时代,人们对移动端计算能力的要求已经上升到了前所未有的高度。他们需要移动设备具有更快、更先进、更持久的计算能力,以提高生产力和生活质量。而科技厂商在满足人们对移动端计算能力的需求的同时,还需要从整个生态系统的角度出…

通过python封装接口seller_nick获取京东店铺所有商品数据,京东店铺所有商品数据接口,京东API接口

目的: 通过python封装接口seller_nick获取京东店铺所有商品数据,方法如下: 使用京东开放平台提供的API接口文档,找到seller_nick接口的具体参数及请求方式。 使用Python中的requests库发送请求,获取接口返回的数据。 …

nuxt3.0学习-三、nuxt.config.ts配置、跨域处理以及浏览器适配处理

nuxt官方对于nuxt.config.ts配置的介绍在Nuxt3.0 nuxt.config.ts配置 关于如何配置本人只能给出一点点启发,具体的配置需要根据个人需求去配置 nuxt.config.ts配置、跨域处理 import { prismjsPlugin } from "vite-plugin-prismjs"; export default de…

CompletableFuture异步和线程池

一、线程回顾 1、初始化线程的 4 种方式 1)、继承 Thread 2)、实现 Runnable 接口 3)、实现 Callable 接口 FutureTask (可以拿到返回结果,可以处理异常) 4)、线程池 方式 1 和方式 2&am…

《精通特征工程》学习笔记(1):数值特征处理

不进行多余的解释,想看原文直接下载pdf查看,本文是精简提炼了重要的方法写进来。 1.二值化 在百万歌曲数据集中,原始的收听次数并不是衡量用户喜好的强壮指标。(在统计学术语 中,“强壮”意味着该方法适用于各种情况…

【2611. 老鼠和奶酪】

来源:力扣(LeetCode) 描述: 有两只老鼠和 n 块不同类型的奶酪,每块奶酪都只能被其中一只老鼠吃掉。 下标为 i 处的奶酪被吃掉的得分为: 如果第一只老鼠吃掉,则得分为 reward1[i] 。如果第二…

Hive之HPLSQL安装手册

软件版本信息: CDH: cdh5.14.0 Hive: 1.1.0 Impala:2.11.0一:下载地址 Hplsql官网: http:www.hplsql.org/download 下载的是:hplsql-0.3.31.tar.gz版本 二:安装步骤 解压下载的hplsql-0.3.…

kafka 02

4.API开发 准备&#xff1a; 创建项目 &#xff0c; 添加依赖 XML <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <depen…