GSANet:使用无监督学习实现视频对象分割

2024-08-25 21:36

本文主要是介绍GSANet:使用无监督学习实现视频对象分割,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

​Abstract

无监督视频对象分割的目标是在视频序列中分割出最显著的对象。然而,复杂背景的存在和多个前景对象的出现使这一任务充满挑战。为了解决这个问题,我们提出了一种引导槽注意力网络,以增强空间结构信息并获得更好的前景与背景分离。通过查询引导初始化的前景和背景槽,基于与模板信息的交互对其进行迭代优化。此外,为了改进槽与模板的交互并有效融合目标和参考帧中的全局和局部特征,我们引入了K-近邻过滤和特征聚合转换器。该模型在两个流行数据集上达到了最新的性能水平。此外,通过各种对比实验,我们展示了该模型在复杂场景中的鲁棒性。

源代码:https://github.com/Hydragon516/GSANet.

Instroduction

视频对象分割(VOS)是计算机视觉中的一项关键任务,旨在逐帧分割视频序列中的对象。VOS被用作视频字幕生成、光流估计和自动驾驶等任务的预处理。VOS任务根据是否有明确的目标监督信息可以分为半监督和无监督两种方法。在半监督VOS中,模型提供了初始帧的分割掩码,其目标是在整个视频序列中跟踪并分割指定对象。而无监督VOS要求模型在没有任何外部指导或初始帧掩码的情况下,寻找并分割视频序列中最显著的对象。无监督VOS是一个更具挑战性的任务,因为它涉及到在输入视频中搜索一致出现的常见对象并有效提取它们的特征。
由于无监督VOS的难度,基于深度学习的无监督VOS模型近年来备受关注。特别是,许多方法整合了光流等额外的运动信息与RGB外观信息,因为目标对象通常表现出显著的运动。这些方法专注于如何恰当地融合外观和运动信息。这两种信息可以相互补充并为预测提供有用的线索。然而,它们存在过度依赖运动线索而忽略场景结构信息(如颜色、纹理和形状)的问题。在场景结构复杂或光流图质量较低的情况下,这些方法无法可靠运行。
为了解决这些问题,我们提出利用最初在以对象为中心的学习中引入的槽注意力机制。这一机制使得从充满上下文信息的特征中提取关键的空间结构信息成为可能,这是区分前景和背景所必需的。我们关注槽注意力的原因是对象为中心的学习与无监督VOS之间有着共同的直觉,即两者都旨在自我学习并分割对象和背景的显著特征。在以对象为中心的学习中,槽注意力生成随机初始化的空槽,并对输入图像特征执行迭代多头注意力,以为每个槽存储单个对象和背景信息。这些存储在每个槽中的对象和背景的单个信息通过捕捉单个对象及其上下文的独特特征和相互作用,提供了稳健的前景和背景区分能力。这种区分的直觉也可以应用于无监督VOS模型,以增强区分最显著对象的能力。然而,现有的基于槽注意力的图像分割方法存在一个显著的局限性,即它们仅在具有统一颜色和布局的合成图像或通过颜色和形状或简单纹理(如光流图)清晰区分的对象上效果良好,而在复杂的现实场景中表现不佳。这一限制的原因有:1)随机初始化的槽难以在复杂场景中代表合理的上下文,2)现有的简单多头注意力操作缺乏稳健的特征区分能力,以及3)在存在复杂背景和多个相似对象的情况下,对所有输入特征的注意力可能成为噪声。
为了解决这些局限性,我们提出了一种新的引导槽注意力网络(GSA-Net)机制,该机制使用引导槽、特征聚合转换器(FAT)和K-近邻(KNN)过滤。该模型通过嵌入编码器目标帧特征中的上下文信息生成引导槽,这些信息包括关于前景和背景候选的粗略空间结构信息。我们的槽注意力机制不同于现有的槽注意力机制,它们采用随机初始化的空槽作为查询特征,而我们的方法防止了槽在迭代多头注意力的初始阶段以错误方式训练。此外,为槽提供指导信息使得模型在复杂的现实场景中保持稳健的上下文提取能力。更进一步地,我们的模型从目标帧和参考帧中提取并聚合全局和局部特征,用作引导槽注意力的键和值。为此,我们设计了FAT以创建有效聚合全局和局部特征的特征。这些特征与引导槽进行迭代注意,以通过传递丰富的上下文信息逐步优化槽的空间信息。通过这种方式,我们补充了之前槽注意力的简单多头注意操作,增强了特征区分能力。特别是,提出的槽注意力使用KNN过滤在特征空间中采样与槽接近的特征,依次传递用于槽重建的有用信息。这在具有多个类似目标对象的复杂场景中稳定了槽优化过程,并帮助生成精确的重建图。换句话说,我们的槽注意力逐步采样并使用与目标对象高度相似的输入特征,而不是像现有方法那样同时使用所有输入特征。图1显示了提出的引导槽注意力在挑战性场景中仍然保持强大的前景和背景分离能力。
我们的方法在两个广泛使用的数据集上进行了评估:DAVIS-16和FBMS。这些数据集包含多样且具挑战性的场景,我们的模型在这两个数据集上都达到了最新的性能水平。此外,通过各种消融研究,我们证明了模型的有效性,并展示了它在挑战性序列中实现稳健视频对象分割的能力。

3.Method

3.1. 整体架构

图2展示了所提出的GSA(Guided Slot Attention,指导槽注意力)的整体结构。所提出的模型使用一个目标帧图像和NR个参考帧图像作为输入。首先,槽生成器从编码后的目标帧图像特征中生成前景和背景指导槽。这些槽包含目标前景对象和背景的指导信息。此外,GSA使用局部提取器提取目标图像的局部特征,包括详细信息,并使用全局提取器提取参考帧的全局特征。我们设计了一个聚合Transformer来整合这些信息,并有效地融合目标帧特征和参考帧特征。最终,模型使用聚合后的特征和指导槽进行槽注意力。在这个过程中,槽通过基于KNN算法的融合特征进行精细调整。结果,槽包含了不同的特征信息,以生成准确的掩码。请注意,所提出的模型具有与RGB图像流相同的光流(optical flow)流,该过程在图2中被省略。由RGB图像和光流生成的特征将在一个解码器中进行拼接。

## 3.2. 槽生成器


 


结果,槽生成器创建了一个指导槽块

,通过此过程,槽生成器使用有用的特征初始化槽,以进行最终的掩码生成,并用它们作为指导。因此,与使用随机初始化槽的先前槽注意力方法不同,可以为对象创建一个稳健且准确的掩码。特别是,我们在第4.6节中证明,每个槽在模型训练后都包含前景和背景的信息。

3.3. 局部与全局提取器

图3(b)和(c)分别展示了所提出的局部提取器和全局提取器的结构。我们在训练时使用一个目标帧和多个参考帧。局部提取器旨在通过在特征层次上进行k均值聚类来提取目标帧的详细信息。此外,全局提取器为每个前景对象和背景生成软对象区域,并利用这些区域提取参考帧的全局信息,充分利用大量信息。
 


接下来,通过通道级softmax操作生成

,该过程可表示为:
 

3.4. 特征聚合Transformer

3.5. 指导槽注意力

提出的指导槽注意力在概念上类似于之前的方法,因为它受到先前方法的启发。然而,如图4所示,提出的槽注意力在结构上有几个改进。首先,如第3.2节所述,提出的槽注意力使用从槽生成器生成的指导槽。这与之前的槽注意力方法使用随机初始化的空槽形成对比。所提出的模型通过使用提供了前景和背景区分的初始指导信息。因此,这使槽包含更准确的前景和背景特征。
其次,使用K最近邻(KNN)算法从聚合特征中选择与每个槽最接近的N个特征,其中n = 1, 2, …, N。它旨在通过与槽执行的注意力操作来精炼特征,以尽量减少噪声并在注意力过程中稳定学习。另一方面,之前的槽注意力计算槽与所有输入特征之间的注意力。这解决了先前方法中的一个著名问题,即许多相似的对象作为噪声出现,导致性能下降。
最后,所提出的模型使用与先前工作类似的迭代注意机制来更新槽,但我们应用了第3.4节描述的FAT。FAT在指导槽和选定特征

之间执行自注意力操作。

3.6. 掩码生成和损失函数

如图2所示,在指导槽注意力之后,模型获取了聚合特征和精细化槽,用于前景和背景。在以对象为中心的学习任务中,槽注意力(Slot Attention)使用基于自编码器的槽解码器进行无监督图像分割。然而,对于无监督视频对象分割,由于我们可以获得目标对象的真实掩码,我们设计了一个基于槽余弦相似度的新槽解码器。我们计算编码器特征与特征之间的像素级余弦相似度。由、和生成的RGB流相关性图


表示如下:

4.Experiments

定量结果。表1显示了所提出的GSA-Net的定量结果。我们的模型分别在ResNet101和MiT-b2骨干编码器上进行了评估。在大多数传统的无监督视频对象分割(VOS)方法中,采用了单尺度测试而不进行测试时增强。然而,为了与HFAN进行公平比较,我们包括了多尺度测试和测试时增强的结果。如表所示,我们的方法在这两个具有挑战性的数据集上都达到了最新的性能水平。特别是,与HFAN在512×512分辨率下的性能相比,所提出的GSA-Net在实现更快的FPS和更高性能的同时,展示了相当的表现。与DAVIS-16 相比,FBMS包括了单对象和多对象场景。显著的是,即使在这些更复杂的场景中,我们提出的方法也大幅度超越了所有现有的方法。这一结果展示了GSA-Net在处理包含多个对象的视频时的鲁棒性。
 


定性结果。 我们使用DAVIS-16数据集将我们提出的GSA-Net模型与两个最新的模型HFAN和TMO进行了性能比较。图5中展示的结果表明,GSA-Net在各种具有挑战性的视频序列中都优于HFAN和TMO。特别是,GSA-Net在具有复杂背景且目标对象与其他对象在外观上相似的情况下表现出强大的鲁棒性,这在Breakdance序列中得到了展示。此外,GSA-Net模型即使在对象具有极端尺度变化的情况下,也能实现一致的特征提取,这在Motocross-Jump序列中得到了证明。总体而言,这些结果表明,GSA-Net在处理具有挑战性的视频序列中的对象跟踪任务方面是一种很有前途的方法。
 


消融分析。本节包含对所提出模型的各种消融实验。所有实验都在与ResNet101骨干相同的512×512图像分辨率下进行评估。
指导槽的效果。表2 (b)、©和图6展示了所提出的指导槽的效果。与现有的随机初始化槽的方法相比,使用所提出的槽生成器生成的槽在所有评估指标中显示出显著的性能提升。特别是,图6展示了在使用随机初始化槽和指导槽时最终精细化的前景和背景槽掩码,它在包含多个对象的复杂RGB图像中表现出强大的目标对象区分能力。
 


 


KNN过滤和FAT的效果。表2 (d)、(e)和(f)展示了所提出的KNN过滤和FAT的有效性,两者在所有评估指标中都显示出了显著的性能提升。特别是,FAT通过有效地整合来自目标帧的局部信息和参考帧的全局信息,展示了比标准Transformer块更强的掩码精度。此外,KNN过滤在包含多个目标对象的FBMS数据集上展示了高性能的提升,表明通过特征采样,它能够通过槽注意力有效提取多对象的广义特征。
测试时迭代次数的影响。图7和图8展示了在模型测试阶段,根据所提出的指导槽注意力的迭代次数T,性能的变化情况。所提出的指导槽注意力通过反复应用注意力机制,提高了精细化槽掩码的质量。特别值得注意的是,所提出的方法在三次迭代后表现出性能提升,之后的性能变化不再显著。这表明,通过KNN过滤和FAT,槽已经得到了充分的精细化。随着迭代次数的增加,模型的推理时间也会增加,因此T=3被认为是最优的。
 

结论

本文的主要贡献可以总结如下:

1.本文提出了一种新的引导槽注意力机制,用于无监督视频对象分割,该机制利用引导槽和KNN过滤有效分离复杂场景中的前景和背景空间结构信息。
2.提出的模型通过嵌入目标帧的粗略上下文信息生成引导槽,并从目标帧和参考帧中提取并聚合全局和局部特征,以通过引导槽注意力迭代优化槽。
3.提出的方法在两个流行数据集上达到了最新的性能水平,并通过各种消融研究展示了在挑战性序列中的稳健性。

本文引用文章:

Guided Slot Attention for Unsupervised Video Object Segmentation

关注我的公众号auto_driver_ai(Ai fighting), 第一时间获取更新内容。

AiFighing是全网第一且唯一以代码、项目的形式讲解自动驾驶感知方向的关键技术,关注我,一起学习自动驾驶感知技术。

这篇关于GSANet:使用无监督学习实现视频对象分割的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

el-select下拉选择缓存的实现

《el-select下拉选择缓存的实现》本文主要介绍了在使用el-select实现下拉选择缓存时遇到的问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录项目场景:问题描述解决方案:项目场景:从左侧列表中选取字段填入右侧下拉多选框,用户可以对右侧

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min