Segment Anything ViT是一种视觉变换器架构,作为Segment Anything Model(SAM)的图像编码器骨干网络,该系统由Meta开发,用于可提示图像分割。该模型采用基于变换器的设计,将输入图像转换为高维特征嵌入,然后由轻量级掩码解码器处理,根据用户提示(如点、框或文本)生成分割掩码。该骨干网络于2023年与SAM框架及Segment Anything数据集一同推出,该数据集包含1100万张图像上的超过10亿个掩码。
Segment Anything ViT基于标准视觉变换器结构构建,该结构将图像划分为固定大小的补丁,并通过堆叠的多头注意力层进行处理。与早期的卷积骨干网络(如残差网络或U-Net)不同,ViT骨干网络在每一层捕获整个图像的全局上下文,使其非常适合需要理解对象边界和关系的任务。该架构包含位置编码以保留空间信息,并支持多种模型规模,,ViT-B、ViT-L和ViT-H,,其中最大版本约有6.32亿个参数。
架构与设计
Segment Anything ViT遵循Dosovitskiy及其同事提出的原始视觉变换器设计,并针对密集预测任务进行了修改。它使用16x16像素的补丁大小,这意味着1024x1024的输入图像被划分为64x64个补丁。每个补丁被线性投影为嵌入向量,并在变换器块之前添加可学习的位置编码。该骨干网络在内部采用标准的编码器-解码器结构,但在SAM框架中它仅充当编码器,通过逐层上采样过程输出保留空间分辨率的特征图。
一个关键的设计选择是使用全局注意力机制而非窗口注意力。这使得模型在计算任何给定补丁的特征时能够考虑整个图像,这对于分割跨越较大区域或具有模糊边界的对象非常重要。骨干网络还包含一个颈部模块,将特征维度缩减为紧凑的嵌入空间(通常为256个通道),然后将输出传递给掩码解码器。
训练与数据
Segment Anything ViT在Segment Anything数据集上训练,该数据集是包含1100万张图像和超过10亿个分割掩码的大规模集合。该数据集通过结合自动掩码生成和人工精化的数据引擎创建。训练过程结合了基于掩码标注的监督学习和模型在环方法,其中ViT骨干网络随着新掩码的生成而迭代改进。
训练采用了标准的深度学习技术,包括使用Adam优化器进行优化、数据增强以提高泛化能力,以及梯度裁剪以稳定训练。该模型在GPU集群上训练,但具体硬件细节未公开记录。ViT-H变体凭借其更大的容量实现了最高的分割质量,但在训练和推理方面需要更多的计算资源。
应用与影响
Segment Anything ViT使SAM模型能够执行零样本分割,,即在没有针对特定类别进行微调的情况下分割图像中的对象。这在人工智能领域具有广泛应用,如医学成像、自动驾驶和机器人技术。例如,该骨干网络可以与交叉注意力机制结合以集成文本提示,使用户能够通过自然语言描述来分割对象。
SAM及其ViT骨干网络的发布影响了后续在交互式分割和计算机视觉基础模型方面的研究。它证明了一个在多样化数据上训练的单一模型能够泛化到未见过的对象和场景,类似于大型语言模型在文本任务中的泛化能力。该架构已被改编用于其他密集预测任务,包括深度估计和边缘检测,并已集成到各种开源工具包中。
性能与局限性
在基准评估中,Segment Anything ViT-H骨干网络在多个数据集上的标准分割指标(如平均交并比(mIoU))上取得了强劲表现。然而,该模型存在已知的局限性。它可能难以处理非常小的对象、严重遮挡的对象或光照条件异常的图像。ViT骨干网络还计算密集,需要大量内存和处理能力,这限制了其在没有优化的情况下在边缘设备上的使用。
研究表明,当输入图像被显著缩小时,骨干网络的性能会下降,因为补丁嵌入过程中会丢失细粒度细节。此外,该模型并不固有地理解对象语义,,它基于视觉模式而非类别知识进行分割,这可能导致在模糊情况下出现过度分割或分割不足。
相关发展
Segment Anything ViT建立在早期视觉变换器工作的基础上,包括原始ViT模型和后续的层次化设计改进。它与卷积方法(如残差网络和U-Net)不同,后者通过局部感受野处理图像。该骨干网络还启发了后续模型,这些模型结合了高效注意力机制或稀疏变换器以降低计算成本。
在生成式人工智能的更广泛背景下,Segment Anything ViT代表了向统一模型的转变,这些模型可以用单一架构处理多种视觉任务。其成功鼓励了其他领域的类似努力,如音频和视频分割,并为开源AI模型生态系统的不断增长做出了贡献。