Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

网友:真正的OpenAI

明敏 发自 凹非寺

量子位 | 公众号 QbitAI

又是发布即开源!

Meta“分割一切AI”二代SAM2在SIGGRAPH上刚刚亮相。

相较于上一代,它的能力从图像分割拓展到视频分割

可实时处理任意长视频,视频中没见过的对象也能轻松分割追踪。

Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

更关键的是,模型代码、权重以及数据集通通开源!

它和Llama系列一样遵循Apache 2.0许可协议,并根据BSD-3许可分享评估代码。

网友yygq:我就问OpenAI尴尬不尴尬。

Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

Meta表示,此次开源的数据集包含51000个真实世界视频和600000个时空掩码(masklets,spatio-temporal masks),规模远超此前最大同类数据集。

可在线试玩的demo也同步上线,大家都能来体验。

Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

在SAM之上加入记忆模块

相较于SAM一代,SAM2的能力升级主要有:

  • 支持任意长视频实时分割
  • 实现zero-shot泛化
  • 分割和追踪准确性提升
  • 解决遮挡问题
Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

它进行交互式分割的过程主要分为两步:选择和细化。

在第一帧中,用户通过点击来选择目标对象,SAM2根据点击自动将分割传播到后续帧,形成时空掩码。

如果SAM2在某些帧中丢失了目标对象,用户可以通过在新一帧中提供额外的提示来进行校正。

如果在第三帧中需要需要恢复对象,只需在该帧中点击即可。

Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

SAM2的核心思路是将图像视作单帧视频,因此可以从SAM直接扩展至视频领域,同时支持图像和视频输入。

处理视频唯一的区别在于,模型需要依赖内存来回忆处理过的信息,以便在当前时间步长上准确分割对象。

与图像分割相比,视频分割中,物体的运动、变形、遮挡和光线等都会发生强烈变化。同时分割视频中的对象需要了解实体跨越空间和时间的位置。

Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

所以Meta主要做了三部分工作:

  • 设计一个可提示的视觉分割任务
  • 在SAM基础上设计新模型
  • 构建SA-V数据集
Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

首先,团队设计了一个视觉分割任务,将图像分割任务推广到视频领域。

SAM被训练成以图像中的输入点、框或掩码来定义目标并预测分割掩码(segmentation mask)。

然后训练SAM在视频的任意帧中接受prompt来定义要预测的时空掩码(masklet)。

SAM2根据输入提示对当前帧上的掩码进行即时预测,并进行临时传播,在所有帧上都可生成目标对象的掩码。

一旦预测到初始掩码,就可以通过任何帧中向SAM2提供额外提示来进行迭代改进,它可以根据需要重复多次,直到获取到所有掩码。

Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

通过引入流式记忆(streaming memory),模型可以实时处理视频,还能更加准确分割和跟踪目标对象。

它由记忆编码器、记忆库和记忆注意力模块组成。让模型一次只处理一帧图像,利用先前帧信息辅助当前帧的分割任务。

分割图像时,内存组件为空,模型和SAM类似。分割视频时,记忆组件能够存储对象信息以及先前的交互信息,从而使得SAM2可以在整个视频中进行掩码预测。

如果在其他帧上有了额外提示,SAM2可以根据目标对象的存储记忆进行纠错。

记忆编码器根据当前预测创建记忆,记忆库保留有关视频目标对象过去预测的信息。记忆注意力机制通过条件化当前帧特征,并根据过去帧的特征调整以产生嵌入,然后将其传递到掩码解码器以生成该帧的掩码预测,后续帧不断重复此操作。

Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

这种设计也允许模型可以处理任意时长的视频,不仅对于SA-V数据集的注释收集很重要,也对于机器人等领域应有有影响。

如果被分割对象比较模糊,SAM2还会输出多个有效掩码。比如用户点击了自行车的轮胎,模型可以将此理解为多种掩码,可能是指轮胎、可能是指自行车全部,并输出多个预测。

在视频中,如果在一帧图像中仅有轮胎可见,那么可能需要分割的是轮胎;如果视频后续帧中很多都出现了自行车,那么可能需要分割的是自行车。

如果还是不能判断用户到底想分割哪个部分,模型会按照置信度进行选择。

此外,视频中还容易出现分割对象被遮挡的情况。为了解决这个新情况,SAM2还增加了一个额外的模型输出“遮挡头”(occlusion head),用来预测对象是否出现在当前帧上。

Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

此外,在数据集方面。

SA-V中包含的视频数量是现有最大同类数据集的4.5倍,注释量则是53倍。

Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

为了收集到如此多的数据,研究团队构建了一个数据引擎。人工会利用SAM2在视频中注释时空掩码,然后将新的注释用来更新SAM2。多次重复这一循环,就能不断迭代数据集和模型。

和SAM相似,研究团队不对注释的时空掩码进行语义约束,而是更加关注完整的物体。

这一方法让收集视频对象分割掩码速度也大幅提升,比SAM快8.4倍。

解决过度分割、超越SOTA

对比来看,使用SAM2可以很好解决过度分割的问题。

Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

实验数据显示,和半监督SOTA方法比较,SAM2各项性能都表现不错。

Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

不过研究团队也表示,SAM2还有不足。

比如可能会跟丢对象。如果相机视角变化大、在比较拥挤的场景里,就容易出现这类情况。所以他们设计了实时交互的模式,支持手动修正。

Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

以及目标对象移动过快,可能会细节上有缺失。

Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

最后,模型不仅开源支持免费使用,并已在Amazon SageMaker 等平台上托管。

值得一提的是,有人发现论文中提到SAM2训练是在256块A100上耗时108小时完成,对比SAM1则花了68小时。

从图像分割扩展到视频领域,成本如此低?

Meta「分割一切」进化2.0!跟踪运动物体,代码权重数据集全开源

参考链接:
[1]https://ai.meta.com/blog/segment-anything-2/
[2]https://x.com/swyx/status/1818074658299855262

版权所有,未经授权不得以任何形式转载及使用,违者必究。