Panoptic-PartFormer:首篇端到端全景部件分割算法,代码已开源!(ECCV2022)

简介: 全景部件分割(PPS)旨在统一全景分割和部件分割。先前的工作主要使用不同的方法来单独处理thing、stuff和part,并未进行任何的计算共享和任务关联。因此本文搭建了一个统一的框架,即Panoptic-PartFormer来实现上述工作。本文在 Cityscapes PPS 和 Pascal Context PPS数据集上取得了最先进的结果,同时减少了70%的计算量和50%的参数量。相比于以往方法,在 Pascal Context PPS 数据集上,ResNet50主干下取得3.4%的提升,使用 Swin Transformer后,获得了10%的性能提升。

原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA




基于Transformer的第一篇统一端到端全景部件分割算法!代码已开源!

标题:Panoptic-PartFormer: Learning a Unified Model for Panoptic Part Segmentation


链接:https://arxiv.org/pdf/2204.04655v1.pdf

代码:https://github.com/lxtGH/Panoptic-PartFormer


摘要



全景部件分割(PPS)旨在统一全景分割和部件分割。先前的工作主要使用不同的方法来单独处理thing、stuff和part,并未进行任何的计算共享和任务关联。因此本文搭建了一个统一的框架,即Panoptic-PartFormer来实现上述工作。本文在 Cityscapes PPS 和 Pascal Context PPS数据集上取得了最先进的结果,同时减少了70%的计算量和50%的参数量。相比于以往方法,在 Pascal Context PPS 数据集上,ResNet50主干下取得3.4%的提升,使用 Swin Transformer后,获得了10%的性能提升。


贡献



本文的贡献主要有以下几点:


1、Panopic-PartFormer为全景部件分割提供一个新颖、简单且有效的基线算法,据本文所知,这是该任务的第一个统一的端到端模型;

2、本文提出一个新的解耦的解码器和一个联合查询更新和推理框架,用于thing、stuff和part的联合特征学习,此外,提出了一个新的损失函数来监督整个模型;

3、大量的实验和分析表明了Panopic-PartFormer的有效性和泛化性。本文通过联合训练显著改善部件分割的性能。在Pascal Context PPS 数据集上,使用ResNet101的PartPQ增益约6-7%,使用swin Transformer  的 PartPQ 增益约为 10%,在Cityscapes PPS数据集上获得了1-2的PartPQ增益,并在Mapillary 和 BDD数据集上表现出更好的泛化能力。


全景部件分割的示意图如下所示:


640.png


方法



下图展示了Panopic-PartFormer的整体结构,主要包含三个部分:


1)Encoder network:用于特征提取的主干网络,常见的主干网络如ResNet、Swin Transformer等。

2)Decoupled decoder:解耦解码器包含两个独立的解码器网络,用来获取scene feature和 part feature,其中scene feature用来对thing和stuff的预测进行解码,而part feature用来对part的预测进行解码。这是因为部件分割和全景分割拥有不同的属性。首先,part feature需要更精确的位置和细节信息,其次,scene feature侧重于mask proposal级别的预测,而part feature则更关注mask proposal的内部部分,两者相互冲突。

3)Transformer decoder:将三种不同类型的query和主干特征作为输入,并输出thing、stuff和part的预测结果。


640.png


实验结果



Cityscape Panoptic Part 数据集的实验结果:


640.png


计算量和参数量对比:


640.png


Pascal Panoptic Part数据集的实验结果:


640.png


消融实验和模型设计:


640.png


不同数据集的可视化结果:


640.jpg

相关文章
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【自然语言处理】TF-IDF算法在人工智能方面的应用,附带代码
TF-IDF算法在人工智能领域,特别是自然语言处理(NLP)和信息检索中,被广泛用于特征提取和文本表示。以下是一个使用Python的scikit-learn库实现TF-IDF算法的简单示例,并展示如何将其应用于文本数据。
215 65
|
27天前
|
机器学习/深度学习 存储 算法
经典算法代码
这段代码展示了多个经典算法,包括:穷举法解决“百钱买百鸡”问题;递推法计算“猴子吃桃”问题;迭代法求解斐波那契数列及折纸高度超越珠峰的问题。同时,还提供了希尔排序算法实现及披萨票务订购系统和汉诺塔问题的链表存储解决方案。每部分通过具体案例解释了算法的应用场景与实现方法。
23 3
|
2月前
|
算法 数据处理 数据安全/隐私保护
|
2月前
|
机器学习/深度学习 人工智能 算法
【人工智能】传统语音识别算法概述,应用场景,项目实践及案例分析,附带代码示例
传统语音识别算法是将语音信号转化为文本形式的技术,它主要基于模式识别理论和数学统计学方法。以下是传统语音识别算法的基本概述
56 2
|
2月前
|
搜索推荐 算法 Java
|
2月前
|
机器学习/深度学习 运维 算法
深入探索机器学习中的支持向量机(SVM)算法:原理、应用与Python代码示例全面解析
【8月更文挑战第6天】在机器学习领域,支持向量机(SVM)犹如璀璨明珠。它是一种强大的监督学习算法,在分类、回归及异常检测中表现出色。SVM通过在高维空间寻找最大间隔超平面来分隔不同类别的数据,提升模型泛化能力。为处理非线性问题,引入了核函数将数据映射到高维空间。SVM在文本分类、图像识别等多个领域有广泛应用,展现出高度灵活性和适应性。
96 2
|
2月前
|
人工智能 算法 数据可视化
DBSCAN密度聚类算法(理论+图解+python代码)
DBSCAN密度聚类算法(理论+图解+python代码)
|
2月前
|
数据采集 搜索推荐 算法
【高手进阶】Java排序算法:从零到精通——揭秘冒泡、快速、归并排序的原理与实战应用,让你的代码效率飙升!
【8月更文挑战第21天】Java排序算法是编程基础的重要部分,在算法设计与分析及实际开发中不可或缺。本文介绍内部排序算法,包括简单的冒泡排序及其逐步优化至高效的快速排序和稳定的归并排序,并提供了每种算法的Java实现示例。此外,还探讨了排序算法在电子商务、搜索引擎和数据分析等领域的广泛应用,帮助读者更好地理解和应用这些算法。
25 0
|
2月前
|
搜索推荐 算法 Java
插入排序算法(Java代码实现)
这篇文章通过Java代码示例详细解释了插入排序算法的实现过程,包括算法的基本思想、核心代码、辅助函数以及测试结果,展示了如何通过插入排序对数组进行升序排列。
|
2月前
|
机器学习/深度学习 算法 Python
python与朴素贝叶斯算法(附示例和代码)
朴素贝叶斯算法以其高效性和优良的分类性能,成为文本处理领域一项受欢迎的方法。提供的代码示例证明了其在Python语言中的易用性和实用性。尽管算法假设了特征之间的独立性,但在实际应用中,它仍然能够提供强大的分类能力。通过调整参数和优化模型,你可以进一步提升朴素贝叶斯分类器的性能。
49 0
下一篇
无影云桌面