Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

小模型也可以「分割一切」,Meta改进SAM,参数仅为原版5%

对于 2023 年的计算机视觉领域来说,「分割一切」(Segment Anything Model)是备受关注的一项研究进展。

Meta四月份发布的「分割一切模型(SAM)」效果,它能很好地自动分割图像中的所有内容

Segment Anything 的关键特征是基于提示的视觉 Transformer(ViT)模型,该模型是在一个包含来自 1100 万张图像的超过 10 亿个掩码的视觉数据集 SA-1B 上训练的,可以分割给定图像上的任何目标。这种能力使得 SAM 成为视觉领域的基础模型,并在超出视觉之外的领域也能产生应用价值。

尽管有上述优点,但由于 SAM 中的 ViT-H 图像编码器有 632M 个参数(基于提示的解码器只需要 387M 个参数),因此实际使用 SAM 执行任何分割任务的计算和内存成本都很高,这对实时应用来说具有挑战性。后续,研究者们也提出了一些改进策略:将默认 ViT-H 图像编码器中的知识提炼到一个微小的 ViT 图像编码器中,或者使用基于 CNN 的实时架构降低用于 Segment Anything 任务的计算成本。

在最近的一项研究中,Meta 研究者提出了另外一种改进思路 —— 利用 SAM 的掩码图像预训练 (SAMI)。这是通过利用 MAE 预训练方法和 SAM 模型实现的,以获得高质量的预训练 ViT 编码器。

图片

  • 论文链接:https://arxiv.org/pdf/2312.00863.pdf

  • 论文主页:https://yformer.github.io/efficient-sam/

这一方法降低了 SAM 的复杂性,同时能够保持良好的性能。具体来说,SAMI 利用 SAM 编码器 ViT-H 生成特征嵌入,并用轻量级编码器训练掩码图像模型,从而从 SAM 的 ViT-H 而不是图像补丁重建特征,产生的通用 ViT 骨干可用于下游任务,如图像分类、物体检测和分割等。然后,研究者利用 SAM 解码器对预训练的轻量级编码器进行微调,以完成任何分割任务。

为了评估该方法,研究者采用了掩码图像预训练的迁移学习设置,即首先在图像分辨率为 224 × 224 的 ImageNet 上使用重构损失对模型进行预训练,然后使用监督数据在目标任务上对模型进行微调。

通过 SAMI 预训练,可以在 ImageNet-1K 上训练 ViT-Tiny/-Small/-Base 等模型,并提高泛化性能。对于 ViT-Small 模型,研究者在 ImageNet-1K 上进行 100 次微调后,其 Top-1 准确率达到 82.7%,优于其他最先进的图像预训练基线。

研究者在目标检测实例分割语义分割上对预训练模型进行了微调。在所有这些任务中,本文方法都取得了比其他预训练基线更好的结果,更重要的是在小模型上获得了显著收益。

论文作者 Yunyang Xiong 表示:本文提出的 EfficientSAM 参数减少了 20 倍,但运行时间快了 20 倍,只与原始 SAM 模型的差距在 2 个百分点以内,大大优于 MobileSAM/FastSAM。

图片

在 demo 演示中,点击图片中的动物,EfficientSAM 就能快速将物体进行分割:

图片

EfficientSAM 还能准确标定出图片中的人:

图片

试玩地址:https://ab348ea7942fe2af48.gradio.live/

方法

EfficientSAM 包含两个阶段:1)在 ImageNet 上对 SAMI 进行预训练(上);2)在 SA-1B 上微调 SAM(下)。

图片

EfficientSAM 主要包含以下组件:

交叉注意力解码器:在 SAM 特征的监督下,本文观察到只有掩码 token 需要通过解码器重建,而编码器的输出可以在重建过程中充当锚点(anchors)。在交叉注意力解码器中,查询来自于掩码 token,键和值源自编码器的未掩码特征和掩码特征。本文将来自交叉注意力解码器掩码 token 的输出特征和来自编码器的未掩码 token 的输出特征进行合并,以进行 MAE 输出嵌入。然后,这些组合特征将被重新排序到最终 MAE 输出的输入图像 token 的原始位置。

线性投影头。研究者通过编码器和交叉注意力解码器获得的图像输出,接下来将这些特征输入到一个小型项目头(project head)中,以对齐 SAM 图像编码器中的特征。为简单起见,本文仅使用线性投影头来解决 SAM 图像编码器和 MAE 输出之间的特征维度不匹配问题。

重建损失。在每次训练迭代中,SAMI 包括来自 SAM 图像编码器的前向特征提取以及 MAE 的前向和反向传播过程。来自 SAM 图像编码器和 MAE 线性投影头的输出会进行比较,从而计算重建损失。

图片

经过预训练,编码器可以对各种视觉任务的特征表示进行提取,而且解码器也会被废弃。特别是,为了构建用于分割任何任务的高效 SAM 模型,本文采用 SAMI 预训练的轻量级编码器(例如 ViT-Tiny 和 ViT-Small)作为 EfficientSAM 的图像编码器和 SAM 的默认掩码解码器,如图所示 2(底部)。本文在 SA-1B 数据集上对 EfficientSAM 模型进行微调,以实现分割任何任务。

实验

图像分类。为了评估本文方法在图像分类任务上的有效性,研究者将 SAMI 思想应用于 ViT 模型,并比较它们在 ImageNet-1K 上的性能。

如表 1 将 SAMI 与 MAE、iBOT、CAE 和 BEiT 等预训练方法以及 DeiT 和 SSTA 等蒸馏方法进行了比较。

图片

SAMI-B 的 top1 准确率达到 84.8%,比预训练基线、MAE、DMAE、iBOT、CAE 和 BEiT 都高。与 DeiT 和 SSTA 等蒸馏方法相比,SAMI 也显示出较大的改进。对于 ViT-Tiny 和 ViT-Small 等轻量级模型,SAMI 结果与 DeiT、SSTA、DMAE 和 MAE 相比有显著的增益。

目标检测实例分割。本文还将经过 SAMI 预训练的 ViT 主干扩展到下游目标检测实例分割任务上,并将其与在 COCO 数据集上经过预训练的基线进行比较。如表 2 所示, SAMI 始终优于其他基线的性能。

图片

这些实验结果表明,SAMI 在目标检测实例分割任务中所提供的预训练检测器主干非常有效。

语义分割。本文进一步将预训练主干扩展到语义分割任务,以评估其有效性。结果如表 3 所示,使用 SAMI 预训练主干网的 Mask2former 在 ImageNet-1K 上比使用 MAE 预训练的主干网实现了更好的 mIoU。这些实验结果验证了本文提出的技术可以很好地泛化到各种下游任务。

图片

表 4 将 EfficientSAMs 与 SAM、MobileSAM 和 SAM-MAE-Ti 进行比较。在 COCO 上,EfficientSAM-Ti 的性能优于 MobileSAM。EfficientSAM-Ti 具有 SAMI 预训练权重,也比 MAE 预训练权重表现更好。 

此外, EfficientSAM-S 在 COCO box 仅比 SAM 低 1.5 mIoU,在 LVIS box 上比 SAM 低 3.5 mIoU,参数减少了 20 倍。本文还发现,与 MobileSAM 和 SAM-MAE-Ti 相比,EfficientSAM 在多次点击(multiple click)方面也表现出了良好的性能。

图片

表 5 展示了零样本实例分割的 AP、APS、APM 和 APL。研究者将 EfficientSAM 与 MobileSAM 和 FastSAM 进行了比较,可以看到,与 FastSAM 相比,EfficientSAM-S 在 COCO 上获得了超过 6.5 个 AP,在 LVIS 上获得了 7.8 个 AP。就 EffidientSAM-Ti 而言,仍然远远优于 FastSAM,在 COCO 上为 4.1 个 AP,在 LVIS 上为 5.3 个 AP,而 MobileSAM 在 COCO 上为 3.6 个 AP,在 LVIS 上为 5.5 个 AP。

而且,EfficientSAM 比 FastSAM 轻得多,efficientSAM-Ti 的参数为 9.8M,而 FastSAM 的参数为 68M。

图片

图 3、4、5 提供了一些定性结果,以便读者对 EfficientSAMs 的实例分割能力有一个补充性了解。

图片

图片

图片

更多研究细节,可参考原论文。

工程EfficientSAM
相关数据
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

语义分割技术

语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类。图像语义分割是AI领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

实例分割技术

实例分割是检测和描绘出现在图像中的每个不同目标物体的任务。

目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

推荐文章
暂无评论
暂无评论~