1.SAM是什么?
SAM是基于NLP的一个基础模型,专注于提示分割任务,使用提升工程来适应不同的下游分割任务。
2.SAM有什么用?
1)SAM 可以通过简单地单击或交互选择要包含或排除在对象中的点来分割对象。还可以通过使用多边形工具绘制边界框或分割区域来创建分割,它将捕捉到对象。
2)当在识别要分割的对象时遇到不确定性时,SAM 能够生成多个有效的掩膜。
3)SAM 能够自动识别图像中存在的所有对象并生成掩膜。
4)在预先计算图像嵌入后,SAM 可以立即为任何提示提供分割掩膜,从而实现与模型的实时交互。
3.SAM的网络架构和设计
1)SAM总体架构包括图像编码器,提升编码器,轻量级的掩膜解码器
2)SAM的输入一张图像的大概工作流程
3)图像编码器
图像编码器(如vision Transformer)生成一次性图像嵌入(在提升模型之前应用)
4)提示编码器
提示编码器将背景点、掩膜、边界框或文本实时编码为嵌入向量。对提示输入分成两组:稀疏(点、框、文本)和密集(掩膜)。点和框由位置编码表示,并为每种提示类型添加学习的嵌入。自由格式的文本提示由CLIP的现成文本编码器表示。密集提示(如掩膜)通过卷积嵌入,并通过图像嵌入按元素求和。
5)轻量级掩膜编码器
轻量级掩膜编码器根据图像和提示编码器的嵌入来预测分割掩膜。它将图像嵌入、提示嵌入和输出token映射到掩码。所有嵌入均由解码器块更新,解码器块在两个方向(从提示到图像嵌入再返回)使用即时自注意力和交叉注意力。
掩膜带有标注并用于更新模型权重。这种布局增强了数据集,并允许模型随着时间的推移进行学习和改进,使其高效且灵活。