编辑:编辑部
【新智元导读】Meta又双叒开源了!继去年初代SAM掀翻CV圈之后,SAM 2也完成了终极进化,不仅能分割图像,最惊艳的是还能分割视频。这下,CV可能就真的不存在了。今早,CV圈又炸了!
时隔一年多,Meta再次重磅推出「分割一切」2.0基础模型——Segment Anything Model 2(SAM 2)!
与初代SAM最大不同在于,前者主要在图像领域大放异彩,而SAM 2直接冲进了视频分割领域。
这是目前第一个用于图像和视频中实时、快速对象分割的模型。
同样,这个模型依然开源,代码和权重都已在Apache 2.0下发布,完整的数据集SA-V也在CC BY 4.0许可下发布(可以用于商业性质的修改或分发),任何人都可以使用它来构建自己的体验。
仓库地址:https://github.com/facebookresearch/segment-anything-2
继上周开源Llama 3.1 405B模型之后,Meta再次开源,简直就是要把开源进行到底。
刚刚小扎在SIGGRAPH上和老黄对谈时,也带来了SAM 2的视频demo,由自家农场上的牛友情出镜。
同时,官网上放出了看起来更加「高大上」的demo。
可以看到,在零样本的前提下,SAM 2可以实现精准「抠图」。
无论是足球运动员脚下滚动的足球
还是魔术师手中变的戏法
面点师揉搓下案板上姿态随时变化的面团
甚至是游动中的色彩斑斓的鱼
显微镜下的细胞……
SAM 2都能够将它们从图层中清晰无误地分割出来,「分割一切」果然所言非虚!
重要的是,Meta不仅发布了新模型,还一同发布了SA-V数据集。
SA-V数据集包括约51000个真实世界的视频和超过600000个时空mask(masklets),比现有最大的视频分割数据集大4.5倍,注释数量也多了约53倍。
这项工作将极大加速视觉数据的标注过程,帮助建立更好的计算机视觉系统。
不仅如此,「分割一切」模型还有许多其他实际应用。
例如,其输出可以与生成视频模型相结合,创造出新的视频效果,开启新的创意应用,like this—
SAM 2的面世可谓是再一次颠覆了CV。在所有人疯狂卷AI视频的当下,无疑是为视频领域增砖添瓦。
革命性的「分割一切」模型
对象分割,即识别图像中与目标对象对应的像素,是计算机视觉领域的基本任务。
SAM 2将这一任务提升到了一个新的高度——
- 首个用于图像和视频实时对象分割的统一模型
- 准确性和性能均优于现有技术,交互时间只需三分之一
- 分割任何视频中的任何对象,卓越的零样本泛化能力
在SAM发布之前,创建一个准确的对象分割模型需要技术专家进行高度专业化的工作,并需要大量精心标注的数据和 AI 训练基础设施。
但现在,一切都变得不同。
SAM革命性地改变了这一领域,类似于LLM无需定制数据或昂贵调整即可执行多种任务,仅通过提示技术就可实现各种实际场景的图像分割。
追踪物体以创建视频效果(左图),分割从显微镜捕获的视频中移动的细胞以帮助科学研究(右图)
实际上,自SAM推出以来的一年里,该模型已经在各个领域产生了巨大影响。
它启发了Meta应用中的新AI功能,如Instagram上的Backdrop和Cutouts,并催生了科学、医学等多领域的应用。
许多大型数据标注平台已将SAM作为图像对象分割的默认工具,节省了数百万小时的人工标注时间。
SAM 还被用于海洋科学中的声纳图像分割和珊瑚礁分析、用于灾害救援的卫星图像分析以及医学领域的细胞图像分割和皮肤癌检测。
正如Mark Zuckerberg上周在一封公开信中所说,开源 AI「比任何其他现代技术都更有潜力提高人类的生产力、创造力和生活质量」。
此外,作为统一模型,SAM 2还可以无缝应用于图像和视频数据,并扩展到全新的视觉领域。
比如,对于AI学术界而言,SAM 2可以作为通用的多模态大模型用于理解现实世界;对于工业界,它可以用作视觉数据的标注工具,为CV系统(如自动驾驶)提供训练数据。
对内容创作者,SAM 2的快速推理能力能在实时视频或直播领域大放异彩,也可以在视频编辑中实现创意应用,并为生成视频模型添加可控性。
在科学和医学研究领域,SAM 2同样有用,比如在无人机视频中跟踪濒危动物,或在诊疗时定位腹腔镜摄像头中的区域。
Meta团队表示,他们相信这种技术有广泛的应用前景,并期待与AI社区分享,看看大家能构建出什么新奇的应用和发现。
未来,SAM 2可以作为大型人工智能系统的一部分,通过AR眼镜识别日常用品,并向用户发出提醒和指示
论文亮点
有网友乐呵地表示,自己刚刚啃完99页Llama 3.1技术报告,又来了一份41页的论文。
最新论文中,详细介绍了SAM 2的构建过程、评估结果。
开发者swyx挖出了报告中的一些亮点:
SAM 2是在256个A100 GPU上训练了108个小时,SAM在同样的集群上,用了68小时完成训练。
根据Nat Friedman的gpulist,以A100的最高成本2美元/小时来计算,SAM2的训练成本约为5万美元。
SAM 2是一个具有跨帧记忆的Transformer模型!
而在架构中,利用的算法「记忆注意力」(Memory Attention),可以增强模型对视频中物体的追踪能力。
而且,它甚至可以理解物体的「永恒存在性」,精准追踪,即便暂时被其他物体遮挡时。
特殊的「物体指针」(object pointer)token存储在一个「记忆库」中,这个记忆库包含了最近和提示帧的先进先出(FIFO)队列。
另外,全新的SA-V数据集仅包含了5万个视频,特别注重场景/物体/地理多样性,包括标注内容的多样性。
这恰恰说明了,用于训练模型的样本数量非常少,即便如此也不会影响SMA 2本身的性能。
那么,SAM 2具体是如何构建的呢?
如何构建SAM 2
第一代SAM已经学会了,图像中物体的一般概念。
我们可以将图像看作是,只有一帧的极短视频。然而,相较于图像,视觉片段能够表现出更复杂、丰富的现实世界。
当前,许多现实中的应用,皆需要对视频数据进行精准的分割,比如XR混合显示,机器人、自动驾驶、视频编辑等等。
因此,真正的通用分割模型,是可以同时适用于图像和视频。
基于SAM的研究,Meta团队这次直接开发了一个统一模型,可将图像和视频作为输入,无缝切换。
不过研究难点在于,视频的处理,需要LLM依靠「记忆」来回忆之前处理过的信息,以便在准确时间点准确地分割对象。
在视频中,成功分割对象需要理解实体在时间和空间中的位置。
相比图像分割,视频分割面临更多挑战,比如对象运动、变形、遮挡、光照变化等因素,会在帧与帧之间发生显著变化。
再加上,相机运镜,偶尔会出现模糊和较低分辨率,导致视频通常比图像质量更低,增加了分割的难度。
因此,现有的视频分割模型和数据集,在提供「分割一切」的能力方面有所不足。
不过,Meta构建的SAM 2和全新SA-V数据集的过程中,解决了这些挑战。
类似于SAM,研究过程涉及到;设计一个新任务、一个模型和一个数据集,以实现视频分割能力。
他们首先开发了可提示的视觉分割任务,并设计了一个能够执行该任务的模型SAM 2。
然后,再利用SAM 2帮助创建视频对象分割数据集(SA-V),规模比现有任何数据集大一个数量级,并用其来训练 SAM 2以取得SOTA。
可提示视觉分割研究团队设计了一个可提示的视觉分割任务,将图像分割任务推广到视频领域。
SAM被训练为在图像中接受点、框或mask作为输入,以定义目标对象并预测mask。
SAM 2可以在视频的任意帧中接受输入提示,以定义要预测的时空mask(即masklet)。
SAM 2支持在任何视频帧中选择和细化对象
根据输入提示,SAM 2在当前帧上立即预测mask,并临时传播(temporally propagate)它以在所有视频帧上生成目标对象的masklet。
一旦预测出初始masklet,可以通过在任意帧中向SAM 2提供额外的提示来迭代优化它。
这可以根据需要重复多次,直到获得所需的masklet。
统一架构下的图像和视频分割为了在所有视频帧中准确预测mask,Meta引入了一个「记忆机制」,包括记忆编码器、记忆存储库和记忆注意模块。
当应用于图像时,内存组件是空的,模型在此时表现得类似于SAM的第一个版本。
对于视频,记忆组件能够存储该会话中关于对象和先前用户交互的信息,使得SAM 2能够在整个视频中生成masklet 预测。
如果在其他帧上提供了额外的提示,SAM 2可以根据存储的对象记忆上下文有效地纠正其预测。
帧的记忆由记忆编码器基于当前mask预测创建,并放置在记忆存储库中以用于分割后续帧。记忆存储库由前一帧和提示帧的记忆组成。
记忆注意操作从图像编码器获取每帧嵌入,并在记忆存储库上进行条件化以生成嵌入,然后传递给mask解码器以生成该帧的mask预测。这一过程对所有后续帧重复。
Meta采用流处理架构,这是SAM向视频领域的自然推广,一次处理一个视频帧,并在记忆中存储关于分割对象的信息。
在每个新处理的帧上,SAM 2使用记忆注意模块来关注目标对象的前一记忆。这一设计允许实时处理任意长的视频,这不仅对于收集 SA-V 数据集的标注效率很重要,而且对于现实世界的应用(例如机器人技术)也很重要。
SAM引入了在面对图像中对象分割的歧义时输出多个有效mask的能力。
例如,当一个人点击自行车的轮胎时,模型可以将此点击解释为仅指轮胎或整个自行车,并输出多个预测。
在视频中,这种模糊性可以扩展到视频帧。例如,如果在一帧中只有轮胎可见,点击轮胎可能仅与轮胎相关,或者当更多的自行车在后续帧中变得可见时,这次点击可能意图指整个自行车。
为了处理这种歧义,SAM 2在视频的每一步创建多个mask。如果进一步的提示不能解决歧义,模型选择置信度最高的mask以进一步传播到视频中。
在图像分割任务中,给定一个正面提示,总能在帧中找到一个有效的分割对象。
然而在视频中,由于对象可能被遮挡或消失在视野中,某些帧上可能没有有效对象。
为应对这种新情况,Meta增加了一个额外的模型输出(「遮挡头」),用于预测目标对象是否存在于当前帧上。这使得SAM 2能够有效处理遮挡问题。
SA-V:打造最大的视频分割数据集正如之前所述,SA-V是此次SMA 2打造的数据集,有5万个视频素材。
与现有的视频对象分割数据集相比,SA-V所包含的标注数量要多一个数量级,而视频数量则达到了4.5倍。
概括来说,SA-V数据集的亮点包括:
- 超过600,000个masklet 标注,约51,000个视频。
- 视频展示了来自47个国家地区的地理多样的真实世界场景。
- 标注覆盖整个对象、对象部分以及对象被遮挡、消失和重新出现的复杂情况。
将「分割任何东西」的能力扩展到视频领域面临的一个挑战是缺乏足够的标注数据用于训练模型。
目前的视频分割数据集规模较小,无法充分覆盖多样化的对象。现有数据集的标注通常覆盖整个对象(如人),但缺少对象部分(如人的夹克、帽子、鞋子),且数据集通常集中于特定对象类别,如人、车辆和动物。
为了收集一个大型且多样化的视频分割数据集,Meta建立了一个数据引擎,采用了带有人工标注者的交互式模型循环设置。
标注者使用SAM 2交互式地在视频中标注masklet(mask片段),然后将新标注的数据用于更新SAM 2。多次重复这个循环,以迭代地改进模型和数据集。
与SAM类似,Meta不对标注的masklet施加语义约束,专注于整个对象(如一个人)和对象部分(如一个人的帽子)。
Meta表示,使用自家的工具和SAM 2进行循环标注,大约比每帧使用SAM快8.4倍,也显著快于将SAM与现成的追踪器结合使用。
结果
为了创建一个统一的图像和视频分割模型,Meta将图像视为单帧视频,联合训练SAM 2 的图像和视频数据。
Meta利用了去年作为Segment Anything项目一部分发布的SA-1B图像数据集、SA-V数据集以及一个内部授权的视频数据集。
Meta在研究论文中详细说明的关键亮点包括:
- SAM 2在17个零样本(Zero-shot)视频数据集上的交互式视频分割显著优于以往的方法,且所需的人机交互次数减少约三分之二。
- SAM 2在其23个数据集的零样本基准测试套件上优于SAM,且速度快六倍。
- SAM 2在现有的视频对象分割基准(DAVIS、MOSE、LVOS、YouTube-VOS)上表现优于之前的最先进模型。
- SAM 2的推理速度接近实时,达到约每秒44帧。
- SAM 2在视频分割注释中的循环速度比手动逐帧注释SAM快8.4倍。
构建对所有人都有效的AI体验非常重要。为了衡量SAM 2的公平性,Meta对模型在特定人口群体中的表现进行了评估。
结果显示,模型在视频分割中的性别表现差异极小,并且在Meta评估的三个年龄组(18-25岁、26-50岁和50岁以上)之间的差异也很小。
局限
虽然SAM 2在图像和短视频的对象分割上表现出色,但在一些具有挑战性的场景中,模型性能还有提升空间。
在剧烈的摄像机视角变化、长时间遮挡、拥挤场景或长时间视频中,SAM 2可能会失去对对象的跟踪。
Meta通过设计模型的交互性,并允许在任何帧中手动点击进行校正,以恢复目标对象,从而缓解这一问题。
当目标对象只在一帧中指定时,SAM 2有时会混淆对象,无法正确分割目标,如上面视频中的马。
在一些情况下,通过在后续帧中添加细化提示,这个问题可以完全解决,并且可以在整个视频中获得正确的mask。
虽然SAM 2支持同时分割多个对象,但模型的效率会显著下降。
实际上,SAM 2是分别处理每个对象,仅利用共享的每帧嵌入,而没有对象间的通信。这简化了模型,但结合共享的对象级上下文信息可能有助于提高效率。
对于快速移动的复杂对象,SAM 2有时会遗漏细节,预测在帧之间不稳定(如上面视频中的骑自行车者)。
在同一帧或额外帧中添加更多提示来细化预测只能部分缓解这个问题。
在训练过程中,如果模型预测在帧之间抖动,Meta不会施加任何惩罚,因此无法保证预测的时间平滑性。
改进这一能力可以促进需要精细结构定位的实际应用。
虽然Meta的数据引擎使用SAM 2进行循环,并在自动生成演码方面取得了显著进展,但他们仍然依赖人工注释者来完成某些步骤,例如验证掩码质量和选择需要校正的帧。
未来的发展可以包括进一步自动化数据注释过程以提高效率。