摘要
最近提出的分割任何模型 (SAM) 在许多计算机视觉任务中产生了重大影响。它正在成为许多高级任务的基础步骤,例如图像分割、图像标题和图像编辑。然而,其巨大的计算成本阻碍了它在工业场景中的广泛应用。计算主要来自高分辨率输入下的 Transformer 架构。在本文中,我们提出了一种具有可比性能的加速替代方法来完成这项基本任务。通过将任务重新表述为分段生成和提示,我们发现具有实例分割分支的常规 CNN 检测器也可以很好地完成这项任务。具体来说,我们将这个任务转换为经过充分研究的实例分割任务,并直接使用 SAM 作者发布的 SA-1B 数据集的 1/50 来训练现有的实例分割方法。使用我们的方法,我们以 50 倍更高的运行速度实现了与 SAM 方法相当的性能。我们给出了足够的实验结果来证明其有效性。代码和演示:GitHub - CASIA-IVA-Lab/FastSAM: Fast Segment Anythinghttps://github.com/CASIA-IVA-Lab/FastSAM
1 SAM与FastSAM
Segment Anything Model (SAM)被提出。它被认为是一个里程碑式的愿景基础模型。它可以在各种可能的用户交互提示的引导下分割图像中的任何对象。SAM 利用在广泛的 SA-1B 数据集上训练的 Transformer 模型,使其能够巧妙地处理各种场景和对象。SAM 为一项激动人心的新任务打开了大门,称为 Segment Anything。由于其可推广性和潜力,这项任务具有成为未来广泛视觉任务的基石的所有条件。然而,尽管取得了这些进步,并且SAM和后续模型在处理细分市场任何任务方面都显示出可喜的结果,但其实际应用仍然具有挑战性。最突出的问题是与 Transformer (ViT) 模型相关的大量计算资源需求,而 Transformer 模型是 SAM 架构的主要部分。与卷积对应物相比,ViT因其繁重的计算资源需求而脱颖而出,这给它们的实际部署带来了障碍,尤其是在实时应用中。因此,这种限制阻碍了细分任何任务的进展和潜力。
FastSAM为分割一切设计了一个实时解决方案。我们将任务细分为两个顺序阶段,即全实例分割和提示引导选择。第一阶段取决于基于卷积神经网络(CNN)的检测器的实现,它生成图像中所有实例的分割掩码。然后在第二阶段,它输出与提示相对应的感兴趣区域。通过利用CNN的计算效率,该方法证明了任何模型的实时分割都是可以实现的,而不会对性能质量产生太大影响。希望所提出的方法能够促进分割任何东西的基础任务的工业应用。
1.1 FastSAM的优势与应用价值
FastSAM是基于一个配备实例分割分支的目标检测模型 YOLOv8-seg,YOLOv8-seg利用了 YOLACT方法。FastSAM通过在仅 2% (1/50) 的 SA-1B 数据集(SAM发布的广泛的SA-1B数据集)上直接训练该 CNN 检测模型,它实现了与 SAM 相当的性能,但计算和资源需求大大降低,从而实现了实时应用。FastSAM能够应用于多个下游分割任务,其在 MS COCO的对象提案任务中,在 AR1000 上获得了 63.7 分(SAM 的 32×32 点提示输入高出 1.2 分),但在单个 NVIDIA RTX 3090 上运行速度快了 50 倍。
实时分割一切的模型对于工业应用都很有价值。它可以应用于许多场景。所提出的方法不仅为大量视觉任务提供了一种新的、实用的解决方案,而且速度非常快,比现有方法快几十倍或几百倍。它还为一般视觉任务的大型模型架构提供了新视图。对于特定任务,特定模型仍然会利用优势来获得更好的效率准确性权衡。然后,在模型压缩的意义上,我们的方法证明了一种路径的可行性,该路径可以通过在结构中引入人工先验来显着减少计算工作量。
1.2 FastSAM的贡献
为Segment Anything任务引入了一种基于CNN的新型实时解决方案,该解决方案在保持竞争性能的同时显著降低了计算需求。这项工作首次将 CNN 检测器应用于细分任何任务,为轻量级 CNN 模型在复杂视觉任务中的潜力提供了见解。在多个基准上对所提出的方法和 SAM 进行比较评估,可以深入了解该方法在任何领域的优势和劣势。
2 方法
如上图所示该方法由两个阶段组成,即全实例分段 (AIS) 和提示引导选择 (PGS)。前一阶段是基础,使用 YOLOv8-seg来分割图像中的所有对象或区域;第二阶段本质上是面向任务的后处理,使用各种提示来识别感兴趣的特定对象(主要涉及点提示、框提示和文本提示的利用,其中文本提示是基于 CLIP)。这与端到端转换器不同,整体方法引入了许多与视觉分割任务相匹配的人类先验,如卷积和感受野相关对象分配策略。这使得它专为视觉分割任务量身定制,并且可以更快地收敛到较少数量的参数上。
2.1 全实例分割
模型结构:YOLOv8 的架构是从其前身 YOLOv5发展而来的,集成了 YOLOX、YOLOv6 和 YOLOv7等最新算法的关键设计方面。YOLOv8 的骨干网和颈部模块用 C2f 模块取代了 YOLOv5 的 C3 模块。更新后的 Head 模块采用解耦结构,将分类头和检测头分开,并从基于锚点转变为无锚点。
实例分割:YOLOv8-seg应用YOLACT[4]原则进行实例分割。它首先通过backbone网络和特征金字塔网络(FPN)从图像中提取特征,整合不同大小的特征。输出包括检测和分割分支。
检测分支输出类别和边界框,而分割分支输出k个原型(在FastSAM中默认为32)以及k个掩码系数。分割和检测任务并行计算。分割分支输入高分辨率的特征图,保留空间细节,并包含语义信息。该特征图经过上采样卷积层处理,然后经过另外两个卷积层输出掩码。掩码系数类似于检测头的分类分支,范围在-1到1之间。实例分割结果是通过将掩码系数与原型相乘然后求和得到的。YOLOv8可以用于各种对象检测任务。有了实例分割分支,YOLOv8Seg就非常适合“Segment Anything”任务了,该任务旨在准确检测和分割图像中的每个对象或区域,无论对象类别如何。原型和掩码系数为提示引导提供了很多扩展性。作为一个简单的例子,还额外训练了一个简单的提示编码器和解码器结构,输入为各种提示和图像特征嵌入,输出为掩码系数。在FastSAM中,直接使用YOLOv8-seg方法进行所有实例分割阶段。
2.2 提示引导的选择
使用YOLOv8成功分割图像中的所有对象或区域后,“Segment Anything”任务的第二阶段是使用各种提示来识别特定的感兴趣对象。它主要涉及使用点提示、框提示和文本提示。
点提示:点提示包括将选定的点与第一阶段获得的各种掩码匹配。目标是确定点所在的掩码。与SAM一样,我们在我们的方法中使用前景/背景点作为提示。当前景点位于多个掩码中时,可以使用背景点来过滤与手头任务无关的掩码。通过使用一组前景/背景点,我们能够在感兴趣区域中选择多个掩码。这些掩码将合并为一个掩码,以完全标记感兴趣的对象。此外,我们使用形态学操作来提高掩码合并的性能。
框提示:框提示涉及执行选定框与第一阶段各种掩码对应的边界框之间的交并比(IoU)匹配。目标是识别与选定框IoU分数最高的掩码,从而选择感兴趣的对象。
文本提示:在文本提示的情况下,使用CLIP模型提取文本的相应文本嵌入。然后确定各自的图像嵌入,并使用相似性度量将它们与每个掩码的内在特征匹配。然后选择与文本提示的图像嵌入相似度分数最高的掩码。通过仔细实施这些prompt引导的选择技术,FastSAM可以可靠地从分割后的图像中选择特定的感兴趣对象。上述方法为实时完成“Segment Anything”任务提供了一种有效的方式,从而大大增强了YOLOv8模型在复杂图像分割任务中的实用性。更有效的prompt引导选择技术留待未来的探索。
3 实验
在这一部分中,我们首先分析了FastSAM的运行时间效率。然后,我们在四种零样本任务上进行实验,包括在现实世界场景中的效率和部署。在实验的第一部分,我们的目标是测试FastSAM和SAM之间的能力相似性。按照SAM的方式,我们也在不同层次上进行了四项任务的实验:(1) 低级:边缘检测,(2) 中级:对象提议生成,(3) 高级:实例分割,以及 (4) 高级:使用自由形式文本输入进行对象分割。我们的实验还进一步验证了FastSAM在现实世界应用和速度方面的能力。
3.1 运行时间效率评估
SAM使用Transformer架构构建端到端算法。Transformer是一种通用架构,能够表示各种任务的多种映射函数。为了实现“Segment Anything”,SAM通过大规模数据学习过程中学习面向视觉的归纳偏差。与此相反,FastSAM通过在结构设计中引入人类先验知识,获得了一个相对紧凑的模型。从图 3中可以看出,FastSAM生成了相对令人满意的结果。在表 1中,我们报告了在单个NVIDIA GeForce RTX 3090 GPU上SAM和FastSAM的运行速度。可以看出,FastSAM在所有提示数量上都超过了SAM。此外,FastSAM的运行速度不会随着提示数量的变化而改变,这使其成为Everything模式下更好的选择。
3.2 零样本边缘检测
方法:FastSAM在BSDS500上评估基本的低级任务——边缘检测。具体来说,我们从FastSAM的全实例分割阶段的结果中选择掩码概率图。然后,应用Sobel滤波到所有掩码概率图以生成边缘图。最后,我们以边缘NMS步骤结束。
结果:代表性的边缘图如图 4所示。通过定性观察,很明显尽管FastSAM的参数数量大大减少(只有68M),它仍然生成了一般良好的边缘图。与真实情况相比,FastSAM和SAM都倾向于预测更多的边缘,包括一些在BSDS500中未注释的逻辑边缘。这种偏差在表 2中得到了定量反映。表2显示我们与SAM实现了类似的性能,具体来说,R50更高,AP更低。
3.3 零样本对象提议生成
背景:对象提议生成长期以来一直是许多计算机视觉任务的基本预处理步骤,包括一般对象检测、少样本对象检测和图像理解。许多著名的提议生成方法见证了过去几十年视觉识别的演变,作为视觉识别方法的基本步骤的角色。这些提议生成方法包括EdgeBox、Geodesic、Selective Search、MCG等。近年来,提出了许多基于深度学习的方法,如DeepMask、OLN。例如,RCNN系列对象检测方法采用了Selective Search方法,而最近提出的开放世界检测器UniDetector采用了OLN方法。尽管RPN被大多数现有的对象检测器使用,但它只能生成已学习类别的对象提议,限制了其在开放词汇识别任务中的应用。因此,零样本对象提议生成非常重要。一个好的提议方法对于这些视觉识别任务的良好性能至关重要。
我们直接使用FastSAM第一阶段生成的边界框作为对象提议。为了评估性能,我们在LVIS和 COCO数据集上进行测试,遵循现有的评估策略。此外,按照SAM的实验设置,我们还测试了掩码提议的准确性,使用第一阶段的所有实例掩码。
细节。我们在LVIS数据集上报告了SAM、ViTDet 和我们的FastSAM的结果。由于SAM没有公开其详细的评估代码,我们使用官方LVIS评估代码复制了类别不可知的掩码和框召回。然而,我们未能复制SAM论文中ViTDet和SAM的Mask AR结果。尽管如此,我们认为我们的评估结果仍然反映了FastSAM与SAM相比的几个特点。
在COCO的所有类别上与无需学习的方法进行比较。我们报告了无需学习的方法、在VOC上训练的深度学习方法,以及我们与SAM在所有泛化上的AR和AUC。竞争方法的分数取自 ,它在所有80个COCO类别上测试对象提议方法。
在LVIS v1上的对象提议生成。FastSAM和SAM是零样本应用,即它没有为对象提议生成进行训练,也没有访问LVIS图像或注释。
在LVIS v1上的对象提议生成。FastSAM和SAM是零样本应用,即它没有为对象提议生成进行训练,也没有访问LVIS图像或注释。
4.4 零样本实例分割
方法:与SAM方法类似,我们通过使用由ViTDet生成的边界框作为提示来完成实例分割任务。如第3.3节所述,我们选择与边界框相交并比(IoU)最高的掩码作为预测掩码。
结果:表 6 给出了评估结果。在这项任务上,我们未能实现很高的平均精度(AP)。我们推断这主要是因为分割掩码的准确性或者基于框的掩码选择策略。第6节提供了几个示例。
4.5 零样本基于文本提示的对象定位
方法:最后,我们考虑一个更高级别的任务,即通过自由形式的文本提示来分割对象。这个实验是为了展示FastSAM处理文本提示的能力,就像SAM一样。与SAM不同的是,FastSAM不需要修改训练过程。它直接在推理时将文本通过CLIP的文本编码器,然后使用得到的文本嵌入在推理时找到最相似的掩码。
结果:我们在图 6 中展示了定性结果。FastSAM能够根据文本提示很好地分割对象。尽管如此,文本到掩码分割的运行速度并不令人满意,因为每个掩码区域都需要被送入CLIP特征提取器。如何将CLIP嵌入提取器整合到FastSAM的骨干网络中,仍然是一个有趣的问题,涉及到模型压缩。
5. 现实世界应用
在这一部分中,我们评估了FastSAM在不同应用场景中的性能,并分析了它的优势和局限性。我们展示了使用点提示、框提示和全部模式的FastSAM分割的可视化,并与SAM和真实情况进行了比较。
异常检测。如文献[3]中详细描述的,异常检测是一个旨在区分制造中缺陷和正常样本的任务。FastSAM使用MVTec AD数据集[3]进行评估,结果展示在图 7 中。在全部模式下,FastSAM可以像SAM一样分割几乎所有区域,但与SAM相比精度较低。此外,背景的掩码没有完全覆盖整个背景,这是YOLACT[4]的一个固有特性。通过前景/背景点(在FastSAM点中分别用黄色和品红色点表示)或框引导选择,FastSAM可以精确地分割到确切的缺陷区域。
显著对象分割。显著对象分割[5]的目标是从图像中分割出最引人注目的对象。这项任务是类别不可知的,这将其与语义分割区分开来。我们在著名的显著性数据集ReDWeb-S[27]上应用FastSAM。如图 8 所示,FastSAM在全部模式下与SAM仅有微小差异,因为它分割了较少与任务无关的背景对象。通过点引导选择,例如FastSAM点中的黄色点,我们可以获得所有感兴趣对象的掩码。FastSAM点的分割结果几乎与SAM点和真实情况相同,只是在边缘处丢失了一些细节。也可以通过框提示选择感兴趣的对象,例如FastSAM框中的绿色框。然而,即使是SAM框,也无法用单个框选择多个对象。
建筑物提取。从光学遥感图像中提取建筑物在城市规划等许多领域都有广泛的应用。我们在文献提出的数据集上评估了FastSAM。如图 9 所示,FastSAM在分割规则形状的对象方面表现良好,但与SAM相比,它分割的与阴影相关的区域较少。我们还可以像在FastSAM点和FastSAM框中展示的那样,使用点提示和框提示选择感兴趣区域。值得注意的是,我们在FastSAM点中的阴影区域放置了一个点。然而,通过基于这个点的合并,我们仍然可以获得建筑物的正确掩码。这表明我们的方法在一定程度上可以抵抗噪声的干扰。
6. 讨论
总的来说,提出的FastSAM在性能上与SAM相当,并且比SAM(32×32)快50倍,比SAM(64×64)快170倍。运行速度使其成为工业应用的良好选择,例如道路障碍物检测、视频实例跟踪和图像处理。在某些图像上,FastSAM甚至为大型对象生成了更好的掩码。如图10所示。
缺点:然而,正如实验中所展示的,我们的盒子生成具有显著的优势,但我们的掩码生成性能低于 SAM。我们在图 11 中可视化了这些示例。我们发现 FastSAM 具有以下特点:
1、低质量的小尺寸分割掩码具有较大的置信度得分。我们认为这是因为置信度得分定义为 YOLOv8 的 bbox 得分,与掩码质量没有很强的相关性。修改网络以预测掩码 IoU 或其他质量指标是一种改进方法。
2、 一些微小物体的掩码往往接近正方形。此外,大物体的掩码可能在边界框的边界上有一些伪影。这是 YOLACT 方法的弱点。通过增强掩码原型的容量或重新制定掩码生成器,该问题有望得到解决。
此外,由于我们仅使用所有 SA-1B 数据集的 1/50,因此通过利用更多的训练数据还可以进一步提高模型的性能。
7. 结论
本文重新思考了任务的细分和模型架构的选择,并提出了一种替代方案,其运行速度比 SAM-ViT-H(32×32)快 50 倍。实验表明,Fast SAM 可以很好地解决多个下游任务。不过,Fast SAM 仍有几个弱点可以改进,例如评分机制和实例掩码生成范例。这些问题留待将来研究。