0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SA-1B数据集的1/50进行训练现有的实例分割方法

3D视觉工坊 来源:CVHub 2023-06-28 15:08 次阅读

导读

SAM已经成为许多高级任务(如图像分割、图像描述和图像编辑)的基础步骤。然而,其巨大的计算开销限制了其在工业场景中的广泛应用。这种计算开销主要来自于处理高分辨率输入的Transformer架构。因此,本文提出了一种具有可比性能的加速替代方法。通过将该任务重新定义为分割生成和提示,作者发现一个常规的CNN检测器结合实例分割分支也可以很好地完成这个任务。具体而言,本文将该任务转换为经过广泛研究的实例分割任务,并仅使用SAM作者发布的SA-1B数据集的1/50进行训练现有的实例分割方法。使用这种方法,作者在50倍更快的运行时间速度下实现了与SAM方法相当的性能。本文提供了充分的实验结果来证明其有效性。

引言

SAM被认为是里程碑式的视觉基础模型,它可以通过各种用户交互提示来引导图像中的任何对象的分割。SAM利用在广泛的SA-1B数据集上训练的Transformer模型,使其能够熟练处理各种场景和对象。SAM开创了一个令人兴奋的新任务,即Segment Anything。由于其通用性和潜力,这个任务具备成为未来广泛视觉任务基石的所有要素。然而,尽管SAM及其后续模型在处理segment anything任务方面展示了令人期待的结果,但其实际应用仍然具有挑战性。显而易见的问题是与SAM架构的主要部分Transformer(ViT)模型相关的大量计算资源需求。与卷积模型相比,ViT以其庞大的计算资源需求脱颖而出,这对于其实际部署,特别是在实时应用中构成了障碍。这个限制因此阻碍了segment anything任务的进展和潜力。

鉴于工业应用对segment anything模型的高需求,本文设计了一个实时解决方案,称为FastSAM,用于segment anything任务。本文将segment anything任务分解为两个连续的阶段,即全实例分割和提示引导选择。第一阶段依赖于基于卷积神经网络(CNN)的检测器的实现。它生成图像中所有实例的分割掩码。然后在第二阶段,它输出与提示相对应的感兴趣区域。通过利用CNN的计算效率,本文证明了在不太损失性能质量的情况下,可以实现实时的segment anything模型。本文希望所提出的方法能够促进对segment anything基础任务的工业应用。

1549dc6c-153f-11ee-962d-dac502259ad0.png

图1. FastSAM和SAM的性能比较分析

(a) FastSAM和SAM在单个NVIDIA GeForce RTX 3090上的速度比较。(b) 在BSDS500数据集[1, 28]上进行边缘检测的比较。(c) COCO数据集[25]上对象提议的Box AR@1000评估中FastSAM和SAM的比较。SAM和FastSAM都使用PyTorch进行推理,只有FastSAM(TRT)使用TensorRT进行推理。

本文提出的FastSAM基于YOLACT方法的实例分割分支的目标检测器YOLOv8-seg。此外,还采用了由SAM发布的广泛SA-1B数据集,通过仅在SA-1B数据集的2%(1/50)上直接训练该CNN检测器,它实现了与SAM相当的性能,但大大降低了计算和资源需求,从而实现了实时应用。本文还将其应用于多个下游分割任务,展示了其泛化性能。在MS COCO 上的对象提议任务中,该方法在AR1000上达到了63.7,比使用32×32点提示输入的SAM高1.2点,但在单个NVIDIA RTX 3090上运行速度提高了50倍。

实时的segment anything模型对于工业应用非常有价值。它可以应用于许多场景。所提出的方法不仅为大量视觉任务提供了新的实用解决方案,而且速度非常快,比当前方法快几十倍或几百倍。此外,它还为通用视觉任务的大型模型架构提供了新的视角。对于特定任务来说,特定的模型仍然可以利用优势来获得更好的效率-准确性平衡。

在模型压缩的角度上,本文方法通过引入人工先验结构,展示了显著减少计算量的可行路径。本文贡献可总结如下:

引入了一种新颖的实时基于CNN的Segment Anything任务解决方案,显著降低了计算需求同时保持竞争性能。

本研究首次提出了将CNN检测器应用于segment anything任务,并提供了在复杂视觉任务中轻量级CNN模型潜力的见解。

通过在多个基准测试上对所提出的方法和SAM进行比较评估,揭示了该方法在segment anything领域的优势和劣势。

方法

下图2展示了FastSAM网络架构图。该方法包括两个阶段,即全实例分割和提示引导选择。前一个阶段是基础阶段,第二个阶段本质上是面向任务的后处理。与端到端的Transformer方法不同,整体方法引入了许多与视觉分割任务相匹配的人类先验知识,例如卷积的局部连接和感受野相关的对象分配策略。这使得它针对视觉分割任务进行了定制,并且可以在较少的参数数量下更快地收敛。

15a1aa46-153f-11ee-962d-dac502259ad0.png

图2. FastSAM网络架构图

FastSAM包含两个阶段:全实例分割(AIS)和提示引导选择(PGS)。先使用YOLOv8-seg 对图像中的所有对象或区域进行分割。然后使用各种提示来识别感兴趣的特定对象。主要涉及点提示、框提示和文本提示的利用。

实例分割

YOLOv8 的架构是基于其前身YOLOv5 发展而来的,融合了最近算法(如YOLOX 、YOLOv6 和YOLOv7 )的关键设计。YOLOv8的主干网络和特征融合模块(neck module)将YOLOv5的C3模块替换为C2f模块。更新后的头部模块采用解耦结构,将分类和检测分开,并从基于Anchor的方法转向了基于Anchor-Free的方法。

YOLOv8-seg应用了YOLACT的实例分割原理。它通过主干网络和特征金字塔网络(Feature Pyramid Network, FPN)从图像中提取特征,集成了不同尺度的特征。输出包括检测分支和分割分支。检测分支输出目标的类别和边界框,而分割分支输出k个原型(在FastSAM中默认为32个)以及k个掩码系数。分割和检测任务并行计算。分割分支输入高分辨率特征图,保留空间细节,并包含语义信息。该特征图经过卷积层处理,上采样,然后通过另外两个卷积层输出掩码。与检测头部的分类分支类似,掩码系数的范围在-1到1之间。通过将掩码系数与原型相乘并求和,得到实例分割结果。

YOLOv8可以用于各种目标检测任务。而通过实例分割分支,YOLOv8-Seg非常适用于segment anything任务,该任务旨在准确检测和分割图像中的每个对象或区域,而不考虑对象的类别。原型和掩码系数为提示引导提供了很多可扩展性。例如,可以额外训练一个简单的提示编码器和解码器结构,以各种提示和图像特征嵌入作为输入,掩码系数作为输出。在FastSAM中,本文直接使用YOLOv8-seg方法进行全实例分割阶段。

提示引导选择

在使用YOLOv8成功地对图像中的所有对象或区域进行分割后,segment anything 任务的第二阶段是利用各种提示来识别感兴趣的特定对象。这主要涉及到点提示、框提示和文本提示的利用。

点提示

点提示的目标是将所选点与第一阶段获得的各种掩码进行匹配,以确定点所在的掩码。类似于SAM在方法中采用前景/背景点作为提示。在前景点位于多个掩码中的情况下,可以利用背景点来筛选出与当前任务无关的掩码。通过使用一组前景/背景点,我们能够选择感兴趣区域内的多个掩码。这些掩码将被合并为一个单独的掩码,完整标记出感兴趣的对象。此外,还可以利用形态学操作来提高掩码合并的性能。

框提示

框提示涉及将所选框与第一阶段中对应的边界框进行IoU(交并比)匹配。目标是识别与所选框具有最高IoU得分的掩码,从而选择感兴趣的对象。

文本提示

在文本提示的情况下,我们使用CLIP模型提取文本的相应嵌入。然后,确定与每个掩码的固有特征进行匹配的图像嵌入,并使用相似度度量方法进行匹配。选择与文本提示的图像嵌入具有最高相似度得分的掩码。

通过精心实施这些基于提示的选择技术,FastSAM可以可靠地从分割图像中选择特定的感兴趣对象。上述方法为在实时情况下完成segment anything任务提供了高效的方式,从而极大地增强了YOLOv8模型在复杂图像分割任务中的实用性。对于更有效的基于提示的选择技术,将留待未来探索。

实验结果

16133fda-153f-11ee-962d-dac502259ad0.png

SAM和FastSAM在单个NVIDIA GeForce RTX 3090 GPU上的运行速度对比。可以看出,FastSAM在所有提示数量上超过了SAM。此外,FastSAM的运行速度与提示数量无关,使其成为"Everything mode"的更好选择。

162d4858-153f-11ee-962d-dac502259ad0.png

FastSAM分割结果

16e3bf02-153f-11ee-962d-dac502259ad0.png

边缘检测zero-shot能力评估-量化指标评估

1706b3b8-153f-11ee-962d-dac502259ad0.png

边缘检测zero-shot能力评估-可视化结果评估

1740447a-153f-11ee-962d-dac502259ad0.png

在COCO的所有类别上与无需学习的方法进行比较。此处报告了无需学习的方法、基于深度学习的方法(在VOC上进行训练)以及本文方法与SAM方法在所有泛化上的平均召回率(AR)和AUC对比结果。

175a17f6-153f-11ee-962d-dac502259ad0.png

与OLN和SAM-H的比较

177fa43a-153f-11ee-962d-dac502259ad0.png

17a12fce-153f-11ee-962d-dac502259ad0.png

1823ad0a-153f-11ee-962d-dac502259ad0.png

183c051c-153f-11ee-962d-dac502259ad0.png

在异常检测中的应用,其中SAM-point/box/everything分别表示使用点提示、框提示和全部模式。

18767652-153f-11ee-962d-dac502259ad0.png

在显著性分割中的应用,其中SAM-point/box/everything分别表示使用点提示、框提示和全部模式。

18b8994c-153f-11ee-962d-dac502259ad0.png

在建筑物提取中的应用,其中SAM-point/box/everything分别表示使用点提示、框提示和全部模式。

191a0efc-153f-11ee-962d-dac502259ad0.png

相比SAM,FastSAM在大对象的狭窄区域上可以生成更精细的分割掩码。

Limitations

总体而言,FastSAM在性能上与SAM相当,并且比SAM (32×32) 快50倍,比SAM (64×64) 快170倍。其运行速度使其成为工业应用的良好选择,如道路障碍检测、视频实例跟踪和图像处理。在一些图像上,FastSAM甚至能够为大尺寸对象生成更好的掩码。

195020b4-153f-11ee-962d-dac502259ad0.png

图11

然而,正如实验中所展示的,FastSAM在生成框上具有明显的优势,但其掩码生成性能低于SAM,如上图11所示。FastSAM具有以下特点:

低质量的小尺寸分割掩码具有较高的置信度分数。作者认为这是因为置信度分数被定义为YOLOv8的边界框分数,与掩码质量关系不大。改变网络以预测掩码的IoU或其它质量指标是改进的一种方式。

一些微小尺寸对象的掩码倾向于接近正方形。此外,大尺寸对象的掩码可能在边界框的边缘出现一些伪影,这是YOLACT方法的弱点。通过增强掩码原型的能力或重新设计掩码生成器,可以预期解决这个问题。

结论

在本文中,我们重新思考了Segment Anything的任务和模型架构选择,并提出了一种替代方案,其运行速度比SAM-ViT-H (32×32)快50倍。实验证明,FastSAM可以很好地解决多个下游任务。然而,FastSAM还存在一些可以改进的弱点,例如评分机制和实例掩码生成范式。这些问题将留待未来的研究解决。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    2709

    浏览量

    47716
  • SAM
    SAM
    +关注

    关注

    0

    文章

    108

    浏览量

    33363
  • 数据集
    +关注

    关注

    4

    文章

    1179

    浏览量

    24366

原文标题:中科院自动化所发布FastSAM | 精度相当,速度提升50倍!!!

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一个全新的无监督不需要明确物体种类的实例分割算法

    这个问题也可以被解读于:我们如何通过对现实世界中的部分信息来进行训练学习,实现对激光点云中的实例物体进行推理。目前先进的方法也有通过语义
    的头像 发表于 10-11 09:30 1956次阅读

    Detectron训练第三方数据测试

    从零开始使用Detectron训练第三方数据是什么体验(六)
    发表于 04-14 11:44

    使用YOLOv3训练BDD100K数据之开始训练

    (三)使用YOLOv3训练BDD100K数据之开始训练
    发表于 05-12 13:38

    一种先分割后分类的两阶段同步端到端缺陷检测方法

    出的扩展对总体结果改进的贡献。简介一种新颖的两阶段体系结构已被证明在表面缺陷检测中非常成功。具体来说,是在第一阶段进行缺陷分割,然后在第二阶段对有缺陷与无缺陷的表面按图像分类。但是,现有的两阶
    发表于 07-24 11:01

    用于计算机视觉训练的图像数据介绍

    用于计算机视觉训练的图像数据
    发表于 02-26 07:35

    几大主流公开遥感数据

    By 超神经内容提要:利用遥感影像进行土地类别分型,最常用的方法是语义分割。本文继上期土地分类模型训练教程之后,又整理了几大主流公开遥感数据
    发表于 08-31 07:01

    一种基于机器学习的建筑物分割掩模自动正则化和多边形化方法

    出适应预测建筑物角点对应稀疏结果的骨干卷积神经网络( CNN )。在3个建筑物分割数据上的实验表明,该方法.
    发表于 09-01 07:19

    一个benchmark实现大规模数据上的OOD检测

    的样本类别,所以在训练模型过程中,需要完成对于OOD样本的检测。然而,现有的解决方案主要是由小型、低分辨率的数据驱动的,如CIFAR和MNIST。像自动驾驶汽车这样的部署系统通常对分
    发表于 08-31 15:11

    YOLOv6中的用Channel-wise Distillation进行的量化感知训练

    预测任务很有价值。  作者对一些密集的预测任务进行了实验,包括语义分割和目标检测。实验表明提出的方法大大优于最先进的蒸馏方法,并且在训练期间
    发表于 10-09 16:25

    使用KNN进行分类和回归

    的参数不是根据训练数据估计出来的。为了预测响应变量,它存储所有训练实例并使用最接近实例进行测试。
    发表于 10-28 14:44

    深度学习在医学图像分割与病变识别中的应用实战

    等方面具有重要意义。本文将介绍这一领域的背景、挑战,以及通过一个代码实例展示如何利用深度学习方法进行医学图像分割与病变识别。 背景与挑战医学图像
    发表于 09-04 11:11

    图像分割基础算法及实现实例

    图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的
    发表于 12-18 18:19 9122次阅读
    图像<b class='flag-5'>分割</b>基础算法及实现<b class='flag-5'>实例</b>

    算法 | 超Mask RCNN速度4倍,仅在单个GPU训练的实时实例分割算法

    YOLACT——Real-time Instance Segmentation提出了一种简洁的实时实例分割全卷积模型,速度明显优于以往已有的算法,而且就是在一个 GPU 上训练取得的!
    的头像 发表于 06-11 10:34 7006次阅读

    分析总结基于深度神经网络的图像语义分割方法

    随着深度学习技术的快速发展及其在语义分割领域的广泛应用,语义分割效果得到显著提升。对基于深度神经网络的图像语义分割方法进行分析与总结,根据网
    发表于 03-19 14:14 21次下载
    分析总结基于深度神经网络的图像语义<b class='flag-5'>分割</b><b class='flag-5'>方法</b>

    机器视觉图像分割方法有哪些?

    现有的图像分割方法主要分以下几类:基于阈值(threshold)的分割方法、基于区域的分割
    发表于 11-02 10:26 387次阅读
    机器视觉图像<b class='flag-5'>分割</b>的<b class='flag-5'>方法</b>有哪些?