资讯详情

【读点论文】SAM 2: Segment Anything in Images and Videos

📅 2026/9/12 19:33:20 | 华诺云谱 👁 阅读
【读点论文】SAM 2: Segment Anything in Images and Videos
SAM 2: Segment Anything in Images and Videosabstract我们提出了 Segment Anything Model 2 (SAM 2)这是一个用于解决图像和视频中可提示的视觉分割的基础模型。我们构建了一个数据引擎通过用户交互改进模型和数据以收集迄今为止最大的视频分割数据集。我们的模型是一个简单的 Transformer 架构具有用于实时视频处理的流内存。在我们的数据上训练的 SAM 2 在各种任务中都提供了强大的性能。在视频分割中我们观察到了更高的准确性使用的交互比以前的方法少了 3 倍。在图像分割中我们的模型比 Segment Anything Model (SAM) 更准确速度快 6 倍。我们相信我们的数据、模型和见解将成为视频分割和相关感知任务的重要里程碑。我们正在发布我们的模型、数据集和交互式演示的一个版本。Demo: https://sam2.metademolab.comCode: https://github.com/facebookresearch/segment-anything-2Website: https://ai.meta.com/sam2IntroductionSegment Anything (SA) 引入了可快速分割图像的基础模型。然而图像只是现实世界的静态快照其中的视觉片段可以表现出复杂的运动并且随着多媒体内容的快速增长现在很大一部分内容都以时间维度记录尤其是在视频数据中。AR/VR、机器人技术、自动驾驶汽车和视频编辑中的许多重要应用都需要超越图像级分割的时间定位。我们相信通用的视觉分割系统应该适用于图像和视频。视频分割旨在确定实体的时空范围这带来了图像之外的独特挑战。由于运动、变形、遮挡、光线变化和其他因素实体的外观可能会发生显著变化。由于相机运动、模糊和分辨率较低视频的质量通常低于图像。此外有效处理大量帧是一项关键挑战。虽然 SA 成功解决了图像分割问题但现有的视频分割模型和数据集在提供“分割视频中的任何内容”的类似能力方面还存在不足。我们引入了 Segment Anything Model 2 (SAM 2)这是一个用于视频和图像分割的统一模型我们将图像视为单帧视频。我们的工作包括任务、模型和数据集见图 1。我们专注于可提示的视觉分割 (PVS) 任务该任务将图像分割推广到视频领域。该任务将视频任意帧上的点、框或掩码作为输入以定义要预测时空掩码即“掩码片段”的感兴趣片段。一旦预测出掩码片段就可以通过在额外帧中提供提示来迭代地对其进行细化。![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_urlC%3A%5CUsers%5Cseuic%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-.pngpos_idimg-e01oO83C-1788856108582)图 1我们引入了 Segment Anything Model 2 (SAM 2)旨在使用基础模型 (b) 解决可提示的视觉分割任务 (a)该模型在我们的数据引擎收集的大规模 SA-V 数据集上进行训练 ©。SAM 2 能够通过存储先前提示和预测的流式内存通过一个或多个视频帧上的提示点击、框或蒙版以交互方式分割区域。我们的模型 (§4) 可在单幅图像和视频帧中生成感兴趣对象的分割掩码。SAM 2 配备了一个内存用于存储有关对象和先前交互的信息这使它能够在整个视频中生成掩码预测并根据先前观察到的帧中存储的对象内存上下文有效地纠正这些预测。我们的流式架构是 SAM 在视频领域的自然推广一次处理一个视频帧配备了一个记忆注意模块来关注目标对象的先前记忆。当应用于图像时内存为空模型的行为与 SAM 类似。我们采用数据引擎 (§5) 来生成训练数据方法是使用我们的模型与注释器循环交互地注释新数据和具有挑战性的数据。与大多数现有视频分割数据集不同我们的数据引擎不限于特定类别的对象而是旨在提供训练数据以分割具有有效边界的任何对象包括部分和子部分。与现有模型辅助方法相比我们的数据引擎在循环中使用 SAM 2 的速度在同等质量下提高了 8.4 倍。我们最终的 Segment Anything Video (SA-V) 数据集 (§5.2) 包含 50.9K 个视频中的 35.5M 个掩码比任何现有视频分割数据集的掩码多 53 倍。SA-V 具有挑战性因为小物体和部分在整个视频中被遮挡并重新出现。我们的 SA-V 数据集在地理上是多样化的对 SAM 2 的公平性评估表明基于感知性别的视频分割性能差异最小我们评估的三个感知年龄组之间的差异很小。我们的实验 (§6) 表明SAM 2 为视频分割体验带来了重大改变。SAM 2 可以实现更好的分割精度同时使用的交互比之前的方法少 3 倍。此外在多种评估设置下SAM 2 在已建立的视频对象分割基准测试中的表现优于之前的工作并且在图像分割基准测试中与 SAM 相比提供了更好的性能同时速度提高了 6 倍。通过众多零样本基准测试包括 17 个视频分割基准测试和 37 个单图像分割基准测试观察到SAM 2 在各种视频和图像分布中都表现出色。我们根据宽松的开放许可发布我们的工作包括 SA-V 数据集CC by 4.0、模型 SAM 2Apache 2.0的版本以及 https://sam2.metademolab.com 上的交互式在线演示。Related work图像分割。Segment Anything引入了一种可提示的图像分割任务其目标是在给定输入提示例如边界框或指向感兴趣对象的点的情况下输出有效的分割掩码。在 SA-1B 数据集上训练的 SAM 允许使用灵活提示进行零样本分割从而使其能够应用于广泛的下游应用。 最近的工作通过提高其质量扩展了 SAM。例如HQ-SAM通过引入高质量输出标记并在细粒度掩码上训练模型来增强 SAM。另一项工作重点是提高 SAM 的效率以便在现实世界和移动应用中更广泛地使用例如 EfficientSAM、MobileSAM和 FastSAM。 SAM 的成功使其得到了广泛的应用例如医学成像、遥感、运动分割和伪装物体检测。交互式视频对象分割 (iVOS)。交互式视频对象分割已成为一项关键任务可在用户指导下通常以涂鸦、点击或边界框的形式有效获取视频中的对象分割masklets。一些早期方法部署基于图的优化来指导分割注释过程。较新的方法通常采用模块化设计将用户输入转换为单个帧上的掩码表示然后将其传播到其他帧。我们的工作与这些工作有着相似的目标即在视频中分割对象并实现良好的交互体验并且我们建立了一个强大的模型以及一个庞大而多样化的数据集来实现这一目标。具体来说DAVIS 交互式基准 允许通过在多个帧上进行涂鸦输入来交互式分割对象。受 DAVIS 交互式基准的启发我们还在 §6.1 中为可提示视频分割任务采用了交互式评估设置。对于交互式视频分割基于点击的输入更容易收集。最近的研究结合使用了图像上的 SAM 和基于掩码或点的视频跟踪器。然而这些方法有局限性跟踪器可能不适用于所有对象SAM 可能对视频中的图像帧表现不佳并且没有机制可以交互式地改进模型的错误除了在错误的帧上使用 SAM 从头开始重新注释并从那里重新开始跟踪。半监督视频对象分割 (VOS)。半监督 VOS 通常以第一帧中的对象掩码作为输入开始必须在整个视频中准确跟踪该掩码。之所以称为“半监督”是因为输入掩码可以看作是仅适用于第一帧的对象外观的监督信号。这项任务因其与各种应用包括视频编辑、机器人技术和自动背景去除的相关性而引起了广泛关注。早期基于神经网络的方法通常对视频的第一帧或所有帧进行在线微调以使模型适应目标对象。 使用离线训练的模型可以实现更快的推理这些模型仅以第一帧为条件或者还集成了前一帧。 这种多重条件已扩展到具有 RNN和交叉注意的所有帧。最近的方法扩展了单个视觉 Transformer 以联合处理当前帧以及所有先前帧和相关预测从而产生了一个简单的架构但推理成本过高。半监督 VOS 可以看作是我们的可提示视觉分割 (PVS) 任务的一个特例因为它相当于仅在第一个视频帧中提供掩码提示。然而在第一帧中注释所需的高质量对象掩码在实践中具有挑战性且耗时。视频分割数据集。已经提出了许多数据集来支持 VOS 任务。早期的 VOS 数据集例如 DAVIS包含高质量注释但其有限的大小不允许训练基于深度学习的方法。YouTube-VOS涵盖了 4 千多个视频中的 94 个对象类别是 VOS 任务的第一个大规模数据集。随着算法变得越来越好并且基准性能开始饱和研究人员开始研究通过特别关注遮挡、长视频、极端变换、物体多样性或场景多样性来增加 VOS 任务的难度。我们发现当前的视频分割数据集缺乏足够的覆盖范围无法实现“分割视频中的任何内容”的功能。它们的注释通常涵盖整个对象而不是部分数据集通常以特定对象类别为中心例如人、车辆和动物。与这些数据集相比我们发布的 SA-V 数据集不仅关注整个对象还广泛覆盖对象部分并包含超过一个数量级的掩码。Task: promptable visual segmentationPVS 任务允许在视频的任意帧上向模型提供提示。提示可以是正/负点击、边界框或蒙版用于定义要分割的对象或优化模型预测的对象。为了提供交互式体验在特定帧上收到提示后模型应立即响应该帧上对象的有效分割蒙版。在收到初始一个或多个提示在同一帧或不同帧上后模型应传播这些提示以获取整个视频中对象的蒙版其中包含每个视频帧上目标对象的分割蒙版。可以在任意帧上向模型提供其他提示以优化整个视频中的片段图 2 中的示例。有关该任务的详细信息请参阅 §A。![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_urlC%3A%5CUsers%5Cseuic%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-.pngpos_idimg-iOxfdqhj-1788856108584)图 2 使用 SAM 2 进行交互式分割。步骤 1选择我们在第 1 帧中提示 SAM 2 获取目标对象舌头的片段。绿点/红点分别表示正/负提示。SAM 2 会自动将该片段传播到后续帧蓝色箭头以形成 masklet。如果 SAM 2 丢失了对象第 2 帧之后我们可以通过在新帧中提供额外提示红色箭头来更正 masklet。步骤 2细化在第 3 帧中单击一次就足以恢复对象并将其传播以获得正确的 masklet。分离的 SAM 视频跟踪器方法需要在第 3 帧如第 1 帧中单击几次才能在从头开始重新分割时正确地重新注释对象。借助 SAM 2 的记忆单击一次即可恢复舌头。下一节 (§4) 中介绍的 SAM 2 用作 PVS 任务的数据收集工具用于构建我们的 SA-V 数据集 (§5)。通过模拟涉及跨多帧注释的交互式视频分割场景、注释仅限于第一帧的传统半监督 VOS 设置以及 SA 基准上的图像分割在线和离线设置中对该模型进行了评估 (§6)。Model我们的模型可以看作是 SAM 在视频和图像领域的推广。SAM 2图 3支持在单个帧上使用点、框和掩码提示来定义视频中要分割的对象的空间范围。对于图像输入该模型的行为类似于 SAM。可提示的轻量级掩码解码器接受当前帧上的帧嵌入和提示如果有并输出该帧的分割掩码。可以迭代地在帧上添加提示以细化掩码。![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_urlC%3A%5CUsers%5Cseuic%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-.pngpos_idimg-lfa1gYBQ-1788856108584)图 3 SAM 2 架构。对于给定帧分割预测取决于当前提示和/或先前观察到的记忆。视频以流式方式处理图像编码器一次处理一个帧并与先前帧中的目标对象记忆交叉关注。掩码解码器可选地也接受输入提示预测该帧的分割掩码。最后记忆编码器转换预测和图像编码器嵌入图中未显示以用于未来的帧。与 SAM 不同SAM 2 解码器使用的帧嵌入并非直接来自图像编码器而是取决于过去预测和提示帧的记忆。提示帧也可能相对于当前帧“来自未来”。帧的记忆由记忆编码器根据当前预测创建并放置在记忆库中以供后续帧使用。记忆注意操作从图像编码器获取每帧嵌入并在记忆库上对其进行调节以生成嵌入然后将其传递给掩码解码器。我们在下面描述了各个组件和训练并在附录 C 中提供了更多详细信息。图像编码器。对于任意长度的视频的实时处理我们采用流式传输方法在视频帧可用时使用它们。图像编码器在整个交互过程中仅运行一次其作用是提供表示每个帧的无条件标记特征嵌入。我们使用 MAE 预训练的 Hiera 图像编码器它是分层的允许我们在解码过程中使用多尺度特征。记忆注意。记忆注意的作用是根据过去帧的特征和预测以及任何新提示来调节当前帧的特征。我们堆叠 L 个 Transformer 块第一个块将当前帧的图像编码作为输入。每个块执行自注意然后对存储在存储库中的提示/非提示帧和对象指针见下文的记忆进行交叉注意见下文然后是 MLP。我们使用原始注意操作进行自注意和交叉注意这使我们能够从高效注意内核的最新发展中受益。提示编码器和掩码解码器。我们的提示编码器与 SAM 的相同可以通过点击正或负、边界框或掩码来提示以定义给定帧中对象的范围。稀疏提示由位置编码表示并与每个提示类型的学习嵌入相加而掩码则使用卷积嵌入并与帧嵌入相加我们的解码器设计在很大程度上遵循 SAM。我们堆叠“双向”转换器块来更新提示和帧嵌入。与 SAM 一样对于可能存在多个兼容目标掩码的模糊提示即单击我们会预测多个掩码。这种设计对于确保模型输出有效掩码非常重要。在视频中模糊性可以扩展到视频帧之间模型会在每个帧上预测多个掩码。如果没有后续提示解决模糊性则模型仅传播当前帧具有最高预测 IoU 的掩码。与 SAM 不同在 SAM 中只要给出肯定的提示就总会有一个有效的对象可供分割而在 PVS 任务中某些帧上可能不存在有效对象例如由于遮挡。为了解释这种新的输出模式我们添加了一个额外的头用于预测当前帧上是否存在感兴趣的对象。 与 SAM 的另一个不同之处在于我们使用来自分层图像编码器的跳过连接绕过记忆注意来合并高分辨率信息以进行掩码解码参见 §C。记忆编码器。记忆编码器通过使用卷积模块对输出掩码进行下采样并将其与来自图像编码器的无条件帧嵌入逐个元素相加图 3 中未显示然后使用轻量级卷积层融合信息从而生成记忆。记忆库。记忆库通过维护最多包含 N 个最近帧的 FIFO 队列来保留有关视频中目标对象的过去预测的信息并将来自提示的信息存储在最多包含 M 个提示帧的 FIFO 队列中。例如在初始掩码是唯一提示的 VOS 任务中记忆库始终保留第一帧的记忆以及最多包含 N 个最近未提示帧的记忆。这两组记忆都存储为空间特征图。除了空间记忆之外我们还根据每帧的掩码解码器输出标记 存储了对象指针列表作为轻量级向量用于存储要分割对象的高级语义信息。我们的记忆注意力同时关注空间记忆特征和这些对象指针。我们将时间位置信息嵌入到 N 个最近帧的记忆中从而允许模型表示短期物体运动但不能嵌入到提示帧的记忆中因为来自提示帧的训练信号更稀疏并且更难以推广到推理设置其中提示帧可能来自与训练期间看到的非常不同的时间范围。训练。该模型在图像和视频数据上联合训练。与之前的工作sam类似我们模拟了模型的交互式提示。我们采样 8 帧序列并随机选择最多 2 帧来提示并概率性地接收使用地面实况 masklet 和模型预测在训练期间采样的校正点击。训练任务是按顺序和“交互式”预测地面实况 masklet。对模型的初始提示可以是概率为 0.5 的地面实况 mask、概率为 0.25 的从地面实况 masklet 采样的正点击或概率为 0.25 的边界框输入。有关更多详细信息请参阅 §C。Data为了开发“分割视频中的任何内容”的能力我们构建了一个数据引擎来收集大量多样化的视频分割数据集。我们在循环设置中使用了一个交互式模型其中有人工注释者。 与 sam 类似我们不对带注释的 masklet 施加语义约束而是同时关注整个对象例如一个人和部分例如一个人的帽子。我们的数据引擎经历了三个阶段每个阶段都根据为注释者提供的模型辅助级别进行分类。接下来我们将描述每个数据引擎阶段和我们的 SA-V 数据集。Data engine第 1 阶段每帧 SAM。初始阶段使用基于图像的交互式 SAM 来协助人工注释。注释者的任务是使用 SAM 和像素精确的手动编辑工具例如“画笔”和“橡皮擦”以每秒 6 帧FPS的速度注释视频中每帧中的目标对象的蒙版。没有涉及跟踪模型来协助将蒙版时间传播到其他帧。 由于这是一种每帧方法并且所有帧都需要从头开始进行蒙版注释因此该过程很慢在我们的实验中每帧的平均注释时间为 37.8 秒。但是这可以产生每帧的高质量空间注释。在此阶段我们在 1.4K 视频中收集了 16K 个蒙版。我们进一步使用此方法来注释我们的 SA-V 验证集和测试集以减轻 SAM 2 在评估过程中的潜在偏差。第 2 阶段SAM SAM 2 Mask。第二阶段将 SAM 2 添加到循环中其中 SAM 2 仅接受掩码作为提示。我们将此版本称为 SAM 2 Mask。注释者使用 SAM 和其他工具如第 1 阶段在第一帧中生成空间掩码然后使用 SAM 2 Mask 将注释的掩码在时间上传播到其他帧以获得完整的时空掩码。在任何后续视频帧中注释者都可以通过使用 SAM“画笔”和/或“橡皮擦”从头注释掩码来空间修改 SAM 2 Mask 所做的预测然后使用 SAM 2 Mask 重新传播重复此过程直到掩码正确。SAM 2 Mask 最初是在第 1 阶段数据和公开可用的数据集上进行训练的。在第 2 阶段我们使用收集的数据在注释循环中重新训练和更新了 SAM 2 Mask 两次。在第 2 阶段我们收集了 63.5K 个掩码。注释时间降至 7.4 秒/帧比第 1 阶段速度提高了约 5.1 倍。尽管注释时间有所改善但这种解耦方法需要从头开始注释中间帧中的掩码而无需先前的记忆。然后我们进一步开发了功能齐全的 SAM 2能够在统一模型中执行交互式图像分割和掩码传播。第 3 阶段SAM 2。在最后阶段我们使用功能齐全的 SAM 2它可以接受各种类型的提示包括点和掩码。SAM 2 受益于跨时间维度的物体记忆来生成掩码预测。这意味着注释者只需偶尔向 SAM 2 提供细化点击即可编辑中间帧中的预测掩码而不是使用没有此类记忆上下文的空间 SAM 从头开始注释。在第 3 阶段我们使用收集到的注释对 SAM 2 进行了五次重新训练和更新。在 SAM 2 循环中每帧的注释时间缩短至 4.5 秒比第 1 阶段快了 8.4 倍。在第 3 阶段我们收集了 197.0K 个掩码。质量验证。为了保持注释的高标准我们引入了一个验证步骤。一组单独的注释者负责验证每个注释的 masklet 的质量是“满意”在所有帧中正确且一致地跟踪目标对象还是“不满意”目标对象定义明确边界清晰但 masklet 不正确或不一致。不满意的 masklet 被送回注释管道进行改进。任何跟踪定义不明确的对象的 masklet 都被完全拒绝。自动生成 masklet。确保注释的多样性对于实现我们模型的任何功能都很重要。由于人类注释者通常可能更关注显著对象我们使用自动生成的 masklet称为“自动”来增强注释。这具有双重目的既可以增加注释的覆盖范围又可以帮助识别模型失败案例。为了生成自动 masklet我们在第一帧中用规则的点网格提示 SAM 2并生成候选 masklet。然后将它们发送到 masklet 验证步骤进行筛选。标记为“满意”的自动 masklet 被添加到 SA-V 数据集中。被标识为“不满意”即模型失败案例的 masklet 被采样并呈现给注释者以便在循环中使用 SAM 2 进行改进数据引擎的第 3 阶段。这些自动 masklet 不仅覆盖了大型显著中心对象还覆盖了背景中大小和位置各异的对象。分析。表 1 显示了通过受控实验对每个数据引擎阶段中的注释协议进行的比较详见 §D.2.2。我们比较了每帧的平均注释时间、每个 masklet 手动编辑帧的平均百分比以及每点击帧的平均点击次数。对于质量评估我们将第 1 阶段的掩模对齐分数定义为与第 1 阶段中相应掩模相比 IoU 超过 0.75 的掩模百分比。选择第 1 阶段的数据作为参考因为它具有每帧高质量的手动注释。第 3 阶段在循环中使用 SAM 2 可提高效率并实现可比质量它比第 1 阶段快 8.4 倍每帧编辑帧百分比和点击次数最低并且对齐效果更好。![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_urlC%3A%5CUsers%5Cseuic%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-.pngpos_idimg-bxAz2ql4-1788856108584)表 1 数据引擎阶段的演变显示了每帧的平均注释时间、每个 masklet 编辑帧的平均百分比、每个点击帧的手动点击次数以及按 mask 大小与阶段 1 的 mask 对齐。在表 2 中我们展示了在每个阶段结束时使用可用数据训练的 SAM 2 的性能比较迭代次数保持不变因此仅衡量额外数据的影响。我们在自己的 SA-V 验证集以及 9 个零样本基准详情请参阅 §E.1上进行评估使用标准 JF 准确度指标越高越好在第一帧上单击 3 次进行提示。 我们注意到在迭代地包含每个阶段的数据后不仅在域内 SA-V 验证集上而且在 9 个零样本基准上都出现了持续的改进。表 2 通过添加来自每个数据引擎阶段的数据来提高分割准确率J 和 F 指标。“VOS”是一组视频对象分割数据集。详细信息请参见 §E。SA-V dataset使用我们的数据引擎收集的 SA-V 数据集包含 50.9K 个视频和 642.6K 个 masklet。在表 3 中我们将 SA-V 组成与常见 VOS 数据集在视频、masklet 和 mask 数量方面进行了比较。 值得注意的是带注释的 mask 数量比任何现有 VOS 数据集都多 53 倍不带 auto 时为 15 倍为未来工作提供了大量资源。我们将根据宽松的许可发布 SA-V。表 3 我们的数据集与开源 VOS 数据集在视频数量、持续时间、masklet 数量、mask、帧数和消失率方面的比较。SA-V Manual 仅包含手动注释的标签。SA-V ManualAuto 将手动注释的标签与自动生成的 masklet 相结合。视频。我们收集了一组由众包工作者拍摄的 50.9K 个新视频。视频包含 54% 的室内场景和 46% 的室外场景平均时长为 14 秒。视频呈现了“野外”的多样化环境涵盖了各种日常场景。我们的数据集比现有的 VOS 数据集包含更多的视频如图 5 所示视频涵盖了 47 个国家/地区由不同的参与者自我报告的人口统计数据拍摄。图 5 数据集分布amasklets 大小分布按视频分辨率标准化、b视频的地理多样性以及c录制视频的众包工作者自我报告的人口统计数据。marklets。注释包括使用我们的数据引擎收集的 190.9K 个手动掩模片注释和 451.7K 个自动掩模片。图 4 显示了叠加了掩模片的示例视频手动和自动。SA-V 的掩模比最大的 VOS 数据集多 53 倍没有自动注释时为 15 倍。SA-V 手册中的消失率在至少一帧中消失然后重新出现的带注释掩模片的百分比为 42.5%在现有数据集中具有竞争力。图 5a 显示了与 DAVIS、MOSE 和 YouTubeVOS 的掩模尺寸分布按视频分辨率标准化的比较。 超过 88% 的 SA-V 掩模的标准化掩模面积小于 0.1。图 4 SA-V 数据集中叠加了 masklet 的示例视频手动和自动。每个 masklet 都有独特的颜色每行代表一个视频中的帧每个帧之间间隔 1 秒。SA-V 训练、验证和测试分割。我们根据视频作者及其地理位置对 SA-V 进行分割以确保相似对象的重叠最小。为了创建 SA-V 验证和 SA-V 测试集我们在选择视频时专注于具有挑战性的场景并要求注释者识别快速移动、被其他物体复杂遮挡以及消失/重新出现模式的具有挑战性的目标。这些目标使用 §5.1 中的数据引擎第 1 阶段设置以 6 FPS 进行注释。SA-V 验证分割中有 293 个 masklet 和 155 个视频SA-V 测试分割中有 278 个 masklet 和 150 个视频。内部数据集。我们还使用了内部可用的授权视频数据来进一步扩充我们的训练集。 我们的内部数据集包括第 2 阶段和第 3 阶段注释的 62.9K 个视频和 69.6K 个 masklet参见 §5.1用于训练以及使用第 1 阶段注释的 96 个视频和 189 个 masklet 用于测试内部测试。有关数据引擎和 SA-V 数据集的更多详细信息请参阅附录 D。Zero-shot experiments在这里我们将 SAM 2 与之前在零样本视频任务§6.1和图像任务§6.2上的工作进行了比较。我们报告了视频的标准 J F 指标 和图像任务的 mIoU 指标。除非另有说明本节中报告的结果遵循我们的默认设置使用分辨率为 1024 的 Hiera-B 图像编码器并在表 7 中的完整数据集组合即 SAM 2 (Hiera-B)上进行训练详情另见 §C.2。表 7 VOS 与先前工作的比较。SAM 2 在基于第一帧 GT 掩码提示的视频分割方面在准确度J F、G和速度FPS方面表现良好。SAM 2 在 SA-V val/test 上的表现明显更好。 所有 FPS 估计值均基于 A100 GPU。除我们的模型之外的其他模型的 FPS 估计值取自 Putting the object back into video object segmentation。Video tasksPromptable video segmentation我们首先评估可提示视频分割这涉及模拟与用户体验相似的交互式设置。我们有两种设置离线评估即对视频进行多次遍历以根据最大模型误差选择要交互的帧在线评估即在一次前向遍历视频时对帧进行注释。这些评估是在 9 个密集注释的零样本视频数据集上使用 Nclick 每帧 3 次点击进行的有关详细信息请参阅 §E.1。我们基于两个最先进的视频对象分割模型 XMem和 Cutie 创建了两个强大的基线SAMXMem 和 SAMCutie。我们使用 XMem 根据一个或多个帧上的掩码输入生成视频分割。SAM 用于提供初始掩码或细化输出通过将当前分割作为掩码提示提供给 SAM。对于 SAMCutie 基线我们修改了 Cutie 以允许在多个帧上获取掩码输入。在图 6 中我们报告了 Nframe 1, . . . , 8 个交互帧的平均 J F 准确率。无论是离线还是在线评估设置SAM 2 的表现都优于 SAMXMem 和 SAMCutie。在所有 9 个数据集中参见 §E.1 中每个数据集的结果SAM 2 都优于这两种方法这证实了 SAM 2 能够通过几次点击生成高质量的视频分割同时还允许通过进一步的提示继续细化结果。总体而言SAM 2 可以生成更好的分割准确率交互次数减少了 3 倍以上。图 6 在交互式离线和在线评估设置中 9 个数据集的零样本准确率。Semi-supervised video object segmentation接下来我们评估半监督视频对象分割 (VOS) 设置 仅在视频的第一帧上使用点击、框或蒙版提示。使用点击提示时我们会在第一视频帧上以交互方式采样 1、3 或 5 次点击然后根据这些点击跟踪对象。与 §6.1.1 中的交互式设置类似我们与 XMem 和 Cutie 进行比较使用 SAM 进行点击和框提示并在使用掩码提示时使用其默认设置。我们报告标准 J F 准确度但 VOST除外我们按照其协议报告 J 指标。结果见表 4。使用各种输入提示SAM 2 在 17 个数据集上的表现均优于两个基线。结果强调SAM 2 在具有掩码输入的传统非交互式 VOS 任务中也表现出色这些其他作品是专门为此设计的。更多详细信息请参见 §E.1.3。表 4 使用不同提示在半监督 VOS 评估下对 17 个视频数据集的零样本准确率。 该表显示了第一个视频帧中每种提示类型1、3 或 5 次点击、边界框或地面实况掩码的平均 J F‡在这种情况下我们直接使用掩码作为 XMem 或 Cutie 的输入而不使用 SAM。Fairness evaluation我们评估 SAM 2 在各个人口群体中的公平性。 我们在 EgoExo4D 数据集中收集了人物类别的注释其中包含视频主体提供的自我报告的人口统计信息。我们采用与 SA-V 验证集和测试集相同的注释设置并将其应用于第三人称 (exo) 视频的 20 秒剪辑。我们使用第一帧上的 1 次、3 次点击和地面实况掩码来评估此数据上的 SAM 2。表 5 显示了 SAM 2 在跨性别和年龄分割人物时的 J F 准确度比较。在 3 次点击和使用真实蒙版提示时差异很小。我们手动检查 1 次点击预测发现模型经常预测某个部位的蒙版而不是人物。当将比较限制在人物被正确分割的剪辑上时1 次点击的差距大幅缩小J F 男性 94.3女性 92.7这表明差异可以部分归因于提示中的歧义。在附录 G 中我们提供了 SA-V 的模型、数据和注释卡。表 5 SAM 2在 JF 度量下对受保护人口群体的公平性评估。Image tasks我们在 37 个零样本数据集上对 SAM 2 的 Segment Anything 任务进行了评估其中包括 SAM 之前用于评估的 23 个数据集。表 6 报告了 1 次点击和 5 次点击的 mIoU我们在单个 A100 GPU 上按数据集域和模型速度以每秒帧数 (FPS) 为单位显示了平均 mIoU。表 6 37 个数据集上 Segment Anything (SA) 任务的零样本准确率。该表显示了 SAM 2 与 SAM 在各个领域图像/视频的平均 1 次和 5 次点击 mIoU 对比。我们报告了 SAM (SA-23) 使用的 23 个数据集的平均指标以及 14 个额外零样本视频数据集的平均指标详见 §E.3。第一列SA-23 All显示了 SAM 的 23 个数据集的准确率。SAM 2 的准确率1 次点击 58.9 mIoU高于 SAM1 次点击 58.1 mIoU并且无需使用任何额外数据同时速度提高了 6 倍。这主要归功于 SAM 2 中更小但更有效的 Hiera 图像编码器。底部一行显示了在我们的 SA-1B 和视频数据组合上进行训练如何进一步将 23 个数据集的平均准确率提高到 61.4%。我们还看到 SA-23视频数据集以图像形式评估和我们添加的 14 个新视频数据集的视频基准测试取得了显著的进步。总体而言研究结果凸显了 SAM 2 在交互式视频和图像分割方面的双重能力这一优势源自我们涵盖视觉领域视频和静态图像的多样化训练数据。更详细的结果包括按数据集细分请参见§E.3。Comparison to state-of-the-art in semi-supervised VOS我们主要关注的是通用的交互式 PVS 任务但我们也解决了特定的半监督 VOS 设置其中提示是第一帧上的地面实况掩码因为它是一种历史上常见的协议。我们在表 7 中展示了与现有最先进技术的比较报告了使用标准协议的准确性。我们评估了具有不同图像编码器大小Hiera-B/-L的两个版本的 SAM 2并进行了不同的速度与准确性权衡。SAM 2 在准确性和推理速度最后一列显示的 FPS方面都比现有最佳方法有显著的改进。为了获得最佳整体效果我们观察到使用更大的图像编码器可以全面显著提高准确性。表 7 VOS 与先前工作的比较。SAM 2 在基于第一帧地面实况掩码提示的视频分割方面在准确度J F、G和速度FPS方面表现良好。SAM 2 在 SA-V val/test 上的表现明显更好。 所有 FPS 估计值均基于 A100 GPU。除我们的模型之外的其他模型的 FPS 估计值取自 Putting the object back into video object segmentation。我们还评估了 SA-V 验证集和测试集上的现有工作这些工作衡量了“任何”对象类的开放世界片段的性能。当与此基准进行比较时我们发现大多数以前的方法的峰值准确度大致相同。以前工作在 SA-V 验证集和 SA-V 测试中的最佳性能明显较低这表明与“分割视频中的任何内容”能力存在差距。最后我们看到 SAM 2 还在长期视频对象分割方面取得了显着的进步如 LVOS 基准测试结果所示。Data and model ablations本节介绍了为 SAM 2 的设计决策提供参考的消融。我们对我们的 MOSE 开发集“MOSE dev”进行了评估该集包含从 MOSE 训练分割中随机抽取的 200 个视频这些视频从我们的消融、SA-V val 和 9 个零样本视频数据集的平均值中排除。作为比较指标我们报告第一帧 3 次点击输入下的 J F作为 1 次点击方案和 VOS 样式掩码提示之间的平衡。此外我们报告了 SAM 用于图像 SA 任务的 23 个数据集基准上的平均 1 次点击 mIoU。除非另有说明否则我们以 512 分辨率和 SA-V 手册以及 SA-1B 的 10% 子集运行消融。更多详细信息请参阅 §C.2。Data ablations数据混合消融。在表 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在内的所有其他数据集上表现不佳。表 8 我们在不同的数据混合上训练我们的模型包括 VOSDavis、MOSE、YouTubeVOS以及内部训练、SA-V 和 SA-1B 的子集。我们报告在 SA-V val 和内部测试、MOSE 和 9 个零样本数据集上在第一帧中点击 3 次时的 J F 准确率以及在 SA-23 数据集上的平均 1 次点击 mIoU。我们观察到将我们的数据引擎数据添加到训练组合中会带来巨大的好处包括 9 个零样本数据集第 11 行 vs. 第 1 行上的平均性能提升 12.1%。这可以归因于 VOS 数据集的有限覆盖范围和大小。添加 SA-1B 图像可提高图像分割任务的性能第 3 行 vs. 第 4 行、第 5 行 vs. 第 6 行、第 9 行 vs. 第 10 行、第 11 行 vs. 第 12 行而不会降低 VOS 能力。仅在 SA-V 和 SA-1B第 4 行上进行训练足以在除 MOSE 之外的所有基准测试中获得强劲的性能。 总体而言我们在混合所有数据集时获得了最佳结果VOS、SA-1B 和我们的数据引擎数据第 12 行。数据量消融。接下来我们研究缩放训练数据的影响。SAM 2 在 SA-1B 上进行预训练然后在不同大小的 SA-V 上进行训练。我们报告了 3 个基准的平均 J F 分数在第一帧中提示 3 次点击时SA-V val、零样本和 MOSE dev。图 7 显示了所有基准上训练数据量与视频分割准确率之间的一致幂律关系。图 7 SAM 2 的性能与 SA-V 量的关系。我们报告了 SA-V val左、9 个零样本数据集中和 MOSE dev右上第一帧中 3 次点击提示的 JF 准确率。数据质量消融。在表 9 中我们试验了质量过滤策略。我们从 SA-V 中对 50k 个 masklet 进行子采样可以是随机的也可以是注释者编辑最多的 masklet。 基于编辑帧数的过滤仅使用 25% 的数据就能获得出色的性能并且优于随机采样。但是它比使用所有 190k 个 SA-V masklet 更差。表 9 我们在 SA-V 手册数据的不同子集上训练我们的模型50k 个随机采样的 masklet、50k 个包含最多编辑帧的 masklet 和完整的 SA-V 数据集190k 个 masklet。Model architecture ablations这里我们展示了指导设计决策的模型简化。我们报告了视频 (J F) 和图像 (mIoU) 任务的分割准确度以及视频分割速度 (FPS)。我们发现图像和视频组件的设计选择在很大程度上是分离的——这可以归因于我们的模块化设计和训练策略。、表 10 容量消融。我们根据输入大小分辨率、帧数、内存大小内存数量、内存通道暗淡和模型大小内存注意、图像编码器消融建模容量。消融默认为灰色。Capacity ablations输入大小。在训练期间我们采样固定分辨率和固定长度的帧序列此处用 # 帧表示。我们在表 10a、10b 中消除了它们的影响。更高的分辨率可显著改善图像和视频任务。增加帧数可显著提高视频基准测试的准确性我们使用默认值 8 来平衡速度和准确性。内存大小。增加最大内存数量 N 通常有助于提高性能尽管可能会有一些差异如表 10c 所示。我们使用默认值 6 个过去帧来在时间上下文长度和计算成本之间取得平衡。使用较少的内存通道不会导致性能下降如表 10d 所示同时使存储所需的内存减少 4 倍。模型大小。主干或记忆注意的容量越大结果就越好如表 10e、10f 所示。扩展主干可以提高图像和视频指标而扩展记忆注意只会改善视频指标。我们默认使用 B 主干它在速度和准确性之间提供了合理的平衡我们注意到即使使用 B 主干SAM 2 也已经能够显著胜过 SAM ViT-H见表 6。Relative positional encoding默认情况下我们始终在图像编码器和内存注意中使用绝对位置编码。 在本节中我们研究相对位置编码设计选择。在这里我们还对 LVOSv2 进行了评估在第一帧上进行了 3 次点击作为长期视频对象分割的基准。SAM 效仿 【Exploring plain vision transformer backbones for object detection】 的做法在所有骨干层中添加相对位置偏差 (RPB)而 Bolya 等人 则在此基础上进行了改进移除了除全局注意层之外的所有 RPB同时采用了“绝对获胜”位置编码从而显著提高了速度。我们进一步改进了这一点从骨干层中移除了所有 RPB在 SA-23 上没有性能回归在视频基准测试中回归最小见表 11同时在 1024 分辨率下显著提高了速度。我们还发现在记忆注意中使用 2d-RoPE 是有益的。表 11 相对位置编码。我们在内存注意中使用 2d-RoPE同时默认从图像编码器中删除 RPB灰色。尽管此表中 512 分辨率下的 FPS 相似但删除 RPB 允许我们启用 FlashAttention-2 这在 1024 分辨率下可显着提高速度。在 1024 的更高分辨率下2d-RoPE第 1 行和无 RoPE 基线第 3 行之间的 FPS 差距变得更小。Memory architecture ablations循环记忆。我们研究了将记忆特征输入 GRU 然后再将其添加到记忆库的有效性。与 §8.2.2 类似我们还对 LVOSv2 进行了评估将其作为长期对象分割的额外基准。虽然先前的研究通常使用 GRU 状态作为将记忆纳入跟踪过程的一种手段但我们在表 12 中的发现表明这种方法并没有带来任何改进LVOSv2 略有改进。相反我们发现将记忆特征直接存储在记忆库中就足够了这既简单又高效。表 12 内存设计上的改进。我们默认使用对象指针灰色并研究循环 GRU 内存。对象指针。我们从其他帧中的掩码解码器输出中消除了交叉关注对象指针向量的影响参见 §4。表 12 中显示的结果表明虽然交叉关注对象指针不会提高 9 个零样本数据集的平均性能但它显著提高了 SA-V val 数据集以及具有挑战性的 LVOSv2 基准验证分割上的性能。因此我们默认将对象指针与存储库一起交叉关注。Conclusion我们基于三个关键方面展示了 Segment Anything 在视频领域的自然演进(i) 将可提示的分割任务扩展到视频(ii) 使 SAM 架构能够在应用于视频时使用内存以及 (iii) 用于训练和基准测试视频分割的多样化 SA-V 数据集。 我们相信 SAM 2 标志着视觉感知领域的重大进步将我们的贡献定位为里程碑将推动该领域的进一步研究和应用。A Details on the PVS Task可提示的视觉分割 (PVS) 任务可以看作是分割任何内容 (SA) 任务从静态图像到视频的扩展。在 PVS 设置中给定一个输入视频模型可以对视频中的任何帧进行不同类型的输入包括点击、框或蒙版的交互提示目的是分割和跟踪整个视频中的有效对象。在与视频交互时模型会在被提示的帧上提供即时响应类似于 SAM 在图像上的交互式体验并且还会近乎实时地返回整个视频中对象的分割。与 SAM 类似重点是具有明确边界的有效对象我们不考虑没有视觉边界的区域。图 8 说明了该任务。图 8 可提示的视觉分割任务 (PVS) 的图示。之前研究过的任务如分割任何事物 (SA) 和半监督视频对象分割 (VOS) 可以看作是 PVS 任务的特殊情况。PVS 与静态图像和视频领域的多项任务相关。在图像上SA 任务可以被视为 PVS 的一个子集视频被缩减为单帧。同样传统的半监督和交互式 VOS任务是 PVS 的特殊情况分别仅限于在第一帧上提供的掩码提示和在多个帧上涂鸦以在整个视频中分割对象。 在 PVS 中提示可以是点击、掩码或框重点是增强交互式体验从而能够以最少的交互轻松细化对象的分割。B LimitationsSAM 2 在静态图像和视频领域都表现出色但在某些情况下会遇到困难。该模型可能无法在镜头变化时分割物体并且在拥挤的场景、长时间遮挡后或延长的视频中可能会丢失或混淆物体。为了缓解这个问题我们设计了在任何帧中提示 SAM 2 的功能如果模型丢失物体或出错在大多数情况下对其他帧的细化点击可以快速恢复正确的预测。SAM 2 还难以准确跟踪细节非常细小或精细的物体尤其是在它们快速移动时。另一个具有挑战性的场景是附近有外观相似的物体例如多个相同的杂耍球。将更明确的运动建模纳入 SAM 2 可以减轻此类情况下的错误。虽然 SAM 2 可以同时跟踪视频中的多个对象但 SAM 2 会单独处理每个对象仅使用共享的每帧嵌入而无需对象间通信。虽然这种方法很简单但结合共享的对象级上下文信息可以帮助提高效率。我们的数据引擎依靠人工注释者来验证 masklet 质量并选择需要校正的帧。 未来的发展可能包括自动化此过程以提高效率。C SAM 2 detailsC.1 Architecture在这里我们讨论进一步的架构细节扩展§4 中的模型描述。图像编码器。我们使用特征金字塔网络 融合来自 Hiera 图像编码器第 3 阶段和第 4 阶段的步长 16 和 32 特征以生成每个帧的图像嵌入。此外第 1 阶段和第 2 阶段的步长 4 和 8 特征未用于记忆注意而是添加到掩码解码器中的上采样层如图 9 所示这有助于生成高分辨率分割细节。我们遵循 【Window attention is bugged: How not to interpolate position embeddings】 在 Hiera 图像编码器中使用窗口绝对位置嵌入。RPB 提供了跨主干中窗口的位置信息取而代之的是我们采用一种更简单的方法即插值全局位置嵌入以跨窗口。我们不使用任何相对位置编码。我们训练具有不同图像编码器大小的模型——T、S、B 和 L。仅在图像编码器层的子集中使用全局注意力见表 13。表 13 SAM 2 预训练和完整训练的超参数和详细信息。请注意某些设置会随图像编码器大小T、S、B、L而变化。图 9 掩码解码器架构。该设计主要遵循 SAM我们在上采样期间还包含来自图像编码器的步幅 4 和步幅 8 特征。我们还使用与输出掩码相对应的掩码标记作为对象指针并生成遮挡分数该分数指示感兴趣的对象在当前帧中是否可见。记忆注意。除了正弦绝对位置嵌入之外我们还在自注意和交叉注意层中使用 2d 空间旋转位置嵌入 (RoPE) 。对象指针标记被排除在 RoPE 之外因为它们没有特定的空间对应关系。默认情况下记忆注意使用 L 4 层。提示编码器和掩码解码器。提示编码器设计遵循 SAM接下来我们将讨论掩码解码器设计变更的更多细节。我们使用与输出掩码对应的掩码标记作为帧的对象指针标记该标记放置在存储库中。如第 4 节所述我们还引入了一个遮挡预测头。这是通过在掩码和 IoU 输出标记中添加一个附加标记来实现的。将一个附加 MLP 头应用于这个新标记以产生一个分数该分数指示感兴趣的对象在当前帧中可见的可能性如图 9 所示。SAM 引入了在图像中分割对象存在歧义时输出多个有效掩码的功能。例如当一个人点击自行车轮胎时模型可以将这次点击解释为仅指轮胎或整辆自行车并输出多个预测。在视频中这种歧义可以扩展到视频帧中。例如如果在一帧中只有轮胎可见则点击轮胎可能仅与轮胎有关或者随着自行车的更多部分在后续帧中变得可见这次点击可能是针对整辆自行车的。为了处理这种歧义SAM 2 在视频的每个步骤中预测多个掩码。如果进一步的提示不能解决歧义模型将选择当前帧中预测 IoU 最高的掩码以在视频中进一步传播。记忆编码器和记忆库。我们的记忆编码器不使用额外的图像编码器而是重用 Hiera 编码器生成的图像嵌入并将其与预测的掩码信息融合以生成记忆特征如第 4 节所述。这种设计允许记忆特征受益于图像编码器生成的强表示尤其是当我们将图像编码器缩放到更大尺寸时。此外我们将记忆库中的记忆特征投影到 64 维并将 256 维对象指针拆分为 4 个 64 维标记以便交叉注意记忆库。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。