SAM 2: Segment Anything in Images and Videos(论文翻译)
本翻译来自SAM 2: Segment Anything in Images and Videos
下载地址:https://arxiv.org/pdf/2408.00714v2
摘要
我们提出了“Segment Anything Model 2”(SAM 2),这是一种基础模型,旨在解决图像和视频中的可提示视觉分割问题。我们构建了一个数据引擎,过用户交互改进模型和数据,以收集迄今为止最大的视频分割数据集。我们的模型采用带有流式内存的简单变换器架构,适用于实时视频处理。使用我进行训练的SAM 2在广泛的任务中表现出色。在视频分割方面,我们观察到比先前方法更高的准确性,同时所需的交互次数减少了 倍。在图像分割方的模型比“Segment Anything Model”(SAM)更准确,速度快了 倍。我们相信,我们的数据、模型和见解将成为视频分割和相关感知任务的重要里程正在发布我们模型的版本、数据集和交互式演示。
1 引言
我们提出了“Segment Anything Model 2”(SAM 2),这是一种基础模型,旨在解决图像和视频中的可提示视觉分割问题。我们构建了一个数据引擎,该引擎通过用户交互改进模型和数据,以收集迄今为止最大的视频分割数据集。我们的模型采用带有流式内存的简单变换器架构,适用于实时视频处理。使用我们的数据进行训练的SAM 2在广泛的任务中表现出色。在视频分割方面,我们观察到比先前方法更高的准确性,同时所需的交互次数减少了 倍。在图像分割方面,我们的模型比“Segment Anything Model”(SAM)更准确,速度快了 倍。我们相信,我们的数据、模型和见解将成为视频分割和相关感知任务的重要里程碑。我们正在发布我们模型的版本、数据集和交互式演示。视频分割旨在确定实体的时空范围,这除了图像分割中的挑战外,还带来了独特的挑战。由于运动、变形、遮挡、光照变化和其他因素,实体的外观可能会发生重大变化。由于相机运动、模糊和分辨率较低,视频的质量通常低于图像。此外,大量帧的高效处理是一个关键挑战。虽然SA成功解决了图像分割问题,但现有的视频分割模型和数据集在提供“分割视频中任何内容”的能力方面仍有不足。
我们介绍了Segment Anything Model 2(SAM 2),这是一个用于视频和图像分割的统一模型(我们将图像视为单帧视频)。
我们专注于Promptable Visual Segmentation(PVS)任务,该任务将图像分割推广到视频领域。该任务将视频任何帧上的点、框或掩码作为输入,以定义要预测其时空掩码(即“掩码片”)的感兴趣段。一旦预测出掩码片,就可以通过在额外帧中提供提示来迭代细化它。
我们的模型(第4节)能够在单个图像和视频帧中生成感兴趣对象的分割掩码。SAM 2配备了一个存储对象信息和先前交互信息的内存,这使得它能够在整个视频中生成掩码片预测,并根据先前观察到的帧中对象的存储内存上下文有效地对其进行校正。我们的流式架构是SAM向视频领域的自然推广,它一次处理一个视频帧,并配备了一个内存注意模块来关注目标对象的先前记忆。当应用于图像时,内存为空,模型的行为与SAM相同。
我们采用了一个数据引擎(第5节)来通过在我们的模型与注释者之间的循环中使用我们的模型来生成训练数据,从而交互式地注释新的和具有挑战性的数据。与大多数现有的视频分割数据集不同,我们的数据引擎不限于特定类别的对象,而是旨在提供用于分割具有有效边界的任何对象(包括部分和子部分)的训练数据。与现有的模型辅助方法相比,在可比质量下,我们的带有SAM 2循环的数据引擎速度快了 倍。我们的最终Segment Anything Video(SA-V)数据集(第5.2节)包含50.9万个视频中的3550万个掩码,比任何现有的视频分割数据集多 倍。SA-V在整个视频中会出现遮挡和重新出现的小对象和部件方面具有挑战性。我们的SA-V数据集在地理上具有多样性,对SAM 2的公平性评估表明,在基于感知性别的视频分割中,性能差异最小,在我们评估的三个感知年龄段之间几
乎没有差异。
2 相关工作
图像分割。Segment Anything(Kirillov等人,2023)引入了一个可提示的图像分割任务,其目标是根据输入提示(如指向感兴趣对象的边界框或点)输出有效的分割掩码。在SA-1B数据集上训练的SAM允许通过灵活的提示进行零样本分割,这使其能够被广泛应用于各种下游应用。最近的工作通过提高质量来扩展SAM。例如,HQ-SAM(Ke等人,2024)通过引入高质量输出标记并在细粒度掩码上训练模型来增强SAM。另一项工作则专注于提高SAM的效率,以便在现实世界和移动应用中更广泛地使用,如EfficientSAM(Xiong等人,2023)、MobileSAM(Zhang等人,2023a)和FastSAM(Zhao等人,2023)。SAM的成功促使其被广泛应用于各种领域,如医学成像(Ma等人,2024;Deng等人,2023;Mazurowski等人,2023;Wu等人,2023a)、遥感(Chen等人,2024;Ren等人,2024)、运动分割(Xie等人,2024)和伪装对象检测(Tang等人,2023)。
交互式视频对象分割(iVOS)。交互式视频对象分割已成为一项重要任务,旨在通过用户指导(通常以涂鸦、点击或边界框的形式)高效地获取视频中的对象分割(masklets)。一些早期方法(Wang等人,2005;Bai和Sapiro,2007;Fan等人,2015)采用基于图的优化来指导分割标注过程。而最近的方法(Heo等人,2020;Cheng等人,2021b;Delatolas等人,2024)通常采用模块化设计,将用户输入转换为单个帧上的掩码表示,然后将其传播到其他帧。我们的工作与这些工作有着类似的目标,即提供良好的交互式体验以跨视频分割对象,并且为了实现这一目标,我们构建了一个强大的模型以及一个庞大且多样的数据集。
特别是,DAVIS交互式基准测试(Caelles等人,2018)允许通过在多帧上进行涂鸦输入来交互式地分割对象。受DAVIS交互式基准测试的启发,我们也在第6.1节中为可提示的视频分割任务采用了交互式评估设置。
基于点击的输入对于交互式视频分割来说更容易收集(Homayounfar等人,2021)。最近的工作已经将图像上的语义注意力机制(SAM)与基于掩码(Cheng等人,2023b;Yang等人,2023;Cheng等人,2023c)或点(Rajič等人,2023)的视频跟踪器结合起来使用。然而,这些方法存在局限性:跟踪器可能不适用于所有对象,SAM对于来自视频的图像帧可能表现不佳,并且除了从头开始使用SAM在错误帧上重新标注并从头开始跟踪外,没有其他机制可以交互式地纠正模型的错误。
半监督视频对象分割(VOS)。半监督VOS通常以第一帧中的对象掩码作为输入,并且该掩码必须在整个视频中准确跟踪(Pont-Tuset等人,2017)。由于该输入掩码可以视为仅针对第一帧可用的对象外观的监督信号,因此它被称为“半监督”。由于其在视频编辑、机器人技术和自动背景去除等各种应用中的相关性,这项任务引起了广泛关注。
早期基于神经网络的方法经常使用在线微调来适应目标对象,这包括在第一个视频帧上进行微调(Caelles等人,2016年;Perazzi等人,2016年;Yoon等人,2017年;Maninis等人,2017年;Hu等人,2018年a;Bhat等人,2020年;Robinson等人,2020年),或者在所有帧上进行微调(Voigtlaender & Leibe,2017年)。通过离线训练的模型,仅在第一帧(Hu等人,2018年b;Chen等人,2018年)或同时整合前一帧(Oh等人,2018年;Yang等人,2018年,2020年)上进行条件化,实现了更快的推理。这种多条件化已经通过RNNs(Xu等人,2018年a)和交叉注意力(Oh等人,2019年;Cheng等人,2021年a;Li等人,2022年a;Yang等人,2021年b,2024年;Cheng & Schwing,2022年;Yang & Yang,2022年;Wang等人,2022年;Cheng等人,2023年a;Goyal等人,2023年)扩展到所有帧。最近的方法(Zhang等人,2023年b;Wu等人,2023年b)将单个视觉Transformer扩展到同时处理当前帧以及所有先前帧和相关预测,从而实现了简单的架构,但推理成本过高。半监督视频对象分割(VOS)可以看作是我们的可提示视觉分割(PVS)任务的一个特例,因为它等同于仅在第一帧提供掩码提示。尽管如此,实际上在第一帧中注释所需的高质量对象掩码是具有挑战性和耗时的。
视频分割数据集。为了支持视频对象分割(VOS)任务,已经提出了许多数据集。早期的VOS数据集(Prest等人,2012年;Li等人,2013年;Ochs等人,2014年;Fan等人,2015年),如DAVIS(Pont-Tuset等人,2017年;Caelles等人,2019年),包括高质量的注释,但其有限的规模不允许训练基于深度学习的方法。YouTube-VOS(Xu等人,2018年b)是第一个大规模的VOS数据集,涵盖了94个对象类别和超过4千个视频。随着算法的改进和基准性能的饱和,研究人员开始通过特别关注遮挡(Qi等人,2022年;Ding等人,2023年)、长视频(Hong等人,2023年,2024年)、极端变换(Tokmakov等人,2022年)、对象多样性(Wang等人,2021年b,2023年)或场景多样性(Athar等人,2022年)来增加VOS任务的难度。
我们发现当前的视频分割数据集缺乏足够的覆盖面来实现“在视频中分割任何东西”的能力。它们的注释通常覆盖整个对象(而不是部分),并且数据集通常围绕特定的对象类别,如人、车辆和动物。与这些数据集相比,我们发布的SA-V数据集不仅关注整个对象,还广泛覆盖对象部分,并包含超过一个数量级更多的掩码。
3 任务:可提示视觉分割
可提示视觉分割(PVS)任务允许在视频的任何帧上向模型提供提示。提示可以是正面/负面点击、边界框或掩码,用于定义要分割的对象或细化模型预测的对象。为了提供交互式体验,在接收到特定帧上的提示后,模型应立即响应该帧上对象的有效分割掩码。在接收到初始(一个或多个)提示(在同一帧或不同帧上)后,模型应将这些提示传播以获得整个视频的对象掩码,其中包含目标对象在每个视频帧上的分割掩码。可以在任何帧上向模型提供额外的提示,以在整个视频中细化分割(图2中有示例)。有关任务的详细信息,请参见附录A。
SAM 2,在下一节(§4)中介绍,作为数据收集工具应用于PVS任务,用于构建我们的SA-V数据集(§5)。该模型在线上和线下环境中进行评估(§6),通过模拟涉及多帧注释的交互式视频分割场景,在传统的半监督VOS设置中,注释仅限于第一帧,以及在SA基准测试上进行图像分割。
4 模型
我们的模型可以看作是将SAM推广到视频(和图像)领域。SAM 2(图3)支持在单个帧上使用点、框和掩码提示,以定义视频中要分割的对象的空间范围。对于图像输入,模型的行为与SAM类似。一个可提示且轻量级的掩码解码器接受当前帧的嵌入和提示(如果有的话),并输出该帧的分割掩码。可以迭代地在帧上添加提示,以细化掩码。
与SAM不同,SAM 2解码器使用的帧嵌入不是直接来自图像编码器,而是根据过去预测和提示帧的记忆进行条件化。提示的帧也可以相对于当前帧来自“未来”。帧的记忆由记忆编码器基于当前预测创建,并放置在记忆库中,以供后续帧使用。记忆注意力操作采用图像编码器的每帧嵌入,并将其与记忆库的条件化,以产生然后传递给掩码解码器的嵌入。
我们在下面描述各个组件和训练,并在附录C中提供更多细节。
图像编码器。为了实时处理任意长度的视频,我们采取流式处理方法,随着视频帧的可用性而消费它们。图像编码器仅在整个交互过程中运行一次,其作用是提供代表每帧的未条件化令牌(特征嵌入)。我们使用预训练的Hiera(Ryali等人,2023;Bolya等人,2023)MAE(He等人,2022)图像编码器,它是分层的,允许我们在解码期间使用多尺度特征。
记忆注意力。记忆注意力的作用是对当前帧特征进行条件化,使其基于过去帧的特征和预测以及任何新的提示。我们堆叠了L个transformer块,第一个块以当前帧的图像编码作为输入。每个块执行自注意力,然后是对记忆库中存储的(提示/未提示的)帧和对象指针的记忆进行交叉注意力(见下文),然后是MLP。我们使用普通的注意力操作进行自注意力和交叉注意力,使我们能够从最近的高效注意力内核发展中受益(Dao,2023)。
提示编码器和掩码解码器。我们的提示编码器与SAM的相同,可以通过点击(正面或负面)、边界框或掩码来提示,以定义给定帧中对象的范围。稀疏提示由位置编码表示,与每种提示类型的学习嵌入相加,而掩码则使用卷积嵌入并与帧嵌入相加。
我们的解码器设计在很大程度上遵循SAM。我们堆叠了“双向”transformer块,这些块更新提示和帧嵌入。正如在SAM中一样,对于模糊的提示(即,一个单一的点击),可能存在多个兼容的目标掩码,我们预测多个掩码。这种设计对于确保模型输出有效掩码很重要。在视频中,模糊可能延伸到视频帧之间,模型在每个帧上预测多个掩码。如果没有后续提示解决模糊性,模型只传播当前帧预测IoU最高的掩码。
与SAM不同,在PVS任务中,可能有些帧上不存在有效对象(例如,由于遮挡)。为了考虑这种新的输出模式,我们增加了一个额外的头,用于预测当前帧上是否存在感兴趣的对象。与SAM的另一个区别是,我们使用来自分层图像编码器的跳跃连接(绕过记忆注意力)来合并用于掩码解码的高分辨率信息(见§C)。
记忆编码器。记忆编码器通过使用卷积模块对输出掩码进行下采样,并将其与图像编码器的未条件化帧嵌入(图3中未显示)逐元素相加,然后通过轻量级卷积层融合信息,从而生成记忆。
记忆库。记忆库通过维护一个最多包含N个最近帧的记忆的先进先出(FIFO)队列,保留有关视频中目标对象过去预测的信息,并通过一个最多包含M个提示帧的FIFO队列存储提示中的信息。例如,在初始掩码是唯一提示的VOS任务中,记忆库持续保留第一帧的记忆以及最多N个最近的(未提示的)帧的记忆。这两组记忆都存储为空间特征图。
除了空间记忆,我们还存储一个对象指针的列表,作为基于每帧掩码解码器输出令牌的要分割对象的高级语义信息的轻量级向量(Meinhardt等人,2022年)。我们的记忆注意力交叉关注空间记忆特征和这些对象指针。
我们将时间位置信息嵌入到N个最近帧的记忆,允许模型表示短期对象运动,但不嵌入到提示帧的记忆,因为提示帧的训练信号更稀疏,并且更难泛化到推理设置,其中提示帧可能来自与训练期间看到的非常不同的时间范围。
训练。模型在图像和视频数据上联合训练。类似于之前的工作(Kirillov等人,2023年;Sofiiuk等人,2022年),我们模拟模型的交互式提示。我们采样8帧序列,并随机选择最多2帧进行提示,并以概率接收校正点击,这些点击在训练期间使用真实掩码和模型预测进行采样。训练任务是顺序(和“交互式”)预测真实掩码。模型的初始提示可以是真实掩码的概率为0.5,从真实掩码中采样的正面点击的概率为0.25,或者输入边界框的概率为0.25。有关更多详细信息,请参见附录C。
5数据
为了发展在视频中“分割任何东西”的能力,我们构建了一个数据引擎来收集一个大型且多样化的视频分割数据集。我们采用与人类注释者循环中的交互式模型设置。类似于Kirillov等人(2023年),我们不对注释掩码施加语义约束,专注于整个对象(例如,一个人)和部分(例如,一个人的帽子)。我们的数据引擎经历了三个阶段,每个阶段根据向注释者提供模型辅助的水平进行分类。接下来,我们描述每个数据引擎阶段和我们的SA-V数据集。
5.1 数据引擎
第一阶段:每帧的SAM。初始阶段使用基于图像的交互式SAM(Kirillov等人,2023年)来辅助人类注释。注释者的任务是使用SAM在每秒6帧(FPS)的速度下注释视频中每一帧的目标对象掩码,并使用像素精确的手动编辑工具,如“画笔”和“橡皮擦”。没有涉及跟踪模型来协助将掩码传播到其他帧。由于这是一种逐帧方法,所有帧都需要从头开始注释掩码,因此过程较慢,在我们的实验中,平均每帧注释时间为37.8秒。然而,这产生了每帧高质量的空间注释。在这个阶段,我们收集了1.4K视频的16K掩码。我们还使用这种方法来注释我们的SA-V验证和测试集,以减轻评估期间SAM 2的潜在偏差。
第二阶段:SAM + SAM 2掩码。第二阶段增加了SAM 2进入循环,其中SAM 2仅接受掩码作为提示。我们称这个版本为SAM 2掩码。注释者使用SAM和其他工具如第一阶段生成第一帧的空间掩码,然后使用SAM 2掩码将注释的掩码时间传播到其他帧以获得完整的时空掩码。在任何后续的视频帧中,注释者可以通过使用SAM从头开始注释掩码、“画笔”和/或“橡皮擦”来空间修改SAM 2掩码所做的预测,并重新使用SAM 2掩码进行传播,重复此过程,直到掩码正确。SAM 2掩码最初在第一阶段的数据和公开可用的数据集上进行训练。在第二阶段,我们使用收集到的数据在注释循环中两次重新训练和更新SAM 2掩码。在第二阶段,我们收集了63.5K掩码。注释时间减少到7.4秒/帧,比第一阶段提高了约5.1倍。
尽管注释时间有所提高,但这种分离的方法需要从头开始注释中间帧的掩码,没有之前的记忆。然后我们进一步开发了功能齐全的SAM 2,它能够统一执行交互式图像分割和掩码传播。
第三阶段:SAM 2。在最后阶段,我们使用功能齐全的SAM 2,它接受各种类型的提示,包括点和掩码。SAM 2利用跨时间维度的对象记忆来生成掩码预测。这意味着注释者只需要偶尔向SAM 2提供细化点击,以编辑中间帧中预测的掩码,而不是使用没有这种记忆上下文的空间SAM从头开始注释。在第三阶段,我们使用收集到的注释五次重新训练和更新SAM 2。有了SAM 2的循环,每帧的注释时间减少到4.5秒,比第一阶段提高了约8.4倍。在第三阶段,我们收集了197.0K掩码。
质量验证。为了保持注释的高标准,我们引入了一个验证步骤。一组独立的注释者负责验证每个注释掩码的质量,将其标记为“满意”(正确且一致地在所有帧中跟踪目标对象)或“不满意”(目标对象定义明确且边界清晰,但掩码不正确或不一致)。不满意的掩码会被送回注释流程进行细化。任何跟踪定义不明确的物体的掩码都会被完全拒绝。
自动掩码生成。确保注释的多样性对于实现我们模型的“任何东西”能力很重要。由于人类注释者通常会更多地关注显著的对象,我们通过自动生成的掩码(称为“自动”)来增加注释,这既增加了注释的覆盖范围,也有助于识别模型失败的案例。为了生成自动掩码,我们在第一帧中使用规则网格的点提示SAM 2并生成候选掩码。然后将这些发送到掩码验证步骤进行筛选。被标记为“满意”的自动掩码被添加到SA-V数据集中。被识别为“不满意”的掩码(即模型失败案例)会被抽样并呈现给注释者,以便在数据引擎的第三阶段使用SAM 2进行细化。这些自动掩码涵盖了大型显著的中心物体,以及背景中大小和位置各异的物体。
分析。表1通过控制实验(详情见附录D.2.2)比较了每个数据引擎阶段的注释协议。我们比较了每帧的平均注释时间、每个掩码手动编辑帧的平均百分比,以及每个点击帧的平均点击次数。为了质量评估,我们定义了第一阶段掩码对齐分数,即与第一阶段相应掩码的IoU超过0.75的掩码的百分比。选择第一阶段数据作为参考,因为它有每帧高质量的手动注释。第三阶段使用SAM 2的循环,提高了效率且质量可比:比第一阶段快8.4倍,编辑帧百分比和每帧点击次数最低,并且对齐效果更好。
在表2中,我们展示了在每个阶段结束时使用可用数据训练的SAM 2的性能比较,保持迭代次数固定,因此仅测量额外数据的影响。我们在我们自己的SA-V验证集上进行评估,并且还在9个零样本基准测试上进行评估(有关详细信息,请参见附录E.1),使用标准J&F准确度度量(越高越好)在第一帧上使用3次点击提示。我们注意到,在每个阶段的数据迭代包含后,不仅在域内SA-V验证集上,而且在9个零样本基准测试上,性能都持续提高。
5.2 SA-V数据集
我们的数据引擎收集的SA-V数据集包括50.9K视频和642.6K掩码。在表3中,我们比较了SA-V组成与常见VOS数据集在视频数量、掩码数量和掩码方面的比较。值得注意的是,注释掩码的数量比任何现有的VOS数据集大53倍(没有自动注释为15倍),为未来的工作提供了大量资源。我们将在宽松的许可下发布SA-V。
视频。我们收集了由众包工人拍摄的50.9K新视频集。视频包括54%的室内和46%的室外场景,平均时长为14秒。视频展示了“野外”多样化的环境,并涵盖了各种日常场景。我们的数据集比现有的VOS数据集拥有更多的视频,如图5所示,视频涵盖了47个国家,并由多样化的参与者(自我报告的人口统计数据)拍摄。
掩码。注释包括190.9K手动掩码注释和451.7K使用我们的数据引擎收集的自动掩码。图4显示了叠加了掩码(手动和自动)的示例视频。SA-V比最大的VOS数据集多53倍(没有自动注释为15倍)的掩码。SA-V手动(在至少一帧中消失然后重新出现的注释掩码的百分比)的消失率为42.5%,在现有数据集中具有竞争力。图5a显示了与DAVIS、MOSE和YouTubeVOS的掩码大小分布(按视频分辨率归一化)的比较。超过88%的SA-V掩码的归一化掩码面积小于0.1。
SA-V训练、验证和测试拆分。我们根据视频作者(及其地理位置)拆分SA-V,以确保类似对象的重叠最小。为了创建SA-V验证集和SA-V测试集,我们专注于选择具有挑战性场景的视频,并要求注释者识别具有快速移动、与其他物体复杂遮挡以及消失/重新出现模式的具有挑战性的目标。这些目标使用§5.1中的数据引擎第一阶段设置以6 FPS进行注释。SA-V验证拆分中有293个掩码和155个视频,SA-V测试拆分中有278个掩码和150个视频。
内部数据集。我们还使用内部可用的许可视频数据进一步增加了我们的训练集。我们的内部数据集包括62.9K视频和69.6K掩码,这些掩码在第二阶段和第三阶段(见§5.1)中注释,用于训练,以及使用第一阶段注释的96个视频和189个掩码用于测试(Internal-test)。
有关数据引擎和SA-V数据集的更多详细信息,请参见附录D。
6 零样本实验
在这里,我们将SAM 2与先前在零样本视频任务(§6.1)和图像任务(§6.2)上的研究成果进行比较。我们报告了视频任务的标准 J & F \mathcal{J} & \mathcal{F} J&F指标(Pont-Tuset等人,2017)以及图像任务的mIoU指标。除非另有说明,本节报告的结果遵循我们使用Hiera-B+图像编码器的默认设置,分辨率为1024,并在所有数据集的完整组合上进行训练,即表7中的SAM 2(Hiera-B+)(详见§C. 2了解更多细节)。
6.1 视频任务
6.1.1 提示视频分割
我们首先评估可提示的视频分割,这涉及模拟类似于用户体验的交互式设置。我们有两种设置,离线评估,通过视频多次传递以选择基于最大模型误差的交互帧,以及在线评估,通过视频的单次前向传递进行帧注释。这些评估是在9个密集注释的零样本视频数据集上进行的,每个帧使用Nclick=3次点击(详见§E.1了解更多细节)。
我们创建了两个强大的基线,SAM + XMem ++和SAM + Cutie,基于两个视频对象分割的最新模型,XMem++(Bekuzarov等人,2023)和Cutie(Cheng等人,2023a)。我们使用XMem ++基于一个或多个帧上的掩码输入生成视频分割。SAM用于提供初始掩码或通过将当前分割作为掩码提示输入到SAM来细化输出。对于SAM + Cutie基线,我们修改了Cutie,允许在多个帧上接收掩码输入。
在图6中,我们报告了在 N frame = 1 , … , 8 个交互帧上的平均 J & F \mathcal{J} & \mathcal{F} J&F准确度。SAM 2在离线和在线评估设置中均优于SAM + XMem ++和SAM + Cutie。在所有9个数据集上(详见§E.1的每个数据集结果),SAM 2在两种方法中都占主导地位,确认SAM 2能够从几次点击中生成高质量的视频分割,同时也允许通过进一步的提示继续细化结果。总体而言,SAM 2能够生成更好的分割准确度,与之前的方法相比,交互次数减少了3倍以上。
6.1.2 半监督视频对象分割
接下来,我们评估半监督视频对象分割(VOS)设置(Pont-Tuset等人,2017),仅在视频的第一帧上使用点击、框或掩码提示。当使用点击提示时,我们交互式地在第一帧视频上采样1、3或5次点击,然后基于这些点击进行对象跟踪。
类似于§6.1.1中的交互设置,我们与XMem++和Cutie进行比较,使用SAM进行点击和框提示,在默认设置下使用掩码提示。我们报告了标准的 J & F \mathcal{J} & \mathcal{F} J&F准确度(Pont-Tuset等人,2017),除了在VOST(Tokmakov等人,2022)上,我们遵循其协议报告 J \mathcal{J} J指标。结果在表4中。SAM 2在17个数据集上超越了两个基线,使用了各种输入提示。结果强调了SAM 2在传统的非交互式VOS任务中也表现出色,这些任务是专门为这些其他工作设计的。更多细节在§E.1.3。
6.1.3 公平性评估
我们评估SAM 2在不同人群间的公平性。我们在EgoExo4D(Grauman等人,2023)数据集中收集了“人”类别的注释,该数据集包含了视频主体自报的人口统计信息。我们采用与SA-V验证和测试集相同的注释设置,并将其应用于第三人称(exo)视频的20秒片段。我们使用1次、3次点击和第一帧的真实掩码提示在这些数据上评估SAM 2。
表5显示了SAM 2在按性别和年龄分割人群方面的 J & F \mathcal{J} & \mathcal{F} J&F准确度比较。在3次点击和真实掩码提示下,差异很小。我们手动检查了1次点击的预测,发现模型经常预测部分的掩码而不是人。当将比较限制在正确分割人的片段时,1次点击的差距大幅缩小(男性 J & F \mathcal{J} & \mathcal{F} J&F为94.3,女性为92.7),这表明差异部分可以归因于提示的模糊性。
在附录G中,我们为SA-V提供了模型、数据和注释卡片。
6.2 图像任务
我们在37个零样本数据集上评估SAM 2在“分割任何东西”任务上的表现,包括SAM先前用于评估的23个数据集。1次点击和5次点击的mIoUs在表6中报告,我们展示了在单个A100 GPU上每秒帧数(FPS)的平均mIoU,以及每个数据集领域和模型速度。
第一列(SA-23 All)显示了在SAM的23个数据集上的准确性。SAM 2的准确性更高(1次点击时为58.9 mIoU),超过了SAM(1次点击时为58.1 mIoU),而且没有使用任何额外数据,同时速度提高了 6 \mathbf{6} 6倍。这主要归因于SAM 2中更小但更有效的Hiera图像编码器。
最后一行显示了我们如何通过在SA-1B和视频数据混合上训练,进一步提高准确性到23个数据集上的平均61.4%。我们还看到在SA-23的视频基准测试中取得了显著提升(视频数据集作为图像进行评估,与Kirillov等人(2023)相同),以及我们添加的14个新的视频数据集。
总体而言,这些发现强调了SAM 2在交互式视频和图像分割的双重能力,这种优势来自于我们多样化的训练数据,涵盖了跨视觉领域视频和静态图像。更多详细结果,包括按数据集细分的结果在§E.3中。
7 与半监督VOS的最新技术的比较
我们的主要关注点是一般的、交互式PVS任务,但我们也解决了特定的半监督VOS设置(提示是第一帧上的真实掩码),因为它是一个历史上常见的协议。我们评估了两种不同图像编码器大小的SAM 2版本(Hiera-B±L),具有不同的速度与准确性权衡。我们在单个A100 GPU上使用批量大小为一来测量每秒帧数(FPS)。基于Hiera-B+和Hiera-L的SAM 2分别以43.8和30.2 FPS的实时速度运行。
我们在表7中展示了与现有最新技术的比较,报告了使用标准协议的准确性。SAM 2在所有方面都显示出比现有最佳方法有显著改进。我们观察到使用更大的图像编码器可以在所有方面带来显著的准确性提升。
我们还在SA-V验证和测试集上评估了现有工作,这些集衡量了“任何”对象类别的开放世界分割的性能。在这一基准上进行比较时,我们发现大多数先前的方法在大约相同的准确性达到峰值。先前工作在SA-V验证和SA-V测试上的最佳性能显著较低,证明了与“在视频中分割任何东西”的能力之间的差距。最后,我们看到SAM 2在长期视频对象分割方面也带来了显著的提升,如在LVOS基准测试结果中观察到的。
8 数据和模型消融
本节介绍了为SAM 2的设计决策提供信息的消融研究。我们在MOSE开发集(“MOSE dev”)上进行评估,该集包含从MOSE训练分割中随机抽取的200个视频,并从我们的消融训练数据中排除,SA-V验证,以及9个零样本视频基准的平均值。作为比较的指标,我们在第一帧上使用3次点击报告 J & F \mathcal{J} & \mathcal{F} J&F,作为1次点击制度和VOS风格掩码提示之间的平衡。此外,我们报告了在SAM用于SA任务的23个数据集基准上使用1次点击的平均mIoU。除非另有规定,我们以512分辨率运行我们的消融,并使用SA-V手动和SA-1B的10%子集。更多细节在§C.2中。
8.1 数据消融
数据混合消融。在表8中,我们比较了在不同数据混合上训练的SAM-2的准确性。我们先在SA-1B上预训练,然后为每个设置训练一个单独的模型。我们固定迭代次数(200k)和批量大小(128),实验之间只有训练数据发生变化。我们在SA-V验证集、MOSE、9个零样本视频基准和SA-23任务(§6.2)上报告准确性。第1行显示,仅在VOS数据集(Davis、MOSE、YouTubeVOS)上训练的模型在领域内的MOSE dev上表现良好,但在所有其他数据集上表现不佳,包括9个零样本VOS数据集(59.7 J & F \mathcal{J} & \mathcal{F} J&F)。
我们观察到将我们的数据引擎数据添加到训练混合中带来了巨大的好处,包括在9个零样本数据集上平均性能提高了 + 12.1 \boldsymbol{+ 12.1} +12.1%(第11行与第1行相比)。这可以归因于VOS数据集的有限覆盖范围和大小。添加SA-1B图像提高了图像分割任务的性能(第3行与第4行、第5行与第6行、第9行与第10行、第11行与第12行相比),而没有降低VOS能力。仅在SA-V和SA-1B上训练(第4行)就足以在所有基准上获得强大的性能,除了MOSE。总体而言,当我们混合所有数据集:VOS、SA-1B和我们的数据引擎数据时,我们获得了最佳结果(第12行)。
数据量消融。接下来,我们研究了扩大训练数据的影响。SAM 2在SA-1B上预训练,然后在不同大小的SA-V上训练。我们在3个基准上报告平均 J & F \mathcal{J} & \mathcal{F} J&F得分(在第一帧上提示3次点击),包括SA-V验证、零样本和MOSE开发。图7显示了训练数据量与所有基准上的视频分割准确性之间的一致幂律关系。
数据质量消融。在表9中,我们尝试了基于质量的过滤策略。我们从SA-V中抽取了50k个掩码,要么随机抽取,要么选择被注释者编辑次数最多的掩码。基于编辑帧数的过滤仅使用25%的数据就可以获得强大的性能,并且优于随机抽样。然而,它比使用所有190k SA-V掩码要差。
8.2 模型架构消融
在本节中,我们介绍了指导设计决策的模型消融,这些消融在默认情况下使用512输入分辨率的较小模型设置下进行。对于每个消融设置,我们报告了视频( J & F \mathcal{J} & \mathcal{F} J&F)和图像(mIoU)任务的分割准确性,以及其相对于视频分割速度的视频(灰色中的最大推理吞吐量相对于消融默认设置)。我们发现图像和视频组件的设计选择在很大程度上是解耦的——这可以归因于我们的模块化设计和训练策略。
8.2.1 容量消融
输入尺寸。在训练期间,我们采样了固定分辨率和固定长度(这里表示为#帧)的帧序列。我们在表10a、10b中消融了它们的影响。更高的分辨率在图像和视频任务上都带来了显著的改进,我们在最终模型中使用1024的输入分辨率。增加帧数在视频基准测试上带来了显著的增益,我们使用默认值8来平衡速度和准确性。
内存大小。增加(最大)记忆数量 N N N,通常有助于性能,尽管可能会有一些变化,如表10c所示。我们使用默认值6个过去帧来平衡时间上下文长度和计算成本。使用较少的通道进行记忆不会引起太大的性能退化,如表10d所示,同时使存储所需的记忆缩小4倍。
模型大小。图像编码器或记忆-注意力(#自/#交叉注意力块)的容量越大,通常会导致更好的结果,如表10e、10f所示。扩展图像编码器在图像和视频指标上都带来了增益,而扩展记忆-注意力只改善了视频指标。我们默认使用B+图像编码器,它在速度和准确性之间提供了合理的平衡。
8.2.2 相对位置编码
默认情况下,我们总是在图像编码器以及记忆注意力中使用绝对位置编码。在表11中,我们研究了相对位置编码的设计选择。我们还以LVOSv2(Hong等人,2024)作为长期视频对象分割的基准进行评估,使用第一帧上的3次点击。
尽管SAM(Kirillov等人,2023)遵循Li等人(2022b)在所有图像编码器层中添加相对位置偏置(RPB),Bolya等人(2023)通过在除全局注意力层之外的所有层中移除RPB并采用“绝对赢”位置编码来提高速度。我们通过从图像编码器中移除所有RPB进一步改进这一点,没有在SA-23上引起性能退化,并且在视频基准测试上只有最小的退化(见表11),同时在1024分辨率下显著提高了速度。我们还发现在记忆注意力中使用2d-RoPE(Su等人,2021;Heo等人,2024)是有益的。
8.2.3 记忆架构消融
循环记忆。我们研究了在将记忆特征添加到记忆库之前,先将其输入GRU的有效性。类似于§8.2.2,我们还以LVOSv2作为长期对象分割的额外基准进行评估。虽然以前的工作通常采用GRU(Cho等人,2014)状态作为将记忆纳入跟踪过程的一种手段,我们在表12中的发现表明这种方法并没有提供改进(除了在LVOSv2上稍微改进)。相反,我们发现直接将记忆特征存储在记忆库中就足够了,这既简单又高效。
对象指针。我们消融了在其他帧中从掩码解码器输出的交叉注意对象指针向量的影响(见§4)。表12中呈现的结果表明,虽然在9个零样本数据集上交叉注意对象指针并没有提高平均性能,但它显著提高了SA-V验证数据集以及具有挑战性的LVOSv2基准(验证分割)的性能。因此,我们默认与记忆库一起交叉注意对象指针。
9 结论
我们提出了将“分割任何东西”自然演变到视频领域的方案,基于三个关键方面:(i) 将可提示的分割任务扩展到视频,(ii) 为应用于视频时使用记忆功能的SAM架构配备工具,以及(iii) 用于训练和基准测试视频分割的多样化SA-V数据集。我们认为SAM 2在视觉感知方面标志着一个重大进步,我们的贡猃将作为推动该领域进一步研究和应用的里程碑。
10 致谢
我们感谢Alexander Kirillov和Jitendra Malik就项目方向进行的讨论。感谢Andrew Huang、Sahir Gomez、Miguel Martin、Devansh Kukreja和Somya Jain在演示工作上的贡献,以及Aohan Lin和Meng Wang创建的数据集可视化工具。我们感谢Shoubhik Debnath和Sagar Vaze在数据集准备上的工作。还感谢William Ngan和Sasha Mitts的设计专长,以及Grant Gardner和George Orlin在产品管理上的领导。我们对Joelle Pineau、Daniel Bolya、Kate Saenko、Pengchuan Zhang和Christopher Chedeau的宝贵讨论表示感谢。感谢Rene Martinez Doehner和Baishan Guo的数据支持,以及我们的注释工程和管理合作伙伴:Robert Kuo、Rishi Godugu、Bob Kamma、Ida Cheng、Claudette Ward、Kai Brown、Jake Kinney、Jenny Truong和Karen Bergan。感谢Vispi Cassod、Parth Malani、Shiva Koduvayur、Alexander Miller和Caleb Ho在计算和基础设施方面的支持。最后,我们感谢Azita Shokrpour、Mallika Malhotra、Rodrick Shepard、Jonathan Torres、Luc Dahlin、David Soofian、Alex Bosenberg和Amanda Kallet在项目级支持上的贡献。
附录