Moving Object Segmentation: All You Need Is SAM(and Flow) 论文详解

news2024/11/28 19:53:47

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 摘要
  • 1 引言
  • 2 相关工作
  • 3 SAM Preliminaries
  • 4 帧级分割Ⅰ:以流作为输入
  • 5 帧级分割Ⅱ:以流为提示
  • 6 序列级掩膜关联
  • 7 实验
    • 7.1 数据集
    • 7.2 评价指标
    • 7 .3 实施细节
    • 7.4 消融实验
    • 7.5 定量结果
    • 7 .定性可视化
  • 8 结论
  • 致谢
  • 附录
    • B.2 帧级分割:FlowP-SAM
    • B.3 序列级掩码关联
    • C 结合运动分割和运动引导分割
    • D 定量结果
    • E 定性结果及失败案例


前言

项目主页:https://www.robots.ox.ac.uk/~vgg/research/flowsam/


摘要

本文的研究目标是运动分割- -发现和分割视频中的运动物体。这是一个被广泛研究的领域,有许多细致的、有时是复杂的方法和训练方案,包括:自监督学习、从合成数据集学习、以对象为中心的表示、非模态表示等。我们在本文中的兴趣是确定Segment Anything模型( SAM )是否能够为这项任务做出贡献。我们研究了两种将SAM与光流相结合的模型,利用SAM的分割能力流发现和分组移动对象的能力。在第一个模型中,我们采用SAM将光流作为输入,而不是RGB作为输入。第二种,SAM以RGB作为输入,以flow作为分割提示。这些简单的方法在没有任何进一步修改的情况下,在单目标和多目标的基准测试中都比以前的方法有相当大的优势。我们还将这些帧级别的分割扩展到序列级别的分割,以保持对象的身份。再次,该简单模型在多个视频对象分割基准上优于先前的方法。
关键词:运动分割·视频对象分割·基于运动的对象发现

1 引言

近年来,图像分割的研究取得了革命性的进展,其中分割任何事物模型( SAM ) [ 12 ]是一个重大突破。利用大规模数据集和可扩展的自标记,SAM可以在许多场景中实现灵活的图像级分割,如方框、文本和点等用户提示。在视频中,光流在运动物体分割中发挥了重要而成功的作用- -它可以( i )发现运动物体,( ii )为分割提供清晰的边界,( iii )如果物体一起运动,将物体的部分聚集在一起。自监督学习[ 10、15、25、26、35、43、47]为众多的运动目标发现方法奠定了基础。

在这里插入图片描述
图1:通过结合流来适应SAM用于视频对象分割。( a ) Flow-as-Input:FlowI - SAM只接受光流并预测帧级分割掩模。( b ) Flow - as - Prompt:Flow P - SAM采用RGB并使用流信息作为帧级分割的提示。( c )序列级掩码关联:作为后处理步骤,多掩码选择模块对Flow I - SAM和/或Flow P - SAM输出的帧级掩码进行自回归变换,生成目标身份在整个序列中保持一致的序列级掩码。

为此,我们探索了两种截然不同但简单的变体,以有效地定制用于运动分割的SAM。首先,我们介绍了FlowI - SAM (图1a ),它是原始SAM的改编,直接将光流作为三通道输入图像进行分割,其中均匀网格上的点用作提示。该方法通过利用光流场中存在的清晰纹理和清晰边界,利用SAM在静态背景下准确分割运动物体的能力。然而,它在光流产生于多个相互作用的物体的场景中的成功较少,因为光流仅包含有限的信息用于分离它们。其次,基于SAM在RGB图像分割上的强大能力,我们提出了FlowP - SAM (图1b ),其中输入是RGB帧,Flow引导SAM进行移动对象分割,作为提示,由可训练的提示生成器产生。该方法有效地利用了SAM对RGB图像分割的能力,将流信息作为帧内运动物体/区域的选择器。此外,我们将这些方法从帧级别扩展到序列级别的视频分割(图1c ),使得对象身份在整个序列中保持一致。我们通过引入一个匹配模块来实现,该模块基于时间一致性自回归地选择是选择一个新对象还是传播旧对象。

总之,本文介绍并探索了两种模型来利用SAM进行视频中的运动对象分割,使主要的运动对象能够与背景运动进行区分。我们的贡献有三:

Flow I - SAM模型利用光流作为三通道输入图像,进行精确的每帧分割和运动目标识别。

FlowP - SAM模型是一种新颖的双流( RGB和Flow)数据的组合,它使用光流生成提示,引导SAM识别和定位RGB图像中的移动对象。

在包括DAVIS、YTVOS和MoCA在内的运动目标分割基准测试集上,在帧级和序列级都获得了大幅提升的最新性能。

2 相关工作

视频对象分割( Video Object Segmentation,VOS )是计算机视觉中一个被广泛研究的任务。目标是分割视频序列中的主要对象( s )。针对单目标[ 16、18、29、31]和多目标[ 33、46 ]两种场景,开发了大量的基准测试程序用于评估VOS的性能。在VOS研究中,有两种主要的协议被广泛研究,即无监督的[ 8、19 - 22、38、47、49]和半监督的VOS[ 2、6、11、13、14、27、30、39、40、50]。值得注意的是,"无监督"一词仅表明在推断时间(也就是说,没有推理时间监督)内没有使用真值标注。相比之下,半监督VOS使用第一帧的真值标注来启动后续帧的目标跟踪和掩码传播。本文聚焦于无监督的VOS任务,将运动作为目标发现的重要线索。

运动分割侧重于通过物体的运动来发现物体,并生成相应的分割掩膜。现有的运动分割基准与用于VOS评估的基准在很大程度上重叠,特别是在单目标情况下。对于多目标运动分割,数据集[ 43、44 ]已经从VOS基准测试中专门提取出来,专门针对具有主导运动的序列。在运动分割文献中有两种主要的设置:一种是仅依靠运动信息,通过空间聚类[ 25、26、47 ]或显式监督[ 15、43 ]将运动元素从背景中区分出来;另一种[ 1、10、24、32、44、48]通过融入外观信息来增强基于运动的物体发现。我们将这两种方法分别称为" flow-only “和” RGB-based "分割,并在本文中对这两种方法进行了探索。

分割任何事物模型( Segment Anything Model,SAM ) [ 12 ]已经在不同的场景中展示了出色的图像分割能力。它在SA - 1B数据集上进行了训练,该数据集包含超过10亿张自标记掩码和1100万张图像。如此大规模的训练使其对未知领域具有很强的零样本泛化能力。许多工作采用SAM模型来执行不同的任务,例如跟踪[ 7 ],变化检测[ 56 ]和三维分割[ 3 ]。还有一些工作将SAM扩展到更快[ 58 ],更有效的模型[ 45、51、55 ],或者更多的域[ 4、23、34、42 ]。我们的工作通过使用光流输入和流提示,将健壮的SAM框架扩展到移动对象分割中。
在这里插入图片描述

图2:FlowI - SAM概述。( a ) FlowI - SAM的推理流水线。( b )带可训练参数标记的FlowI - SAM体系结构。点提示令牌由冻结的提示编码器生成。

3 SAM Preliminaries

分割任何事物模型( Segment Anything Model,SAM )被设计用于高精度的图像分割,既可以容纳用户指定的提示,也可以容纳完全自主的操作模式。在用户输入的引导下,SAM接受各种形式的提示,包括点、框、面具或文字描述,以准确地勾画分割目标。或者,在其自动模式下,SAM使用均匀网格上的点作为提示,提出所有可能的分割掩码,以捕获对象及其层次细分-对象、部分和子部分。在这种情况下,对网格的每个提示重复推断,依次为每个提示生成掩码,最终的掩码选择由预测的掩码IoU得分指导。

在结构上,SAM由三个基本组件支撑:( i )图像编码器通过由掩蔽自动编码器( MAE )方法预训练的视觉变换( ViT )主干提取强图像特征;( ii )提示编码器将输入的提示转换成位置信息,有助于分割目标的定位;( iii ) Mask解码器具有一个轻量级的双向转换器,它将编码的提示令牌,可学习的掩码令牌和IoU预测令牌的组合作为输入查询。这些查询迭代地与来自图像编码器的稠密空间特征进行交互,从而得到最终的掩码预测和IoU估计。在下一节中,我们描述了两种不同但简单的变体,以有效地定制SAM用于运动分割。

4 帧级分割Ⅰ:以流作为输入

在这一部分中,我们专注于通过仅利用运动信息从单个帧中发现运动对象,以产生相应的分割掩码。
形式上,给定t帧的光流输入在这里插入图片描述
我们旨在对每个对象i,预测一个分割掩码在这里插入图片描述
和一个前景对象IoU ( fIoU )得分在这里插入图片描述
在这里插入图片描述
为了适应这种新的任务,我们通过对光流输入进行微调,形成了Flow I-SAM ( ΦFlow I-SAM ),并重新使用原来的IoU预测头来代替预测fIoU,如图2b所示。

具有多个帧间隙的流输入。为了减轻噪声光流的影响,即由于静止部件、铰接运动和物体相互作用等引起的复杂流场,我们在训练和评估阶段都考虑了多个具有不同帧间隙的流输入{ Ft,g } ( (例如, g∈{ ( 1 , - 1),( 2、- 2 ) } )。这些多间隙流量输入由图像编码器独立处理,以获得较低分辨率h × w下的稠密空间特征{ dt,g },然后通过平均跨不同流量间隙的空间特征图进行组合,即dt = Averageg( { dt , g })∈Rh × w × d。

**FlowI - Sam推理。**为了从流输入中发现所有的移动对象,Flow I - SAM模型由均匀网格上的点来提示。每个点提示输出一对掩码和客观性分数预测。该机理与原始SAM公式相同,如图2a所示。根据预测的fIoU和重叠率,使用非极大值抑制( NMS )选择最终的分割结果。

Flowi - Sam训练。为了使预训练的SAM模型适应光流输入,我们对轻量级掩膜解码器进行了微调,而图像编码器和提示编码器保持冻结。总损失为:

在这里插入图片描述
式中:( 在这里插入图片描述
和( sifIoU
,表示地物分割掩膜和fIoU,λf为尺度因子。

5 帧级分割Ⅱ:以流为提示

在这一部分中,我们通过处理RGB帧,以光流作为提示,将SAM适应于视频对象分割。我们将这种帧级分割架构Flow P-SAM for Flow称为Prompt SAM。如图3b所示,Flow P - SAM包含两个主要模块,即流提示生成器和分割模块。流提示生成器以光流为输入,生成可作为补充查询的流提示,从RGB输入
中推断帧级分割掩膜Mit

在这里插入图片描述

其中
在这里插入图片描述
表示流提示生成器预测的移动对象得分( MOS ),而在这里插入图片描述
表示分割模块估计的前景对象IoU ( fIoU )。具体来说,MOS指定输入点提示是属于移动对象( siMOS ,
, t = 1)还是属于静止区域( siMOS , t
= 0)。另一方面,fIoU也遵循同样的公式在FlowI - SAM中,即对前景对象预测IoU,对背景区域产生0。

在这里插入图片描述

图3:Flow P - SAM概述。( a ) Flow P - SAM的推理管道。( b ) Flow P - SAM的体系结构。流提示生成器产生流提示,将其注入到一个类似SAM的基于RGB的分割模块中。两个模块采用相同的点提示令牌,该令牌由一个冻结的提示编码器获得。( c )流量变送器的详细架构。输入令牌在一个轻量级Transformer解码器中充当查询功能,迭代地关注密集流特征。然后,输出的移动对象得分( MOS )令牌被基于MLP的头部处理,以预测得分,表明输入点提示是否对应移动对象。

Flow Prompt Generator由( i )一个冻结的SAM图像编码器组成,该编码器从不同帧间隙的光流输入中提取稠密的空间特征,然后进行跨帧间隙的平均;( ii )一个流转换器,其详细结构如图3c所示,在这里,我们首先将输入点提示(即,一个位置嵌入)与可学习的流提示和移动对象得分( MOS )令牌串接以形成查询。这些查询是在一个轻量级转换器解码器中处理密集流特征的。流提示生成器有两个输出,即精化的流提示和MOS令牌,然后由基于MLP的头部处理以产生最终的移动对象得分。

分割模块。分割模块的整体结构与原始SAM相似,但有两点改进:( i )将IoU预测头重新用于预测前景对象分数( fIoU ) (与FlowI - SAM相同);( ii )流提示生成器的输出令牌被注入作为额外的查询输入。

Flowp - Sam推论。与FlowI - SAM类似,我们使用单点提示从均匀网格中提示FlowP - SAM来迭代地预测可能的分割掩膜,以及MOS和fIoU估计。将这些预测得分进行平均,即( siMOS , tsifIoU , t) / 2,然后用于指导后处理,包括NMS和所选面具的叠加。

Flowp - Sam训练。我们以端到端的方式训练FlowP - SAM,同时保持SAM预训练的提示编码器和图像编码器冻结。流转换器从头开始训练,分割模块中的掩码解码器在预训练的SAM之上进行微调。总体损失为:
在这里插入图片描述
其中,( 在这里插入图片描述
对应真实掩码,( 在这里插入图片描述

tand ( sifIoU,t
表示两个预测得分的真实掩码,λm和λf为尺度因子。

6 序列级掩膜关联

在这一部分,我们概述了我们的方法,将每个移动对象的帧级预测链接到整个序列的连续轨迹中。具体来说,我们使用模型( FlowI - SAM和/或FlowP - SAM)计算两种类型的掩码:当前帧的逐帧掩码M;而序列级的掩码M,是通过光流传播初始帧预测得到的,然后通过两者的比较来更新当前帧的掩码。接下来的部分详细介绍了我们的更新机制。

更新机制。该过程旨在关联跨帧的目标掩码,以及确定特定帧的序列级结果应该直接从该帧的帧级预测中获得,还是通过从前一帧结果中传播获得。
具体来说,给定物体i在帧t - 1(即Mit - 1
)处的序列级掩码,我们首先使用光流将其扭曲到帧t。
在这里插入图片描述
然后我们考虑了三组掩模:( i )扭曲掩模{ Mit←t-1 }
;( ii )第t帧的帧级预测{ Mit }
;( iii )使用光流(即,
)将相邻帧对齐到当前帧后,从相邻帧(带T型间隔)进行帧级预测。对于每一对掩码集,我们根据IoU得分进行两两匈牙利匹配,总共产生三个配对。然后,匈牙利匹配对可以根据传递性原则反映这些预测之间的时间一致性,即如果( i )中的对象i与( ii )中的对象j和( iii )中的对象k匹配,那么后两个对象也必须相互匹配。如果这样的传递性成立,我们设定一致性分数ci = 1,否则ci = 0。

对∆t∈{ 1,2,-1,-2 }重复该匹配过程,得到平均一致性分数¯ci,指导下一步掩码更新:
在这里插入图片描述
式中:Mit
表示第t帧目标i的序列级掩码预测。

这背后的原理是这两种方法有各自的优点和缺点:传播在保存对象身份方面是安全的,但掩码质量会随着时间的推移而下降,而更新保证了高质量的掩码,但同时也存在对象身份错误关联的风险。因此,如果当前帧的掩码是时间一致的,那么我们可以合理地自信地更新掩码,如果不是,那么我们选择更安全的选项并传播上一个掩码。

值得注意的是,我们对每个对象i∈N分别进行这样的操作,因此每个对象独立地得到更新或传播。最后,我们将所有的对象层回到(对其原始秩序),并去除任何重叠,以获得最终的序列级预测。

7 实验

7.1 数据集

**单对象基准。**对于单目标运动分割,我们采用标准数据集,包括DAVIS2016 [ 31 ]、Seg Trackv2 [ 18 ]、FBMS - 59 [ 28 ]和Mo CA [ 16 ]。虽然SegTrackv2和FBMS - 59包含了少量的多目标序列,但是按照[ 15、47 ]的通用做法,我们将所有的运动目标分组到一个前景掩码中,作为单目标的基准。MoCA代表移动伪装动物,被设计为伪装目标检测基准。在[ 15、43、47 ]之后,我们采用了过滤后的MoCA数据集,通过排除主要没有运动的视频。
多对象基准测试。在多目标分割方面,我们报告了在DAVIS2017 [ 33 ],DAVIS2017 - motion[ 33、43 ]和YouTube - VOS2018 - motion[ 44、46 ]上的性能,其中DAVIS2017的特点是主要移动对象,每个对象都被注释为不同的实体。例如,骑马的人会被单独标注。相比之下,DAVIS2017 - motion根据物体的关节运动重新标注物体,使得具有共享运动的物体被标注为单个实体。例如,骑马的人由于他们共享的运动而被注释为单个实体。
YouTubeVOS2018-motion [ 44 ]数据集是原始YouTubeVOS2018 [ 46 ]的curated子集。它特别排除了涉及普通运动、严重部分运动和静止物体的视频序列,使其非常适合用于运动分割评估。然而,原始的数据集也标注了许多静止的物体,并且只为移动物体的子集提供了部分标注。

评价数据集汇总。为了研究运动在目标发现和分割中的作用,我们采用了上述所有的基准,这些基准只包含以运动为主的目标序列。值得注意的是,对于FlowI - SAM的评估,我们排除了类别标记的DAVIS2017数据集,因为通常的移动对象不能仅仅基于运动线索进行分离。

训练数据集。为了适应RGB预训练的SAM用于移动对象发现和运动分割,我们在由[ 43 ]介绍的合成数据集上训练了FlowI - SAM和FlowP - SAM首次运动对象分割如下面所述,然后在真实世界的视频数据集上,包括DAVIS2016,DAVIS2017和DAVIS2017 - motion。

7.2 评价指标

为了评估预测掩码的准确性,我们报告了交并比( J ),除了MoCA只给出了真实边界框,我们转而遵循文献[ 47 ]并报告了检测成功率( SR )。对于多目标基准,我们在附录D中额外报告了轮廓精度( F )。

在这项工作中,我们区分了帧级和序列级的方法,并采用了两种不同的评估协议:( i )由于帧级方法为每一帧独立地生成分割,我们在评估之前应用每一帧匈牙利匹配来匹配预测与背景之间的目标掩码;( ii )相反,序列级方法使用额外的步骤来连接跨帧的对象掩码。因此,对每个序列进行全局的Hungarian匹配,即在每个序列中预测和真实掩码之间的对象ID匹配一次。考虑到在逐帧对象关联过程中增加的复杂性和潜在的错误,序列级别的预测往往被认为是一个更大的挑战。

7 .3 实施细节

在这一部分中,我们总结了我们在帧级分割模型中的实验设置。有关详细的体系结构、超参数设置和序列级掩码关联的详细信息,请参阅Ap - pendix A。
流量计算。我们采用了一种现成的方法( RAFT [ 37 ] )来估计( 1、- 1 )和( 2、- 2 )处的多个帧间隔的光流,除了YTVOS18 - m和FBMS - 59外,( 3、- 3 )和( 6、- 6 )处的较高帧间隔用于补偿慢速运动。

模型设置。对于FlowI - SAM和FlowP - SAM,我们都遵循默认的SAM设置,并采用第一个输出掩码令牌(四分之一)进行掩码预测。对于FlowI - SAM,我们部署了两个版本的预训练的SAM图像编码器,具体为ViT - B和ViT - H,用于提取光流特征。对于FlowP - SAM,出于效率的考虑,我们使用ViT - B来编码光流,并使用ViT - H作为RGB帧的图像编码器。我们使用4个可学习的流提示令牌初始化流提示生成器,随后在流变压器模块中使用一个轻量级的双层变压器解码器进行处理。

评价设置。在推理时,对于仅有流输入的FlowI - SAM,我们在10 × 10的均匀网格上输入独立点提示,而对于FlowP - SAM,为了考虑更复杂的RGB纹理,我们孔西代拉的大网格大小为20 × 20。

多点提示的掩码选择。在后处理中,我们使用预测分数( Flow I - SAM的f Io U , Flow P - SAM的MOS和f Io U的平均值)作为整个掩码选择过程的指导:( i )使用非极大值抑制( NMS )过滤掉重复掩码,保留得分较高的掩码;( ii )根据得分对剩余的掩码进行排序,保留排名前n的掩码( Flow I - SAM的n = 5 , Flow P - SAM的n = 10);( iii )通过在前面分配得分较高的掩码来叠加这n个掩码。

训练设置。训练分两个阶段进行,首先对文献[ 43 ]提出的数据集进行综合预训练,然后对真实的DAVIS序列进行微调,详见附录A.1。由于YTVOS中运动目标序列所占比例较低,因此不用于微调。我们使用Adam Optimiser以3e - 5的学习速率对两个模型进行端到端的训练。训练在单个NVIDIA A40GPU上进行,每个模式大约需要3天才能达到完全收敛。

7.4 消融实验

我们对每帧FlowI - SAM和FlowP - SAM模型中的关键设计以及我们的序列级方法进行了一系列的消融研究。为了更详细的消融分析,我们将读者参见附录B。
在这里插入图片描述
表1:光流输入到FlowI - SAM的帧间隔。采用SAM ViT - H图像编码器。图中给出了帧级预测的结果

在这里插入图片描述
表2:FlowI - SAM中稠密流特征的组合。采用SAMViT - H图像编码器。图中给出了帧级预测的结果

Flowp - Sam的消融研究。如表3所示,我们从香草SAM开始,逐步添加我们提出的组件。值得注意的是,我们对所有显示的预测都采用相同的推断流水线(即,相同的点提示和后处理步骤)。由于前景物体IoU ( f IoU )不被香草SAM预测,我们转而应用默认的IoU预测来指导掩码选择。

我们训练流提示生成器来同时预测流提示令牌和移动对象得分( MOS )。在标准的基于RGB的SAM架构中注入流提示,得到了显著的增强,验证了运动信息对于准确确定物体位置和形状的价值。此外,使用MOS作为额外的后处理指导可以得到进一步的改进。

在对分割模块进行微调后,我们观察到性能略有增强。最后,将默认的IoU预测结果替换为fIoU分数,可以实现更精确的掩码选择,改进的结果证明了这一点。

在这里插入图片描述

表3:Flow P - SAM的消融分析。研究从香草SAM检查点开始,逐步引入新的成分(用蓝色标记) '。MOS ‘表示移动对象得分,’ fIoU '表示前景对象IoU。结果显示为帧级别的预测结果。

7.5 定量结果

考虑到Sec.7 . 2中列出的不同评估协议,我们分别报告了我们的方法,对Flow I - SAM(在第4节中介绍)和Flow P - SAM(在第5节中介绍)进行了帧级别的分析,然后进行了序列级别的评估。

帧级性能。表4区分了基于流和基于RGB的方法,其中前者采用光流作为唯一的输入模态,后者采用可选流输入的RGB帧。值得注意的是,由于缺乏有监督的基线,一些最近的自监督方法的性能也被报道。在flow - only分割方面,我们的FlowI - SAM(用两个SAM图象编码器)比之前的方法有更大的提升( > 10 % )。在基于RGB的分割中,我们的FlowP - SAM也取得了最先进的性能,特别是在多目标基准测试中表现优异。通过结合这两个帧级预测( Flow I-SAM Flow P-SAM),我们观察到了进一步的性能提升。这表明了在帧级分割中,流和RGB模态的互补作用,特别是当存在涉及多个移动对象。特别地,我们展示了将Flow I - SAM的预测结果与Flow P - SAM的预测结果进行分层,并将两个模型串联使用,使得模型可以填补遗漏的预测结果(如运动模糊、光照不良、或小物体等)。

序列级性能。对于基于流的分割,我们采用Sec.6中介绍的掩码关联技术,从每帧Flow I - SAM结果中获得序列级别的预测。为了保证比较的公平性,我们额外在真实世界数据集( DAVIS )上对合成训练的OCLR [ 43 ]模型进行微调,并提供了真实的标注,从而得到" OCLR-real "的结果。如表5的顶部所示,FlowI-SAM ( seq )显示出优于OCLR - real的性能,这得益于预训练SAM中稳健的先验知识。

对于基于RGB的分割,我们通过Flow I-SAM Flow P - SAM获得序列级别的预测。从表5的下半部分可以看出,我们的方法在单目标和多目标上都取得了出色的表现。

7 .定性可视化

在这一部分中,我们提供了多个数据集的示例可视化,其中我们主要呈现了序列级的结果,因为它们与帧级预测的边际差异。在附录E中可以找到更多不同评估数据集的可视化。

图4说明了仅基于光流输入的分割预测。与OCLR - real相比,我们的FlowI - SAM可以准确地从噪声背景中识别和分离出运动物体(例如,第一列的人和第四列的鸭子),并从光流中提取出精细结构(例如,第五列中的伪装昆虫)。

图5进一步提供了基于RGB的方法的可视化,其中以前的工作( Xie等 SAM )有时不能( i )识别移动对象(例如,第5列中"豹子不见了");( ii )区分多个物体(例如,第二列和第四列中的纠缠对象分割),而我们的FlowI - SAM FlowP-SAM ( seq )结合了基于RGB的预测和流提示,从而实现了移动物体的准确定位和分割。
在这里插入图片描述

图5:基于RGB的分割方法在DAVIS (左),YTVOS (中)和SegTrackv2 (右)上的定性比较。之前的方法(第三排)致力于解开多个移动对象,而我们的FlowP - SAM FlowI-SAM ( seq )准确地分离和分割了所有的移动对象。

8 结论

在本文中,我们关注于现实世界视频中的运动对象分割,通过将每帧SAM与运动信息(光流)结合,以两种方式进行:( i )对于只包含光流的分割,我们引入了直接以光流作为输入的FlowI - SAM;( ii )对于基于RGB的分割,我们利用运动信息来生成流提示作为指导。这两种方法在单目标和多目标基准测试中都提供了帧级分割的最先进的性能。此外,我们开发了一种逐帧关联的方法,将FlowI - SAM和FlowP - SAM的预测结果进行融合,实现了序列级别的分割预测,在DAVIS,YTVOS和MoCA基准上优于所有先前的方法。
这项工作的主要限制是其延长的运行时间,这归因于香草SAM中计算繁重的图像编码器。然而,我们的方法一般适用于其他基于提示的分割模型。随着更有效的SAM版本的出现,我们预计推理时间将显著减少。

致谢

本研究得到了英国EPSRC CDT in AIMS ( EP / S024050 / 1 )、克拉朗东奖学金和英国EPSRC Program Grant Visual AI ( EP / T028572 / 1 )的支持

附录

本文的附录包括以下几个部分:( i )在附录A中,我们提供了关于建筑设计和实验设置的实现细节;( ii )在附录B中,我们对帧级和序列级分割进行了全面的消融研究;( iii )在附录C(将运动分割与运动引导分割相结合)中,我们结合一些实例讨论了将Flow I - SAM和Flow P - SAM的结果合并为单一预测的合理性;( iv )在附录D中,提供了额外的定量比较;( 5 )在附录E中,讨论了可视化和失败案例。

A 实施细节
在这一部分,我们总结了我们模型中的实验设置,包括超参数选择,架构细节和训练数据集,并分别讨论了帧级和序列级分割的详细设置。正式代码将在验收后发布。
A.1帧级分割

训练和评估数据集。对于FlowI - SAM和FlowP - SAM,都有两个主要的训练阶段:在[ 43 ]提出的模拟数据集上进行合成预训练,然后在真实的DAVIS序列上进行微调。这两个数据集由于其训练序列中主要是移动对象而被采用。在表6中列出了训练数据集和相应的评估基准的更详细的总结。为了评估,除了DAVIS验证序列外,我们在YTVOS18 - m、STv2、FBMS和MoCA数据集上评估了零样本性能。值得注意的是,由于STv2和FBMS中偶尔会出现多目标序列,我们对在多目标DAVIS序列上训练的模型进行了评估。
在这里插入图片描述

表6:训练数据集和相应的评估基准。斜体数据集表示评估过程中的零样本泛化。
结构细节。对于FlowI - SAM,我们保留了原始SAM的结构,并直接使用光流输入对其进行微调。对于Flow P-SAM,如正文所述,引入一个新的流提示生成器,算法1给出了具体实现。

在这里插入图片描述
超参数设置。对于输入的分辨率,我们按照默认的SAM设置进行填充,并将图像大小调整为1024 × 1024。经过冻结的SAM编码器后,得到的密集空间特征尺寸为64 × 64,特征维度为256。在FlowI - SAM的训练过程中,对于fIoU损失,我们采用了一个损失因子λ f = 0.01。对于FlowP - SAM,我们将两个损耗因子都设置为( λ f为IoU损耗, λ f为MOS损耗) ~ 0.01。

A.2序列级关联
在这一部分,我们提出了用于序列级关联的代码片段(算法2 )。我们将在出版时公布完整的代码。

B 消融实验
B.1 框架级分割:FlowI - Sam

光流估计方法。为了保证比较的公平性,我们遵循先验工作[ 43、47 ],采用RAFT [ 37 ]作为流量估计方法。

在这里插入图片描述
Table 7 演示了输入流质量如何影响分割结果,这也验证了我们默认选择的RAFT进行流估计。
在这里插入图片描述

表7:光流方法的比较。采用帧级FlowI-SAM对结果进行预测,其中采用SAM ViT-H图像编码器对具有帧间隙{1,-1,2,-2}的光流进行编码。我们采用RAFT作为默认的光流估计方法。

B.2 帧级分割:FlowP-SAM

与SAM比较[12]。由于vanilla SAM没有被训练来显式地识别移动的前景对象,为了进行公平的比较,我们考虑通过指定具有其地面实况质心的对象作为点提示输入的替代设置。我们将此设置应用于SAM和FlowP-SAM,性能总结见表8。
值得注意的是,原始SAM公式采用四个掩码标记来生成不同语义级别的掩码,包括默认、子部分、部分和整体。对于对象级分割,我们检查了第1个(默认)和第4个(整体)输出掩码通道的性能。根据表8,虽然第4个输出通道在SAM中显示出上级性能,但我们观察到FlowP-SAM的相反趋势,其中第1个掩码令牌产生更好的结果。因此,我们采用第一个输出掩码标记作为默认设置。

Transformer解码器层数。我们进一步研究了流提示生成器(FlowP-SAM)中Transformer解码器层数量的影响。从表10可以看出,将层数从2(默认)增加到4不会导致明显的性能变化。与FlowI SAM+SAM的比较[12]。移动对象分割的另一种方法是应用SAM来细化FlowI-SAM的流量预测掩码。然而,这种两阶段方法阻止了RGB和流量信息之间的相互作用,导致与端到端FlowP SAM相比性能较差,如表9所示。

Transformer解码器层数。我们进一步研究了流提示生成器(FlowP-SAM)中Transformer解码器层数量的影响。从表10可以看出,将层数从2(默认)增加到4不会导致明显的性能变化。

B.3 序列级掩码关联

在本节中,我们对我们的序列级掩码关联模块进行消融研究。我们显示了对构成我们的方法的两个基线的比较:(i)仅传播先前的掩码,以及(ii)仅在过去和现在的掩码之间进行匈牙利匹配。我们还进行消融,以显示性能增益平均的置信度得分在不同的相邻帧相比,挑选一个相邻帧。其结果如表11所示。
在这里插入图片描述
表8:当每个地面实况对象掩模的质心被提供为点提示时的定量比较。SAM和FlowP-SAM均按照此设置进行评估。结果显示为帧级预测,我们的默认FlowP-SAM使用第一个掩码令牌。

在这里插入图片描述
表9:与两阶段方法的比较。结果显示为帧级预测。

在这里插入图片描述
表10:FlowP-SAM中流量提示生成器的Transformer解码器中的层数。结果显示为帧级预测,默认情况下,我们采用2个Transformer解码器层。

我们观察到:(i)仅匈牙利匹配就为基于RGB的跟踪(使用FlowP SAM+FlowI SAM)提供了强有力的基线,其中帧级预测基本一致;(ii)然而,在仅流的情况下(使用FlowI SAM),对象身份可能会消失,匈牙利匹配很容易失去对对象的跟踪。这个丢失轨迹的问题可以使用我们的时间一致性方法来解决,其中选择传播适当的掩码有助于保持对象的持久性。我们观察到,纯流方法(使用FlowI SAM)从中受益匪浅。我们进一步假设,使用更多的帧可能会有更大的帮助,但这将涉及计算新的光流,而我们目前只使用那些已经用作FlowI SAM和/或FlowP-SAM输入的光流。

在这里插入图片描述

表11:序列水平掩码关联的消融研究。对于基于RGB的分割,通过FlowP-SAM + FlowI-SAM(ViT-H)预测逐帧掩码,对于仅流分割,通过FlowI-SAM(ViT-H)预测逐帧掩码,其中不同的方法用于序列级掩码关联。

C 结合运动分割和运动引导分割

在主要的文件中,我们已经定量地表明,结合FlowI-SAM和FlowP-SAM的结果简单地分层后,前者产生更好的结果。在这里,我们讨论了为什么会出现这种情况,并提供了可视化的例子。

我们观察到,FlowP-SAM(和其他基于RGB的方法)的主要故障模式之一是,由于外观不佳,如遮挡,伪装,运动模糊,小物体尺寸或恶劣的照明条件,模型完全无法识别物体。在这些情况下,FlowI-SAM(和其他仅流的方法)闪耀,因为它们对外观和对象是不可知的。

在这种情况下,在基于RGB的分割掩模后面分层运动分割掩模是非常简单和明智的解决方案。具体来说,我们将FlowI-SAM预测与FlowP-SAM预测相连接,然后删除任何重叠。这样,两个模型预测的区域将始终属于FlowP-SAM。

我们在图6中展示了这种方法的有效性。在每个示例情况下,来自FlowP-SAM的预测掩模错过了对象,而来自FlowI-SAM的预测掩模将所有移动对象分组为单个对象。我们表明,分层这两个掩码在一起,允许从FlowI-SAM预测,“填补”FlowP-SAM未能预测的差距。值得注意的是,对象标识也被正确地分离。这是因为FlowI-SAM在后面分层,不会过度分割已经被FlowP-SAM分割的区域。

在这里插入图片描述

图6:组合FlowI-SAM和FlowP-SAM。该示例示出了通过在FlowP-SAM之后分层FlowI-SAM的预测来组合两个预测,允许恢复由于小对象(左)、遮挡(中)和运动模糊(右)而未被FlowP-SAM检测到的丢失对象。请注意,这两个模型都做出了错误的预测。

D 定量结果

对于多对象分割,我们报告了IoU(J)和轮廓精度(F)的性能,表12和表13分别比较了帧级和序列级方法。

E 定性结果及失败案例

我们的序列级分割结果在各种数据集上提供了额外的可视化,包括DAVIS17 (图7 ),YTVOS18-m (图8 ),MoCA (图9 ),STv2 (图10 )和FBMS (图11 )。值得注意的是,我们采用Flowi - Sam ( Seq )作为Flow - Only方法,而Flowp - Sam Flowi-Sam ( Seq )用于基于Rgb的分割。
失败案例。对于FlowI - SAM,一个常见的故障案例与无信息的光流输入有关。例如,在图8的第三个序列和图11的第二个序列中,(部分)静止物体没有被运动场捕获,因此导致在最终的纯流分割中丢失物体/部分。
本工作的另一个局限性是序列关联在某些情况下失效,如图12所示。这里遮挡较长( 10帧),模型已经失去了对物体的跟踪。这确实可以通过在时间一致性中赋予更长的时间上下文来改善,尽管我们的方法确实提供了一个强大的基线。

在这里插入图片描述
图7:DAVIS序列的定性可视化。我们展示了序列级的Pre - Dictions,Flowi-Sam ( Seq )和Flowp - Sam Flowi-Sam ( Seq )分别是我们的flow - Only和Rgb - Based方法。我们的flow - only方法基于带噪声的光流输入(例如,左下方有3头猪)正确地识别了多个运动物体,而我们的基于RGB的方法产生了更准确的分割掩码。
在这里插入图片描述
图8:YTVOS序列的定性可视化。最后一个序列提供了一个部分运动的例子,其中只流分割不能恢复整个对象掩码

在这里插入图片描述

图9:MoCA序列的定性可视化。基于流的方法和基于RGB的方法(用流提示)都能够利用运动信息来发现被伪装的物体。

在这里插入图片描述

图10:STv2序列的定性可视化。在对象运动占主导地位的(因此,光流场是洁净的)情况下,基于flow - only和基于RGB的方法都产生了精确的分割掩码。

在这里插入图片描述

图11:FBMS序列的定性可视化。如第二个序列(即,长颈鹿)所示,flow - only方法不能发现偶尔静止的物体(小长颈鹿),而基于RGB的方法能够正确识别这两个前景长颈鹿。

在这里插入图片描述

图12:一个失败的案例。这个例子序列来自于FBMS。为了更清楚地演示,封堵器(一匹马的脚)用红框标示,物体ID的错误匹配用不同颜色的物体掩模(橙色和绿色)标示。

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

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

相关文章

01 - 计算机组成原理与体系结构

文章目录 一,计算机系统硬件基本组成硬件软件 二,CPU的功能与组成功能组成运算器控制器 三,数据表示计算机的基本单位进制转换原码,反码,补码,移码数值表示范围浮点数表示 四,寻址五&#xff0c…

【Unity模型】古代亚洲建筑

在Unity Asset Store上,一款名为"Ancient Asian Buildings Pack"(古代亚洲建筑包)的3D模型资源包,为广大开发者和设计师提供了一个将古代亚洲建筑风格融入Unity项目的机会。本文将详细介绍这款资源包的特点、使用方式以…

如何选择合适的自动化测试工具!

选择合适的自动化测试工具是一个涉及多方面因素的决策过程。以下是一些关键步骤和考虑因素,帮助您做出明智的选择: 一、明确测试需求和目标 测试范围:确定需要自动化的测试类型(如单元测试、集成测试、UI测试等)和测试…

AI视频实战教程:DiffIR2VR-Zero-模糊视频8K高清修复技术

〔探索AI的无限可能,微信关注“AIGCmagic”公众号,让AIGC科技点亮生活〕 本文作者:AIGCmagic社区 猫先生 一、简 介 DiffIR2VR-Zero:一种创新的零样本视频恢复技术,该技术利用预训练的图像恢复模型,解决…

C++高性能通信:图形简述高性能中间件Iceoryx

文章目录 1. 概述2. 支持一个发布者多个订阅者2.2 Iceoryx为何不支持多个发布者发布到同一个主题 3. Iceoryx的架构和数据传输示意图3.1 发布者与订阅者的通信机制3.2 零拷贝共享内存通信机制 4. 使用事件驱动机制4.1 WaitSet机制4.2 Listener机制 5. 已知限制6. 参考 1. 概述 …

sci-hub下载不了的文献去哪里获取全文

我们在查找外文文献时经常会用到sci-hub,但sci-hub也有没有收录的文献,遇到这种情况我们可以用另一个途径来获取该文献。 例如这篇Wiley数据库中的文献:Unveiling Gating Behavior in Piezoionic Effect: toward Neuromimetic Tactile Sensin…

Linux服务管理(四)Apache服务

Apache服务 1、基于IP的虚拟主机2、基于IP端口的虚拟主机3、基于域名的虚拟主机4、prefork模式5、worker模式6、event模式7、细说驱动工作模式和MPM(多处理模块)工作模式 新旧域名都保留,因为旧域名已有一定的知名度和流量,直接下…

Cocos Creator2D游戏开发(8)-飞机大战(6)-炸机

碰撞 飞机与飞机碰撞 子弹与飞机碰撞 ① 设置碰撞矩阵 设置碰撞矩阵,就是设置谁跟谁碰撞(添加Enemy,PlayerBullet,Player) ②设置刚体和碰撞体 两个预制体设置(Enemy和PlayerBullet) 注意点: 1. 都在预制体节点上,不在图片上; 2.碰撞体Collider2D中的Editing悬着好之后可以调整…

C#-读取测序数据的ABI文件并绘制svg格式峰图-施工中

本地环境:win10,visual studio 2022 community 目录 前言问题描述解决思路实现效果 前言 本文是在已有的代码基础上进行的开发,前期已经实现: ABI文件的解析峰图的简单绘制svg绘图 对于1,主要用到之前重写的struct包…

大模型面经之bert和gpt区别

BERT和GPT是自然语言处理(NLP)领域中的两种重要预训练语言模型,它们在多个方面存在显著的区别。以下是对BERT和GPT区别的详细分析。 一、模型基础与架构 BERT: 全称:Bidirectional Encoder Representations from Trans…

系统移植(九)Linux内核移植(未整理)

文章目录 一、概念二、在linux内核源码的arch/arm/configs目录下生成FSMP1A板子对应的默认配置文件三、将自己编写的驱动通过图形化界面的方式编译到内核的镜像文件uImage中(一)拷贝myled.c和myled.h文件到linux内核源码的drivers/char目录下&#xff08…

第15周 15.1 Zookeeper简介安装及基础使用

1. Zookeeper介绍 1.1 介绍 1.2 应用场景简介 1.3 zookeeper工作原理 1.4 zookeeper特点

Canva收购Leonardo.ai,增强生成式AI技术能力

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

MyBatis-Plus自动生成代码

目录 前言一. 什么是 MyBatis-Plus1. Mybatis-Plus 的特点2. Mybatis-Plus 结构二. MyBatis-Plus 自动生成步骤1. 数据库准备2. 环境准备(1) 创建一个空的 Spring Boot 工程(2) 导入pom依赖(3) 编辑application.yml文件(4) 在启动类加入 @MapperScan 注解3. 配置代码4. 运行三.…

Hutool SoapClient 调用使用@webservice 发布的webService接口,参数传递为空

一.发布webService接口 (1)接口声明 import javax.jws.WebService;WebService public interface Calculator {String add(String a, String b);int multi(int a, int b);}(2)实现方法 import com.maxnerva.cloud.webservice.ser…

初始mybatis

一、J D B C 编程和 ORM 模 型 1.JDBC回顾 加载驱动 :导入JDBC 连接数据库的 jar包,利用CLASS.forName 加载驱动; 获取连接 : 利用 DriverManager 获取 Connection,然后创建 Statement ; 执行SQL语句 &…

算法刷题day20|回溯:39. 组合总和、40. 组合总和 II、131. 分割回文串

39. 组合总和 回溯 class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& candidates, int target, int sum, int startIndex) {if (sum > target) {return;}if (sum target) {result.push…

valideer,一个超强的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个超强的 Python 库 - valideer。 Github地址&#xff1a;https://github.com/podio/valideer 在开发应用程序时&#xff0c;数据验证是一个至关重要的环节。它确保了输入数…

【SpringBoot】5 Swagger

官网 https://swagger.io/ 介绍 Swagger 是一套基于 OpenAPI 规范构建的开源工具&#xff0c;可以帮助开发者实现设计、构建、记录、使用 Rest API。 Swagger 是一款根据 Restful 风格生成的接口开发文档&#xff0c;并且支持做测试的一款中间软件。 Swagger主要包括三部分&…

jfif怎么改成jpg?分享给大家三个小技巧!

在数字时代&#xff0c;图片是我们日常生活和工作中不可或缺的一部分。然而&#xff0c;在处理图片时&#xff0c;我们可能会遇到各种格式的问题&#xff0c;比如JFIF格式的图片在某些平台上无法直接打开或编辑。别担心&#xff0c;今天我就给大家分享三个简单实用的小技巧&…