比Meta的「分割一切模型」(SAM)更快的图像分割工具,来了!
中科院团队开源了FastSAM模型,能以50倍的速度达到与原始SAM相近的效果,并实现25FPS的实时推理。
该成果在Github已经获得6.9K+次星标,在Twitter、PaperswithCode等平台也受到了广泛关注。
FastSAM模型综述
FastSAM(Fast Segment Anything Model)是一种为了实现快速语义分割而设计的轻量级模型。它采用了YOLO(You Only Look Once)的目标检测框架,并结合了NAS(Neural Architecture Search)技术,旨在提高模型处理速度和效率,同时保持较高的识别精度。FastSAM模型通过将语义分割任务分解为实例分割和提示引导选择两个相对独立的部分,使得模型能够在保持较低计算成本的同时,提供较为精确的图像分割结果。这一模型在多个数据集上取得了较好的性能,尤其是在实时性能方面表现突出。
Fast Segment Anything Model (FastSAM) 是一种基于 CNN 的新型实时解决方案,可用于 Segment Anything 任务。该任务旨在根据各种可能的用户交互提示分割图像中的任何物体。FastSAM 在保持极具竞争力的性能的同时大幅降低了计算需求,使其成为各种视觉任务的实用选择。
FastSAM模型训练与优化
FastSAM模型的训练过程涉及数据准备、模型预训练、微调和量化等多个步骤。这些步骤的实施确保了模型能够适应不同的数据集和应用场景,同时保持高精度和高效率。
-
数据准备:包括数据清洗、标注以及数据增强等步骤,为模型训练做好准备。
-
模型预训练:通常在大规模数据集上进行,如COCO和Object365,以获得良好的初始模型。
-
微调:在特定任务的数据集上进一步训练,以适应新任务的需求。
-
量化:将模型的大小和计算成本降低,同时尽量减少量化带来的精度损失。FastSAM支持INT8量化,能在保持较高精度的同时,实现快速的推理速度
astSAM应用场景
FastSAM由于其优异的性能,适用于多种实际应用场景,如自动驾驶、安防监控、智能机器人等。在这些应用中,FastSAM能够实现实时的目标检测与分割,对保障行车安全、提升公共安全和增强机器人的自主操作能力起到关键作用
FastSAM模型详解
FastSAM模型在设计上融入了多项技术创新,包括:
-
量化感知块(Quantization Aware Blocks):这些模块能够自适应地进行量化,在保证精度的同时减少量化带来的信息损失。
-
选择性量化(Selective Quantization):只对模型中的一部分层进行量化,以优化延迟和精度的平衡。
- AutoNAC(Automated Neural Architecture Creation):这是Deci AI团队开发的自动化神经架构搜索技术,能够在大规模的模型搜索空间中找出高效的架构。
FastSAM的架构设计充分考虑了准确性和效率的权衡,通过NAS技术发现的架构优化,使得模型在多个数据集上都取得了出色的性能。例如,FastSAM在COCO数据集上的mAP(mean Average Precision)达到52.1%,而在延迟控制上也表现优秀
方法
下图展示了https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fimg-home.csdnimg.cn%2Fimages%2F20230724024159.png%3Forigin_url%3DFastSAM%25E7%25BD%2591%25E7%25BB%259C%25E6%259E%25B6%25E6%259E%2584%25E5%259B%25BE%26pos_id%3Dq1PwecZF&pos_id=q1PwecZF。该方法包括两个阶段,即全实例分割和提示引导选择。前一个阶段是基础阶段,第二个阶段本质上是面向任务的后处理。与端到端的Transformer方法不同,整体方法引入了许多与视觉分割任务相匹配的人类先验知识,例如卷积的局部连接和感受野相关的对象分配策略。这使得它针对视觉分割任务进行了定制,并且可以在较少的参数数量下更快地收敛。
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模型在复杂图像分割任务中的实用性。对于更有效的基于提示的选择技术,将留待未来探索。
HuggingFace DEMO:https://huggingface.co/spaces/An-619/FastSAM
Replicate demo:https://replicate.com/casia-iva-lab/fastsam
在【咕泡AI】VX公众号后台回复:211,获取论文代码+目标检测资料,赶快学起来!
论文指导发刊的 【AI交叉学科、SCI、CCF-ABC、期刊、会议、本硕博论文、在职论文指导、大佬Kaggle带队拿牌、 润色发刊等 】
手把手带你从做科研到论文发表,一条龙全方位指导!避免各种常见or离谱的坑,顺顺利利学习,快快乐乐毕业~
0基础也能发论文吗?导师放养?毕业压力?找不到热点课题和方向没有idea、没有数据集,实验验证不了、代码跑不通没有写作基础、不知道论文的含金量,高区低投、不清楚不了解完整的科研经验;评职称?、申博压力、自我高区位的追求
白嫖100G入门到进阶AI资源包+kaggle带队拿牌+就业指导+技术问题答疑
资料包:1、超详细的人工智能学习路
2、OpenCV、Pytorch、YOLO等教程
3、人工智能快速入门教程(Python基础、数学基础、NLP)附源码课件数据
4、机器学习算法+深度学习神经网络基础教程
5、人工智能必看书籍(花书、西瓜书、蜥蜴书等)
6、顶刊论文及行业报告
7、研究生论文攻略及SCI论文攻略及润色等
(需要这个资源包的记得说明您还需要这个资料包)