2023年4月,Meta向计算机视觉领域推出了Segment Anything Model(SAM)这一创新工具,该工具可根据提示,如文本、点击或边界框,对图像进行目标自动分割。
SAM在零样本性能方面表现出色,即无需额外训练即可分割未见过的物体,这是由包含超过10亿张图像 Mask 的巨大数据集所驱动的。
SAM 2扩展了这一功能,用于视频,利用前后续帧的记忆来生成整个视频的准确分割,实现了近实时性能。比较显示了SAM如何演变以满足各种应用中日益增长的准确、高效分割的需求。该研究表明,像SAM这样的模型的未来改进将对提高计算机视觉技术至关重要。
1 Introduction
计算机视觉领域正在迅速发展,目标分割在使其模型能够理解和互动视觉数据方面发挥着至关重要的作用。这一过程涉及在图像或视频中识别和隔离目标,这对于许多应用至关重要,从自动驾驶车辆和制造业到医疗和可再生能源。传统的分割模型通常需要在大数据集上进行广泛训练并进行微调才能在各种上下文中准确执行。然而,由Meta于2023年4月推出的Segment Anything Model (SAM)的引入,在该领域发生了显著的变化。
SAM旨在在最小的人类干预下执行分割,提供了强大的零样本能力,使其能够分割之前从未见过的目标。这一创新基于一个预训练的视觉Transformer,后者作为图像编码器。图像编码器在应用任何提示之前处理视觉数据,将原始图像转换为丰富、高维度的表示。这一步骤对于确保模型能够有效地解释并响应不同类型的提示(无论是文本型的、点击型的,还是边界框型的)至关重要,从而实现精确和高效的分割。
SAM的效率通过SAM2的发展而进一步提高了,SAM 2 是在SAM 1基础上发展的,采用了内存机制,允许它通过利用过去和未来帧的信息来保持一致性和准确性,从而将模型扩展到视频分割。SAM 2不仅展示了SAM的适应性,还强调了处理复杂视觉数据实时需求的日益增长。
本文详细比较了SAM和SAM2,突出了这些模型如何设计以满足各种应用程序的不断增长的需求。通过检查两个变体的进步,作者强调持续创新在计算机视觉技术实时图像分割方面的必要性。未来像SAM这样的模型的改进可能将在计算机视觉领域的可能性方面发挥关键作用。
2 Segment Anything Model
切片(Segment) Anything 模型(SAM)是用于计算机视觉图像分割的一种模型,由Meta Research于2023年4月创建,用户可以利用模型根据图像中的目标、与提示文本相关的目标或画面上的单个点进行图像分割,从而生成口罩。与其他需要微调的模型不同,SAM 的零样本性能可以在不需要额外训练的情况下分割以前从未见过的目标,拥有超过10亿张图像口罩和110万张图像的数据 。
带有分割 Mask ,目标的形状可以映射出来,提供有关其尺寸和位置的清晰度。SAM 使用基于文本输入的自动分割图像,依靠训练数据较少,并且经过大量的再训练过程。
SAM 根据用户给出的文本输入,可以对特定区域进行分割,如点击图像中的单个点、创建边界框或在一个目标上标记粗糙的 Mask 。当点击图像中的一个目标时,SAM 如果对应该被 Mask 的目标不确定,可能会 Mask 不同部分的目标,从而产生多个有效 Mask 。
2 Dataset
该数据集包括1100万张高分辨率的图像和1.1亿张高质量的分割 Mask ,这些由数据引擎生成。提供的图片由与摄影师紧密合作的提供商授权。图像的平均像素尺寸为3,300 4,950,但为了便于访问,下采样1500像素;尽管进行了下采样,但图像仍然保持高分辨率。为了保护他们的身份和隐私,人脸和车牌都被模糊处理。
对1.1亿张分割 Mask 的数据集进行了质量评估,其中99.1%是自动生成的。显然,这94%的 Mask 的IoU大于90%,说明其质量非常高。与其它数据集相比,该数据集包括大小和凹凸等属性,这使得SA-1B成为开发计算机视觉模型的重要资源。图1给出了厨房数据集中的分割示例。
Components in SAM
图像分割的SAM方法包括三个组件:一个图像编码器、一个提示编码器和一个 Mask 解码器。
2.1.1 Image Encoder
SAM中的图像编码器负责在模型分割提示应用之前处理图像。它采用一个在大规模图像数据上预训练的视觉Transformer [6]来执行此初始编码。这种视觉Transformer通过处理图像提取并表示复杂的视觉特征,如边缘、纹理、形状和目标。通过将图像转换到高维特征空间,编码器为后续的分割步骤准备了一个有用的输入。这种预处理增强了模型根据各种提示(如文本基础、点击基础或边界框)准确高效地生成分割 Mask 的能力。使用预训练的视觉Transformer确保编码器捕获了广泛的视觉模式和细节,有助于实现强大的精确目标分割。
2.1.2 Prompt Encoder
提示解码器处理以下类型的提示:稀疏提示,如点(points)、框(boxes)和文本(texts),以及密集提示,如 Mask (masks),使用位置编码[7]、学习嵌入(learning embeddings)以及CLIP文本编码器[8]处理坐标、前景和背景信息、边界框点(bounding box points)和文本的标记(tokens)。
2.1.3 Mask Decoder
利用修改后的Transformer解码块[9], Mask 解码器将图像和文本输入转换为 Mask ,其中包括自注意力机制和交叉注意力,随后进行上采样和动态分类器[10]。
Data Engine
SAM数据引擎的训练包含以下三个标注阶段:手工标注、半自动标注和完全自动标注。
2.2.1 Manual Annotation
在模型辅助手动标注过程中,使用预训练的SAM模型对120,000张图像进行了分割,生成了4.3百万 mask,在这些 mask 之上重新训练了SAM。用户点击前景和背景物体,使用笔刷和擦除工具精炼 masks。他们专注于 annotators 能够识别的物体,对可识别的物体进行标记,并在30秒以上未完成标注时跳到下一张图像[11]。
2.2.2 Semi-automatic Annotation
其次,用户为1.8万张图像添加了590万口罩,以训练模型以提高分割。自信的口罩可以自动检测,帮助标注者。一口罩的平均标注时间为34秒,图像中的口罩数量从44增加到72,总口罩数量达到1020万。
2.2.3 Fully-automatic Annotation
最后,在完全自动标注过程中,SAM通过1100万张图像的10亿多个标注实现了11亿个标注。改进包括不同口罩以及模型从 格的识别有效性。使用IoU预测和非极大值抑制确定了确信度较高的口罩。
Architecture of SAM
本论文主要研究了一种基于图像的物体分割技术。该技术的流程如下:首先,输入图像经过图像编码器(image encoder)生成图像表示,即模型可以理解的目标。提示编码器(prompt encoder)处理各种输入,如点、边界框和文本提示等,以指导模型关注图像中的物体。提示数据与图像编码器一起输入轻量级分割 Mask 解码器(lightweight mask decoder)。该解码器生成交多分割 Mask ,对应于不同的图像。
每个 Mask 都有一个置信度分数,表示模型对特定目标分割的置信程度。最终输出包括最有效的 Mask ,每个 Mask 都带有其置信度分数(图2)。
Applications
SAM通过检测目标、提供提醒以及允许在虚拟现实中移动目标,增强了增强现实体验。它无需再训练就可以对医学影像和细胞显微镜进行分割。通过与扩散模型集成,创建口罩的过程实现了自动化,从而使得通过零样本标签填充图像的缺失部分变得更加容易。此外,SAM通过为数据集生成精确的口罩,增强了目标分割的质量。它还辅助预训练模型,为标记图像提供标注推荐。SAM用于合成多样化labeled的数据集[11, 12]。
Limitations
SAM在图像分割方面表现良好,但与视频数据相比则表现不佳。为了对视频帧进行分割,需要将其与其他深度学习模型,如目标检测,结合在一起,这可能会导致延迟。这使得SAM在实时处理方面效果降低。
3 Segment Anything Model 2
SAM2扩展了SAM的功能,使其同时适用于视频和图像。对于每一个视频帧,SAM2使用点、框和提示来识别物体的空间边界。在单帧情况下,它的工作方式类似于SAM,采用基于提示的分割 Mask 解码器。这个解码器输入一个带有提示的帧嵌入,生成一个分割 Mask ,可以通过 continuously 添加更多的提示进行优化 。
SAM2不会直接从图像编码器生成嵌入;相反,它使用来自前后帧的预测和提示的组合与当前帧进行关联。记忆编码器通过处理连续的预测并将其存储在内存银行中创建这些记忆。记忆注意对为分割 Mask 解码器中存储的数据进行嵌入优化。
模型在识别出任何视频帧上的多种提示后,能够快速为帧生成有效的分割 Mask 。当模型收到一个或多个帧上的提示时,它会使用这些数据为整个视频生成一个分割 Mask ,其他提示则能实现连续的改进。同时使用在线和离线设置来评估模型,覆盖了带有多个帧标注的交互式视频分割 (如图3所示)。## 数据集
SA-V数据集是一个包含50900个视频和6426000个分割 Mask 的大资源。相比于最大的视频目标分割(VOS)数据集,规模扩大了53倍。其平均持续时间为14秒,视频涵盖了54%的室内场景和46%的室外场景。这个涉及47个国家的多样真实场景数据集包含了日常场景的广泛应用。此外,VOS研究可以从这些大量视频和标注中获得益处。
与自动生成的4517000个分割 Mask 和1909000个手动标注的分割 Mask 相结合,SA-V数据集在 Mask 数量方面具有优势。标注图像提供了高度相关性和质量,特别是针对像物体动态运动和被遮挡的图像这样的复杂任务。此外,该数据集通过内部数据增强得到了进一步改进,为训练添加了69600个分割 Mask 和62900个视频。
Architecture of SAM 2
3.2.1 Image Encoder
图像编码器,一个多层 Mask 编码器(Hiera),逐帧处理视频帧,在解码过程中利用多尺度特征。为了为每一帧生成图像嵌入,实现了一个特征金字塔网络,分别融合Hiera编码器第3和第4阶段的步长16和32特征[17]。然而,记忆注意力机制不包含第1和第2阶段的步长4和8特征,而是将这些特征融入 Mask 解码器的上采样层(如图4所示),从而产生高分辨率分割细节。与另一篇论文一致,采用窗口绝对位置嵌入[18]。图像的RPB提供了跨越编码器窗口的位置数据;然而,一种简单的方法包括插值全局位置嵌入来覆盖窗口。
3.2.2 记忆注意力
记忆注意力将当前帧特征与过去的数据(如帧特征、预测和提示)对齐,调整 Transformer 块,其中第一块提取特征。这种机制使用四层,并利用2D空间旋转位置嵌入以及自注意力和交叉部分层的正弦绝对位置嵌入,但是排除指向目标的标记[20,21]。
3.2.3 Prompt Encoder and Mask Decoder
提示编码器(如SAM)可以处理各种提示类型。稀疏提示使用位置编码,而密集提示(如 Mask )使用卷积层。 Mask 解码器将编码的提示和条件化帧作为输入,并通过从图像编码器中插入跳跃连接来增强高分辨率细节。
3.2.4 Memory Encoder and Memory Bank
图像编码器生成的预测和嵌入信息被记忆编码器处理并保存在未来使用中。它保存了目标的过去预测,并跟踪来自提示编码器的相关帧的提示。
Data Engine
3.3.1 Sam
在第一阶段,SAM被用来为以每秒6帧的速度提取的视频帧生成初始 Mask ,以协助标注者。他们使用像素级工具如画笔和橡皮擦,无需时间跟踪模型,来完善这些 Mask 。每帧图像都被单独标注,平均每帧耗时37.8秒。尽管这是一个耗时过程,这种方法获得了高质量的帧的空间标注,产生了16K的 Mask 和1.4K的视频。
3.3.2 SAM and SAM 2
在阶段2中,SAM和SAM 2与人类标注员合作。SAM 2的任务是使用SAM 1的mask和标注员提供的输入来创建空间-时间 Mask lets。使用SAM 1和工具,用户可以在任何帧点微调mask,然后重新应用SAM 2 mask进行更新。在SAM 2对第一阶段数据和其他数据集进行训练后再训练时,SAM 2的mask进行了重新训练。将63.5K masklets的训练数据和SAM 2 on Phase 1数据和其余数据集进行训练后,这种方法将每帧的标注时间缩短到了7.4秒。然而,由于内存限制,中间帧需要进行手动标注;但是,该阶段为SAM 2建立了背景,将交互式分割和mask传播集成到一个模型中。
3.3.3 Sam 2
在第三阶段SAM 2中,该模型能够应对所有提示,并利用时间记忆追踪物体,在标注者较少的情况下进行微调以获得更好的效果,总共生成了197,000个口罩符号。每个帧需要4.5秒进行标注,这似乎显着降低了标注时间。不仅降低了标注时间,而且通过五次对SAM 2的再训练,提高了效率。
Procedure
图5代表了一个采用SAM 2的提示性视觉分割系统。该模型在考虑提示(包括边界框、点和 Mask )的基础上处理视频,以识别一帧或多帧中的目标,并在整个视频中生成分割 Mask 。为了保持所有帧的一致性,模型会参考前帧,确保整个视频中目标正确分割。通过使用SA-V数据集,该数据集包含35.5M个 Mask ,50.9K个视频,642.6K个 Mask Patch 和196小时的 footage,模型训练效果良好。
Applications
将SAM2与生成式视频模型结合,为视频编辑提供了新可能,并创造出独特的视觉效果。SAM 2支持分割,在医学影像研究领域及研究中提高了组织结构识别的准确性。同时,SAM 2也能够增强自动驾驶车辆的智能,从而实现更好的导航,并排除障碍。通过创建标注数据集,SAM 2能够加快这一过程,与手动标注相比,可以节省时间与精力。
Limitations
SAM 2在静态图像和视频中进行目标分割非常有效,但在长时间遮挡后分割拥挤场景或镜头改变的情况下,SAM 2可能会遇到困难任务,这可能导致对目标的跟踪出现混乱或更糟糕的损失。为了解决这个问题,SAM 2允许在任意帧上添加提示,其中细化的点击可以用作快速找回丢失的模型。在快速移动的物体间区分出看起来相似的目标,并跟踪细节,特别是当物体快速移动时,提高模型精度可能会减少错误。
SAM 2可以同时跟踪多个目标,但它会单独处理这些目标,这取决于共享的每帧表示和忽略的目标间通信,使用共享的目标级上下文来提高效率。目前,为了确保 Mask 质量并校正帧,数据引擎依赖于手工标注。然而,在未来,这可以被自动化以提高效率。
4 Comparison of SAM and SAM 2
SAM(Segmentation by Attention Method)是一个用于在图像中识别和分割任何目标的分割模型,它支持多种输入方法,如点、边界框和文本提示。SAM采用基于 Transformer 的架构,结合注意力机制,以创建高质量分割 Mask 。工具的用户友好性在于,用户可以通过添加提示来交互式地调整分割,如果初始结果不满意,从而获得高质量的输出。
预计SAM 2将在保持SAM基本功能的基础上提高精确度、有效性和新功能。此外,将进一步发展,如更先进的注意力机制、更好的处理和更优的管理各种输入类型,以提供对用户体验的改进,简化分割过程,使其更加顺滑和快速。1中提供了各个变体的对比。
表1:SAM和SAM2的关键特征比较。
SAM可能在处理高分辨率图像时需要消耗大量的计算资源,而SAM 2预计将通过降低硬件需求和改进计算速度来优化计算效率。总的来说,SAM在性能和适应性方面表现出色,而SAM 2则有望通过新的能力增强准确性、用户交互性和效率。SAM是图像分割的重大进步。它处理了超过11亿张图像和约1.1亿张图像 Mask 。其零样本能力允许在不经过先前训练的情况下生成准确的目标分割 Mask 。这是通过预训练的视觉Transformer进行图像编码、各种输入类型的提示编码器以及用于生成 Mask 的修改 Transformer 解码器实现的。
所产生的 Mask 的准确性得到了强调,因为94%的 Mask 的交点与 Union 分数大于90%,这表明了数据的质量。此外,标注过程保证了 SAM 产生更可靠和高质量的结果。
然而,SAM 的大多数能力都集中在分割静态图像上,与视频分割相比,其效率和准确性更好。
SAM 2 将其功能扩展到视频分割。它具有一个记忆编码器,可以利用过去和未来的帧在视频序列上提高分割准确性。 SAM 的时序记忆机制通过提供更连贯和准确的面部分割 Mask ,改进了 SAM 静态图像的聚焦方法。 SAM 2 架构引入了几个改进,包括多层 Mask 编码器、Hiera 以及内存注意力机制。这些,反过来,有利于处理高分辨率特征和时间数据的集成,从而在视频上改善分割过程。此外,用于训练的 SA-V 数据集强调了其在大规模视频帧和 Mask 之间的能力。
尽管存在一些优点,SAM 2 也存在一些局限性,如在场景拥挤和/或遮挡持续很长时间的情况下,它不能很好地检测物体。此外,它处理多个目标的能力有限,因为它独立处理每个目标。
5 Conclusions
SAM可以被视为一种强大的图像分割工具,它使开发行人能够通过各种输入方法(如点、边界框和文本提示)在图像中识别和分割各种目标。其基于 Transformer 的架构和注意力机制有助于创建高质量的分割 Mask ,交互特性使用户可以对这些 Mask 进行优化,从而提高准确性。然而,SAM可能对资源有较高要求,特别是在处理高分辨率图像时。
下一版本SAM2预计将在SAM的优势基础上取得更高的精确度、效率和用户交互。SAM2的优化的图像编码器和解码器、改进的提示处理以及降低硬件需求,预计使其在处理复杂的大规模任务时更加有效。
总之,尽管SAM已经是高度适应和有效的图像分割模型,但SAM2预计会使过程更流畅、更快、更高效。这些改进突显了计算机视觉领域的持续创新能力需求,以确保未来模型能够满足各种应用中准确性和效率的增长需求。
参考
[1].From SAM to SAM 2: Exploring Improvements in Meta's Segment Anything Model.