了解FastSam:一个通用分割模型(草记)(2)

简介: 2 Sam相关项目阅读:Segment Anything(sam)项目整理汇总新鲜名词:点云分割,有趣的项目:

了解FastSam:一个通用分割模型(草记)(1):https://developer.aliyun.com/article/1407235?spm=a2c6h.13148508.setting.17.79f64f0ecKMDuK

2 Sam相关项目

阅读:Segment Anything(sam)项目整理汇总

新鲜名词:点云分割,

有趣的项目

Grounded-Segment-Anything:包含图像编辑,此外还有其它不少东西。


Personalize-SAM:仅给定一张带有参考mask的图像,PerSAM 无需任何训练即可在其他图像或视频中分割特定的目标,例如您的宠物狗。也提供了微调,但是只训练了2个参数。


Inpaint-Anything:图像编辑,包含移除目标,填充目标,替换目标等。


EditAnything:重新生成图像中的一部分。


小结:文章各种项目挺多的,不过好些都有些相似。包括对SAM模型的微调与场景移植,与视频处理结合,与文字提示结合(如CLIP),3d,以及一些相关的部署优化项目。此外还有辅助标注工具。

3 Sam论文解读

阅读:【论文解读】MetaAi SAM(Segment Anything) 分割一切

Sam模型的输出是无标记的纯掩码。

名词:prompt engineering,embedding,tokken,nms

摘句

在网络数据集上预训练的大语言模型具有强大的zero-shot(零样本)和few-shot(少样本)的泛化能力,这些"基础模型"可以推广到超出训练过程中的任务和数据分布,这种能力通过“prompt engineering”实现

比如CLIP和ALIGN利用对比学习,将文本和图像编码进行了对齐,通过提示语生成image encoder,就可以扩展到下游任务

论文的目的是建立一个图像分割的基础模型,开发一个具有提示能力的模型。

先标注数据进行训练模型,然后用模型辅助标注数据,如此建立一个数据循环。

训练时模拟交互分割的过程,从目标mask中随机选取前景点或者box,点是从gt mask选取,box增加长边10%的噪声,最大20像素。

在第一次prompt预测mask之后,后续是从预测mask和gt mask有差异的区域采样点,

mask 用focal loss和dice loss进行线性组合,系数(20:1),iou 用mse loss。

小结:感觉好像看了很多东西,但如果让我回忆一下,我脑子里面好像又没有什么东西。文中陌生的东西太多了,很多我都没什么概念,可能也就无法将它们联系起来而在我脑海里面生成一个整体的图景。

4 FastSam & Sam & MobileSam

阅读:(1)【Paper日记】FastSAM vs. MobileSAM vs. SAM


(2)【SAM】SAM & Fast SAM & Mobile SAM


名词:ViT-H,freeze解码器,知识蒸馏,对象提议,object-level


摘句:

FS虽然里面有SAM,但其实本质上并不是在SAM上进行优化架构,而是选择了一条完全不同的道路——采用带有实例分割分支的CNN网络。

一方面,按原始SAM的训练方法来训练一个新的SAM模型极不划算;另一方,由于图像编码器和分割掩码解码器之间的耦合优化,很难复现甚至改进FAIR他们的成果。

MS指出FS的工作achieved superior performance,而MS比FS的模型小7倍,速度快4倍,且mIoU远高于FS。

FastSAM经常无法预测一些对象;此外,有时很难解释掩模提议;其次,FastSAM经常生成具有非平滑边界的掩模。

虽然说FastSAM中带SAM,但其实已经和SAM的工作没有太大关系了,个人感觉是聚焦于Segment Anythin Task,用传统CNN的架构去解决大模型在实际应用中遇到的问题。而MobileSAM是基于SAM的架构提出了轻量化版本

sam模型是 promptable,包括 point, bbox, masks, text

(sam)训练过程中不使用任何数据增强

(fastsam的text-prompt效果差)个人分析原因为,CLIP 训练是 4 亿图文对特征对齐的训练,而并不是 object-level 与文本的对齐,使用分割数据训练好的 YOLOv8-seg 的图像特征直接与 CLIP 对应的文本特征进行强对齐(没经过训练),由于分割数据和训练 CLIP 的图像数据没有半毛钱关系,所以 mask 的特征与文本特征很难对齐,从而 text prompt 的方式效果很差是可以想通的。其实这一点是我一直想吐槽的,一直感觉将 CLIP 作为打通图文多模态的一个桥梁,多少是有点牵强的。

摘图:


Sam:

198766c300b348cb92c53d958b009564.pngFastSam

216cf7bd067d49ea9df8cb1e4b2ad253.png小结:脑子里还是比较模糊,fastsam和sam的区别。

文(2)中有些东西说得更加细致、丰富一些,但用的英文词比较多,比如object-level。

5 YOLACT

阅读:(1)【实例分割】YOLACT: Real-time Instance Segmentation


FastSam对于 all-instance segmentation阶段,网络结构基于YOLOv8-seg(YOLOv8 + YOLACT)


YOLACT:You Only Look At CoefficienTs.


(2)【经典论文解读】YOLACT 实例分割(YOLOv5、YOLOv8实例分割的基础)


这篇文章解释得要更清楚、细致些。

名词:FCN,anchor,NMS(又看见它),protonet,FPN特征金字塔,


摘句:


mask 模板产生的分支(protonet)针对每幅图像预测 k 个模板mask,用FCN的方式来实现protonet,FCN最后一层有 k 个channel,每个channel对应一个模板。

c57177663b094767b2810743848aacda.png

小结:文中说模型分为两个并行的过程(1)产生一系列模板mask,该mask是不基于任何一个实例的,而是基于整张输入图片的;(2)预测对于每个实例mask的系数。之后将模板mask和实例mask系数进行线性组合来获得实例的mask。


可是看了后面的解释,我还是没有懂文中的**”预测mask的系数“和”线性组合“**,具体是在干嘛。


将实例分割任务,划分为两个并行任务;(目标检测Detect、实例分割mask 是并行计算的,这样设计的网络是单阶段的,适合YOLO系列,速度快)

比如在一张街道场景的图片,图中有行人、车辆、建筑物、树木等,当检测分支框中的是行人,那么行人相关的mask原型图置信度高(头、身体、手、脚、随身物品等的位置、轮廓、编码位置敏感的方向等原型图),其它的类别mask原型图置信度低,这样组合形成实例分割的结果。

在 prototype 空间,某些 prototypes 对图片空间分块,某些 prototypes 定位实例······ (不懂这些分工与组合是怎样产生的)


相关文章
|
机器学习/深度学习 算法 自动驾驶
|
人工智能 自然语言处理 物联网
中文LLaMA模型和指令精调的Alpaca大模型:中文数据进行二次预训练,进一步提升了中文基础语义理解能力
中文LLaMA模型和指令精调的Alpaca大模型:中文数据进行二次预训练,进一步提升了中文基础语义理解能力
中文LLaMA模型和指令精调的Alpaca大模型:中文数据进行二次预训练,进一步提升了中文基础语义理解能力
|
2月前
|
机器学习/深度学习 JSON 算法
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
本文介绍了DeepLab V3在语义分割中的应用,包括数据集准备、模型训练、测试和评估,提供了代码和资源链接。
292 0
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
|
3月前
|
自然语言处理 测试技术
明确了:文本数据中加点代码,训练出的大模型更强、更通用
【9月更文挑战第18天】《To Code, or Not To Code? Exploring Impact of Code in Pre-training》一文探讨了在大型语言模型(LLMs)预训练中引入代码数据的影响。研究显示,包含代码数据能显著提升模型的总体性能,尤其在自然语言推理和代码任务上表现突出。作者通过广泛的消融实验验证了这一结论,但同时也指出需关注潜在的负面效应及模型架构等因素的影响。更多详细信息,请参阅论文原文:[链接](https://arxiv.org/abs/2408.10914)。
60 10
|
7月前
|
算法 数据处理 计算机视觉
论文介绍:基于点标注的实例分割
【5月更文挑战第24天】研究人员提出了一种创新的弱监督实例分割方法,通过点标注代替传统的像素级掩模标注,显著降低数据标注成本和时间。点标注方案只需在对象边界框内标注少量点,与Mask R-CNN兼容,实现接近全监督性能。改进的PointRend模块(Implicit PointRend)在点监督下表现出色,简化了模型设计。实验表明,使用10个点标注的Mask R-CNN能达到全监督模型的性能,为实例分割的实际应用开辟了新途径。尽管取得初步成功,但面临处理不同尺度对象和提高泛化能力的挑战。
80 4
|
7月前
|
测试技术
Vript:最为详细的视频文本数据集,每个视频片段平均超过140词标注 | 多模态大模型,文生视频
[Vript](https://github.com/mutonix/Vript) 是一个大规模的细粒度视频文本数据集,包含12K个高分辨率视频和400k+片段,以视频脚本形式进行密集注释,每个场景平均有145个单词的标题。除了视觉信息,还转录了画外音,提供额外背景。新发布的Vript-Bench基准包括三个挑战性任务:Vript-CAP(详细视频描述)、Vript-RR(视频推理)和Vript-ERO(事件时序推理),旨在推动视频理解的发展。
143 1
Vript:最为详细的视频文本数据集,每个视频片段平均超过140词标注 | 多模态大模型,文生视频
|
7月前
|
SQL Oracle 关系型数据库
C# 利用IDbDataAdapter / IDataReader 实现通用数据集获取
C# 利用IDbDataAdapter / IDataReader 实现通用数据集获取
|
7月前
|
自然语言处理 语音技术
语言大模型和文本大模型的区别
【2月更文挑战第16天】语言大模型和文本大模型的区别
171 2
语言大模型和文本大模型的区别
|
7月前
|
机器学习/深度学习 存储 编解码
了解FastSam:一个通用分割模型(草记)(1)
一、FastSam下载与体验 1 问题记录 似乎从网页上下载压缩包,会比使用git clone要方便很多。 1 CLIP是什么?
412 0
|
编解码 自然语言处理 并行计算
【经典论文解读】YOLACT 实例分割(YOLOv5、YOLOv8实例分割的基础)
 YOLACT是经典的单阶段、实时、实例分割方法,在YOLOv5和YOLOv8中的实例分割,也是基于 YOLACT实现的,有必要理解一下它的模型结构和设计思路。
1876 0