【没有哪个港口是永远的停留~论文简读】Panoptic SegFormer

news2025/1/15 17:39:06

Panoptic SegFormer

原文:https://arxiv.org/pdf/2109.03814.pdf

代码:GitHub - zhiqi-li/Panoptic-SegFormer: This is the official repo of Panoptic SegFormer [CVPR'22]

在全景分割中,图像内容可分为things和stuff两类。

  • things是可计数的实例(例如,人、汽车和自行车),每个实例都有一个唯一的id来区别于其他实例。
  • stuff是指非定形和不可数的区域(例如,天空,草原和雪),没有实例id。

Panoptic SegFormer包含三个关键的设计:

(1)统一表示things和stuff的query集 ,其中stuff被视为只有单一实例id的特殊类型;

(2)利用things和stuff的位置信息来提高分割质量的位置解码器

(3)Mask后处理策略 ,合并things和stuff的分割结果。

受益于这三种设计,Panoptic SegFormer高效地实现了SOTA的全精分割任务的性能。(性能对比如下图所示)

 

网络结构

 

模型的整体架构如上图所示,Panoptic SegFormer由三个关键模块组成:

  • Transformer Encoder:对主干提取的多尺度特征图进行细化;
  • Location Decoder 位置解码器:利用位置解码器捕捉物体的位置线索;
  • Mask Decoder:Mask解码器用于最终的分类和分割

在前向阶段,我们首先将图像输入到主干网络,从最后三个阶段获得特征图C3、C4、C5,与输入图像相比,其分辨率分别为1/8、1/16和1/32。

然后,通过全连接(FC)层将这三个特征投影到具有256个通道的特征中,并将它们flatten为特征token C3`、C4`、C5`。维度分别为L1x256、L2x256、L3x256。

接下来,concat这些token作为Transformer编码器的输入,Transformer编码器输出的细化特征大小为。然后使用N个初始化的query来描述things和stuff,获取position信息。最后使用mask-wise strategy来融合预测的mask,得到最终的分割结果。

Transformer编码器

高分辨率和多尺度特征图对于分割任务具有重要意义。由于多头注意层的计算成本高,以往基于Transformer的方法只能在其编码器中处理低分辨率的特征图(如ResNet的C5),这限制了分割性能。与这些方法不同,作者使用可变形的注意层(deformable attention)来实现Transformer编码器。由于可变形注意层的计算复杂度较低,本文的编码器可以拓展到高分辨率和多尺度特征图F。

位置解码器

在全景分割任务中,位置信息在区分具有不同实例id的things方面起着重要的作用。受此启发,作者设计了一个位置解码器,将things的位置信息(即中心位置和尺度)引入到可学习的query中。

具体来说,给定N个随机初始化的query和由Transformer编码器生成的细化的特征token,解码器将输出N个具有位置感知性的query。在训练阶段,作者在位置感知query的基础上应用一个辅助的MLP头来预测目标对象的尺度和中心位置,并使用位置损失来监督预测。MLP头是一个辅助分支,可以在推理阶段被丢弃。由于位置解码器不需要预测分割mask,因此作者用计算和内存更高效的可变形注意(deformable attention)来实现。

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

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

相关文章

2023.12.28力扣每日一题——收集巧克力

2023.12.28 题目来源我的题解(参考力扣官方题解)方法一 枚举方法二 二次差分 题目来源 力扣每日一题;题序:2735 我的题解(参考力扣官方题解) 嗯……今天不会,就当一次搬运工吧。 方法一 枚举…

去水印软件哪个好用?用他们就够了

随着数字媒体的发展,越来越多的人开始需要处理带有水印的图片或视频。水印不仅是一种版权保护手段,也常常被用来标记图片或视频的来源。然而,在某些情况下,我们可能需要去除水印以实现更好的使用效果。那么,去水印软件…

【C++进阶03】二叉搜索树

一、二叉搜索树的概念和性质 中序遍历二叉搜索树会得到一个有序序列 所以二叉搜索树又称二叉排序树 它可以是一棵空树 也可以是具有以下性质的二叉树: 若它的左子树不为空 则左子树上所有节点的值都小于根节点的值若它的右子树不为空 则右子树上所有节点的值都大于…

技术经验|Java基础之LocalTime类

文章目录 1 背景2 Time包在实际开发中的位置3 本地日期和时间类3.1 LocalTime自带功能3.2 LocalTime继承、重写功能 4 总结 📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师 🔥 三连支持&a…

【Java系列】多线程案例学习——基于阻塞队列实现生产者消费者模型

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】【JaveEE学习专栏】 本专栏旨在分享学习JavaEE的一点学习心得,欢迎大家在评论区交流讨论💌 目录…

九九乘法表c 语言 用于打印九九乘法表

以下是一个简单的C语言程序&#xff0c;用于打印九九乘法表&#xff1a; #include <stdio.h>int main() {int i, j;for (i 1; i < 9; i) {for (j 1; j < i; j) {printf("%d*%d%-2d ", j, i, i*j);}printf("\n");}return 0; }解释&#xff1…

GBASE南大通用GBaseCommand 类

代表一个要对 GBASE南大通用数据库执行操作的 SQL 语句。这个类不能被继承。对 于该类所有成员的列表&#xff0c;参考 GBASE南大通用 GBaseCommand 成员。  继承层次 System.Object |__ System.MarshalByRefObject |__ System.ComponentModel.Component |__ System.D…

go语言,ent库与gorm库,插入一条null值的time数据

情景介绍 使用go语言&#xff0c;我需要保存xxxTime的字段至数据库中&#xff0c;这个字段可能为空&#xff0c;也可能是一段时间。我采取的是统一先赋值为空&#xff0c;若有需要&#xff0c;则再进行插入&#xff08;需要根据另一个字段判断是否插入&#xff09; 在我的数据…

‘>>’,‘<<’和‘’的使用

>>: n n >> 1 是使用位移运算符将 n 向右移动一位的操作。在 C 语言中&#xff0c;>> 是右移位运算符&#xff0c;表示将二进制数向右移动指定的位数。 对于无符号整数&#xff0c;在右移位操作时&#xff0c;高位用 0 填充。例如&#xff0c;如果 n 的二…

Navicat导入与导出表的操作流程

我们使用Navicat时&#xff0c;创建表有两种方法&#xff0c;一种是写SQL语句&#xff0c;这种方法适合数据较少的表&#xff1b;另一种是通过“导入向导”功能导入表&#xff0c;这种方法可以一次性导入大批量的数据&#xff0c;提高效率。 下面我以.xls格式为例&#xff0c;…

程序员的浪漫,2023跨年烟花代码(Python)

跨年倒计时啦 今天分享用python实现一场烟花秀 感兴趣的小伙伴&#xff0c;提前收藏起来&#xff0c;一定要看到最后&#xff01; 话不多说 1.首先制作一个绚丽的夜空 制作夜空&#xff0c;其实就是设置画布。大家知道&#xff0c;夜晚的天空月明如水&#xff0c;星光攒动&a…

创建型设计模式 - 抽象工厂模式 - JAVA

创建型设计模式 - 抽象工厂设计模式 一. 简介二. 列子2.1 定义电脑的抽象类和子类2.2 定义抽象工厂类和其实现类2.3 测试 三. 抽象工厂设计模式的好处四. 抽象工厂模式的案例 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续…

git 如何将某个分支的某个提交复制到另外一个分支

请直接去看原文: 原文链接:git 如何将某个分支的某个提交复制到另外一个分支_gitlab里面的markdown文件可以复用其他分支的吗-CSDN博客 --------------------------------------------------------------------------------------------------------------------------------…

drf知识-08

Django之了解DRF框架 # 介绍&#xff1a;DRF全称 django rest framework # 背景&#xff1a; 在序列化与反序列化时&#xff0c;虽然操作的数据不尽相同&#xff0c;但是执行的过程却是相似的&#xff0c;也就是说这部分代码是可以复用简化编写的 增&#xff1a;校验请…

leaflet学习笔记-地图图层控制(二)

图层介绍 Leaflet的地图图层控件可控制两类图层&#xff1a;一类是底图图层&#xff08;Base Layers&#xff09;&#xff0c;一次只能选择一个图层作为地图的背景图层&#xff0c;即底图图层&#xff0c;在地图图层控件中用单选按钮控制&#xff1b;另一类是覆盖图层&#xff…

目标检测损失函数:IoU、GIoU、DIoU、CIoU、EIoU、alpha IoU、SIoU、WIoU原理及Pytorch实现

前言 损失函数是用来评价模型的预测值和真实值一致程度&#xff0c;损失函数越小&#xff0c;通常模型的性能越好。不同的模型用的损失函数一般也不一样。损失函数主要是用在模型的训练阶段&#xff0c;如果我们想让预测值无限接近于真实值&#xff0c;就需要将损失值降到最低…

Ubuntu18.04安装GTSAM库并验证GTSAM是否安装成功(亲测可用)

在SLAM&#xff08;Simultaneous Localization and Mapping&#xff09;和SFM&#xff08;Structure from Motion&#xff09;这些复杂的估计问题中&#xff0c;因子图算法以其高效和灵活性而脱颖而出&#xff0c;成为图模型领域的核心技术。GTSAM&#xff08;Georgia Tech Smo…

【论文阅读】Resource Allocation for Text Semantic Communications

这是一篇关于语义通信中资源分配的论文。全文共5页&#xff0c;篇幅较短。 目录在这里 摘要关键字引言语义通信资源分配贡献公式符号 系统模型DeepSC TransmitterTransmission ModelDeepSC Receiver 语义感知资源分配策略Semantic Spectral Efficiency &#xff08;S-SE&#…

Docker七 | 搭建Swarm集群

目录 创建Swarm集群 创建管理节点 增加工作节点 查看集群 部署服务 新建服务 查看服务 服务伸缩 增加服务 减少服务 删除服务 创建Swarm集群 创建管理节点 在192.168.117.131下执行docker swarm init命令的节点自动成为管理节点 [rootlocalhost ~]# docker swar…

idea中切换JDK8、JDK11、JDK17

有时候&#xff0c;我们可能需要在不同的Java版本中去测试或者查看源码&#xff0c;idea可以让我们修改Java的版本。 前提&#xff1a;你必须下载安装好对应的Java版本&#xff0c;可参考文章【windows下切换JDK8、JDK11、JDK17】&#xff08;https://blog.csdn.net/xijinno1/a…