sam model
Sam model
计算机识别任务
目标分割 —> 目标检测 —> 目标识别 —> 目标追踪
Target Segmentation —> Target Detection —> Target Recognition —> Target Tracking
sam 的厉害之处 在于 零样本学习 和 prompt ---- 这个和chatGPT非常相似
什么是Sam
sagmentation-aware model
Segment分割的本质是:判断图像中的某个像素属于哪一个具体的对象。
prompt可以是以下几种类型:
- point
- box
- mask
- 任意格式的文本
model
Segment Anything Model (SAM) overview. A heavyweight image encoder outputs an image embedding that can then be efficiently queried by a variety of input prompts to produce object masks at amortized(摊销) real-time speed. For ambiguous prompts corresponding to more than one object, SAM can output multiple valid masks and associated confidence scores.
- image 通过 encoder 转换为 image embedding
- Prompt 经过 prompt encoder 转为 prompt embedding
- 上面两个部分的embedding 经过 mask decoder 得到 blending后的 features
SAM 模型架构
Segment Anything Model:卷积神经网络(CNN)和基于 Transformer 的架构结合
-
bone network:预训练的 Vision Transformer
ViT的目的: 从输入图像中提取特征
-
使用了FPN
FPN Feature Pyramid Network 特征金字塔网络
利用深度神经网络在不同层次上提取的特征
通过一个层级结构组合这些特征 —> 从而在多个尺度上有效地检测对象。
FPN举例子理解
-
输入一个图像, 图像包含 不同尺寸和在不同距离上的车辆。
-
使用bone network 比如 ResNet,这个ResNet 由多个CNN组成
每个CNN层可以提取 不同输出不同分辨率的特征图
-
FCN 可以将 不同层级 之间的信息合并
FPN可以将第四层的特征图上采样,然后与第三层的特征图合并,接着这个合并的特征图再次上采样与第二层的特征图合并,以此类推。
历史回顾
**过去 **
分割方法1: 交互式分割
允许对任何类型的对象分割, 但是需要迭代
分割方法2: 自动分割
允许预先定义特定对象分割
比如 对 猫的segementation
但是需要大量手动标记
现在
segement everything
前两类方法综合而成的单一模型,可执 行交互式分割和自动分割
Sam 拓展玩法
和 stable difussion model结合实现 自动化换衣服
Grounded-Segment-Anything