赞
踩
Segment Anything(SA)项目:一个用于图像分割的新任务、新模型和新数据集
通过FM(基础模型)+prompt解决了CV中难度较大的分割任务,给计算机视觉实现基础模型+提示学习+指令学习提供了一种思路
关键:加大模型容量(构造海量的训练数据,或者构造合适的自监督任务来预训练)
SAM(segment anything model)模型总体上分为3大块:
SAM中的图像编码器使用 MAE预训练的Vision Transformer (ViT) 作为图像编码器,可以适应高分辨率输入。具体的图像编码器支持vit-h,vit-l,vit-b,vit经过了MAE方式的预训练,MAE属于图像中自监督学习的一种,如下图:
训练完成后我们只使用encoder来提取图像特征。从原始模型可以看出,图像的表征embedding是不变的,也就可以在已经编码好的图像embedding多次进行不同的prompt输入得到期望的结果,这个对交互式分割的场景是非常有用的。
基于分割的任务需求,SAM 支持的prompt可以分为稀疏类型和稠密类型两类。
稀疏类型(sparse prompt):包含 point,bbox,free text。
对于point和bbox两类标记:采用sincos的位置编码+学习的类别编码
对于free text标记:采用clip预训练好的text encoder 作为文本编码器
稠密类型(dense prompt)
掩码标记:卷积+使用图像编码进行逐像素求和
(在SAM中使用粗略的分割结果作为稠密的prompt输入,这里通过卷积进行特征提取)
4个token embedding:
iou token embedding和3个分割结果 token的embedding,经过transformer 学习得到token 的embedding 会用于最终的任务头,得到目标结果。
SAM 模型是一个基于 Transformer 的视觉模型,它可以将图像和用户的提示作为输入,输出一个分割掩码,表示每个像素的标签。SAM 模型的关键是如何利用 Transformer 的自注意力机制,来学习图像和提示之间的关系,以及图像内部的结构和语义信息。
Transformer的自注意力机制:
Transformer 的特点是使用自注意力机制,来计算序列中每个元素与其他元素的相关性,从而捕捉序列的全局依赖关系。自注意力机制的公式如下:
A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V Attention(Q,K,V)=softmax(\frac{QK^T}{\sqrt {d_k}})V Attention(Q,K,V)=softmax(dk QKT)V
其中, Q Q Q, K K K, V V V分别表示查询(query),键(key),值(value)矩阵, d k d_k dk是键的维度,softmax是归一化函数。
为了将 Transformer 应用到图像上,SAM 模型首先将图像划分为多个小块,每个小块对应一个像素块,然后将每个像素块的颜色值转化成一个向量,作为 Transformer 的输入序列。这样,每个像素块就相当于 Transformer 中的一个词,而图像就相当于 Transformer 中的一个句子。
为了将用户的提示也作为 Transformer 的输入,SAM 模型使用了一种称为提示编码器(prompt encoder)的模块,它可以将不同类型的提示转换为统一的向量表示,然后与图像的向量表示拼接在一起,作为 Transformer 的输入序列。这样,每个提示就相当于 Transformer 中的一个词,而图像和提示的组合就相当于 Transformer 中的一个句子。
通过 Transformer 的自注意力机制,SAM 模型可以计算图像中每个像素块与其他像素块以及用户的提示之间的相关性,从而学习图像的结构和语义信息,以及用户的意图信息。然后,SAM 模型使用一个线性层,将 Transformer 的输出序列映射为一个分割掩码,表示每个像素块的标签。
SAM 模型的重点在于它能够理解图像内容、用户意图以及它们之间的关联。具体来说,SAM 模型是通过一个掩码解码器 (Mask decoder) 来融合图像编码器和提示编码器的输出的。掩码解码器的关键思想在于Transformer 的自注意力机制和交叉注意力机制。
数据产生的三个阶段:
参考:
五分钟看明白分割一切模型 SAM
Segment Anything论文和源码解读
【模型解读】【代码复现】Segment Anything Model(SAM)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。