实用指南:SAM2视频分割讨论

围绕视频分割模型展开了深入探讨,详细介绍了模型的研究背景、面临的挑战、核心解决方案、具体结构与工作流程等内容,旨在让参会者全面理解该模型的技术细节与应用价值。以下是会议内容的详细总结:

一、研究背景与意义

(一)多模态技术发展趋势

随着人工智能技巧的不断演进,多模态工艺成为研究热点并发展迅速。相较于静态的图像信息,视频作为一种含有时序维度的视觉任务,能够承载更丰富、更复杂的信息,更能满足多模态技术的应用需求。

2023 年 4 月,相关研究就已关注到这一趋势,提出在处理视觉任务时,不应局限于静止的图像,而应转向视频任务,通过增加时序维度(即引入类似视频的资料),充分发挥多模态技术的优势。

(二)广泛的应用场景

该技术具有极高的应用价值,在多个领域都有广阔的应用前景。例如,在 2024 年的世界人文大会上,众多展馆都展示了基于该技术的巨身智能应用,能够让机器人完成全身运动,同时具备视觉、听觉等多种能力,这些都是多模态技术在实际场景中的具体体现。此外,在 AR、VR、机器人等领域,该科技也能发挥重要作用。

二、视频分割面临的挑战

(一)实体捕捉难度大

在视频分割过程中,由于视频是由连续的帧组成,需要对每一帧中的实体进行捕捉,但存在诸多因素导致捕捉难度增加。比如摄像头可能发生移动,物体可能出现变形、遮挡,光照条件也可能突然发生变化等,这些都会使得实体追踪变得困难。

(二)视频帧质量难题

视频是连续拍摄的,每一帧的质量往往不如单独的一张图像,可能存在低分辨率等疑问,这会对分割效果产生不利影响。

(三)数据处理与结构设计矛盾

视频分割需要处理大量的帧数据,这就对模型的结构设计提出了挑战。如果模型结构过于复杂,会难以达到实时处理的效果;而若过度简化结构,又可能影响分割精度。因此,如何在结构简化和效果保证之间找到平衡,是视频分割领域应该应对的关键问题。

三、解决方案与模型提出

(一)SM2 模型的提出

为应对上述挑战,在原有图像版本分割模型的基础上,提出了 SM2 模型。该模型专门用于处理视频相关任务,同时也能兼容图像任务,将图像视为单帧的视频进行处理。

(二)PVS 任务

PVS(待提示的视觉分割任务)是当前视频分割领域的主流任务,它将原始的分割任务拓展到视频领域。在视频任务中,存在三种提示形式,分别是 points(点)、box(区域)、mask(一堆区域),通过这些提示可以更精准地实现视频分割。

(三)模型的核心优势

  1. 灵活的提示添加通过:该模型并非只能在视频的第一帧添加提示,而是能够在任何一帧添加提示,以表示关注的区域。通过在某一帧添加提示,不仅可能对该帧进行分割,还能对整个序列进行预测。
  2. 校正功能:模型具备校正能力。例如,在第一帧对某个物体(如球)进行提示分割后,若后续帧中该物体的分割出现偏差,可在后面的帧中再次添加提示进行校正,且校正操作会对周围及后续的序列都产生作用,重新校正之前分割不佳的部分。

四、模型结构与核心模块

(一)整体架构

对帧进行特征提取,例如将 1000 帧的图像通过编码器处理后,生成对应的特征图。就是该模型的整体架构是在 ICM(分割图像模型)基础上的泛化,将其应用到视频领域。处理过程中,第一需要对视频中的每一帧图像进行处理,所有视频帧都会先经过一个 embedding 和 encoder(编码器),且所有帧使用的编码器是相同的。编码器的作用

选择所有帧一起借助编码器处理,是因为后续处理需要利用前面帧的信息,通过 memory attention(记忆注意力)实现信息交互,使得当前帧的记忆与前面时刻的信息、之前的提示以及物体运动的轨迹和趋势等相关联。

(二)memory 模块

  1. 核心作用:memory 模块是该模型的关键部分,其主要功能是存储相关特征信息,为序列预测和校正管理提供帮助。借助该模块,能够整合前面的记忆信息,基于这些信息预测下一帧的分割结果。在处理图像任务时,memory 模块为空,无需启用;而在视频任务中,该模块发挥重要作用,是实现视频分割的核心依赖。
  2. 存储内容:memory 模块中存储的特征包括物体自身的信息、物体与前面帧的交互信息以及提示信息。其中,提示信息会被存储在 memory 中,以便模型始终记住初始的指令和关注的对象。
  3. memory bank:memory bank 可理解为存储历史每一帧特征和信息的地方。在处理当前帧时,会通过 memory attention 将之前存储在 memory bank 中的信息聚合过来,与当前帧的特征结合,共同输出当前帧的分割结果。

(三)memory attention 模块

  1. 组成部分:memory attention 由 self attention(自注意力)和 cross attention(交叉注意力)组成。self attention 用于对当前帧自身的特征进行提取和处理;cross attention 则用于从其他特征空间(如前面的序列、提示信息、物体变化趋势等)提取特征,是构建信息交互和整合的关键。
  2. 功能实现:通过 cross attention,模型能够从前面的序列中提取特征,考虑物体的变化趋势,从而更好地预测下一帧的分割结果。例如,在预测当前帧时,cross attention 会参考前面帧的特征、提示信息等,以提高分割的准确性。

(四)提示处理

  1. embedding 操作:所有的提示都得进行 embedding 编码,将其转化为向量形式,以便模型进行处理。对于点(points)和框(box)形式的提示,直接进行 embedding 操控,就像在文本任务中对词语进行编码一样;对于序列形式的提示(如 mask,由多个散点组成),则先进行卷积操控得到特征,再进行 embedding 操作。
  2. 提示的作用:提示经过编码后,会与图像自身的 embedding 特征一起传入 decoder(解码器),为分割结果的生成提供依据。在第一帧中,提示的 embedding 与图像自身的 embedding 共同作用,输出第一帧的分割结果。

五、模型具体工作流程

(一)encoder 阶段

  1. 预处理与特征提取:输入的视频帧首先会进行预处理,如标准化处理等。然后通过 FPN(特征金字塔网络)执行提取多层级特征,这是当前多数相关论文中都会采用的方法,能够得到不同层级大小的特征图(例如 256×256、128×128、64×64 等),后续处理会利用到这些不同层级的特征信息。
  2. 批量处理:模型会一口气对所有输入的视频帧进行特征提取,得到每一帧的特征图,为后续的处理奠定基础。

(二)第一帧处理

  1. 提示添加与 condition:第一帧在代码中被称为 “add points”,会添加提示信息,该帧被称为 “condition” 帧,即带有提示的帧。例如,在第一帧中标记出关注的对象(如一个人的头部)。
  2. decoder 处理:由于第一帧没有前面的记忆信息,所以直接进入 decoder 进行处理,输出 mask(分割掩码)结果。传入 decoder 的信息包括第一帧自身的 embedding 特征和提示的 embedding 特征,这与之前的 SM 模型处理方式相同。
  3. memory feature 生成与存储:第一帧输出的 mask 结果会经过多个卷积操作,得到 memory feature(记忆特征)。接着将该 memory feature 与第一帧图像的 embedding 结果进行加法运算,得到的结果会被存储到 memory bank 中,供后续帧处理使用。

(三)后续帧处理

  1. memory attention 整合:后续帧(如第二帧及以后的帧)在处理时,应该考虑前面帧存储在 memory bank 中的信息。通过 memory attention 模块,将当前帧经过 encoder 得到的特征与前面帧的记忆信息进行整合,得到新的 embedding 特征。
  2. decoder 处理与结果输出:整合后的新 embedding 特征进入 decoder,输出当前帧的 mask 结果。同时,当前帧的输出结果也会经过卷积操作得到 memory feature,与当前帧图像的 embedding 结果相加后存入 memory bank,为下一帧的处理给出记忆信息。

(四)cross attention 细节

  1. QKV 来源:在 cross attention 中,query(查询)由当前时刻的 embedding 自身提供,用于获取当前帧的特征;key(键)和 value(值)则由前面整合在 memory bank 中的信息提供,这些信息包括前面帧的三种特征(原始图像的 embedding 特征、输出结果 mask 的特征、基于 mask 得到的 pointers 特征)相加后形成的特征图。
  2. 位置编码:模型在 cross attention 中额外引入了可学习的位置编码。由于前面不同时刻的帧对当前帧的影响不同,通过可学习的位置编码,能够区分不同时刻帧的影响程度,使得模型更好地整合历史信息,提高分割的准确性。

六、其他相关说明

(一)提示添加方式

通过提示需要人工添加,在代码中能够将点作为变量传入,以实现对特定区域的关注和分割引导。

(二)memory bank 取值规则

memory bank 通常采用 “1+6” 的取值方式,即包括 1 帧带提示的 condition 帧和前面 6 帧不带提示的帧的 memory 信息。其中,带提示的 condition 帧起到兜底作用,即使后续帧分割出现偏差,也能基于该帧的信息进行一定的修正。对于前面帧数量不足 6 帧的情况(如第二帧前面只有 1 帧),则仅考虑已有的帧的信息。

(三)源码与论文关系

该模型的论文对技术细节描述较为简略,很多内容需要结合源码才能理解。源码量较大,流程艰难,但涉及的技术点并不难,没有太多复杂的数学理论或难以理解的概念,重要是流程步骤较多,每一张图像的处理都需要考虑多个方面的信息。

(四)视频输入与时序信息

通过模型行处理实时输入的视频流,也能够处理已拍摄好的视频。无论输入形式如何,视频都会被拆解为每一帧图像进行处理,时序信息按照输入的顺序进行体现。

(五)部分手艺的数学解释

实验中的经验总结,并将其命名为 pointer 特征,用于表示物体未来可能的偏移量或运动趋势。就是模型中的部分技术在数学上允许得到一定解释,但也有一些技术更多是基于实验结果得出的。例如,将 mask 结果经过几个卷积层得到 pointer 特征,这一过程难以用明确的数学理论进行解释,更多

七、小结

详细阐述了视频分割模型的相关技术内容,从研究背景、面临的挑战到模型的提出、结构设计和工作流程等方面进行了全面介绍。该模型通过引入 memory 模块、memory attention 模块等创新设计,较好地解决了视频分割中的诸多难题,具备灵活的提示添加和校正功能,在多模态领域具有重要的应用价值。若想深入理解该模型,建议先了解 SM1 和 master to former 相关知识,并结合源码进行学习。

posted @ 2025-08-25 13:04  yfceshi  阅读(37)  评论(0)    收藏  举报