前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LLM入门4 | Segment Anything | MetaAI

LLM入门4 | Segment Anything | MetaAI

作者头像
机器学习炼丹术
发布2023-09-02 13:54:16
5000
发布2023-09-02 13:54:16
举报

<<大型语言模型LLM与Visual>>

LLM入门1 | 初见LLaMA | MetaAI

LLM入门2 | 羊驼AIpaca | Stanford

LLM入门3 | 基于cpu和hugging face的LLaMA部署

  • Segment Anything!
  • official github:https://github.com/facebookresearch/segment-anything
  • 论文:https://ai.facebook.com/research/publications/segment-anything/
  • 文章转自微信公众号:机器学习炼丹术(已授权)

必须赶紧学习一下,大模型已经烧到CV的家门口了。

1 概括

我们在 Meta AI Research 和 FAIR 的团队开发了一个称为 SAM 的分割基础模型,其中包括一个可提示的分割任务、一个分割模型和一个数据引擎。 我们的数据集拥有超过 10 亿个masks和 1100 万张图像。

在这项工作中,我们的目标是建立一个基础图像分割模型。 也就是说,我们寻求开发一个可提示的模型并使用任务在广泛的数据集上对其进行预训练,这使得强大的泛化成为可能。 有了这个模型,我们,旨在解决一系列下游细分问题,使用提示工程在新数据分布上。

2 解释一些东西

2.1 promptable segmentation

Promptable segmentation is a new task in image segmentation that involves segmenting an image based on a natural language prompt. This means that instead of manually selecting regions of interest or using pre-defined labels, the model is given a prompt in natural language and generates a segmentation mask based on that prompt.

可提示分割是图像分割中的一项新任务,涉及基于自然语言提示分割图像。 这意味着不是手动选择感兴趣的区域或使用预定义的标签,而是给模型一个自然语言的提示,并根据该提示生成一个分割掩码。

2.2 Ambiguity-aware

ambiguity-aware refers to the ability of the model to handle ambiguous input prompts. A single input prompt may correspond to multiple valid masks, and the model must learn to average over these masks. To eliminate this problem, SAM uses a small number of output tokens and predicts multiple masks simultaneously. During training, the loss is computed between the ground truth and each of the predicted masks, but only backpropagated from the lowest loss. This technique ensures that SAM is able to handle ambiguous input prompts effectively. 歧义感知是指模型处理歧义输入提示的能力。 单个输入提示可能对应多个有效掩码,模型必须学习对这些掩码进行平均。 为了消除这个问题,SAM 使用少量输出标记并同时预测多个掩码。 在训练期间,损失是在真实值和每个预测掩码之间计算的,但仅从最低损失反向传播。 该技术确保 SAM 能够有效地处理不明确的输入提示。

2.3 模型要求

可提示分割任务和真实世界对模型的要求,包含模型支持flexible prompt, real-time speed and ambiguity-aware。因此选择了这样的模型结构:

  1. a powerful image encoder computes an image embedding,
  2. a prompt encoder embeds prompts,
  3. then the two information sources are combined in a lightweight mask decoder that predicts segmentation masks.

2.4 data engineer

可以理解为是网页端的,对数据进行标注的一个工具,然后模型根据标注结果进行在线学习,然后模型会给出更好的分割结果,不断减轻标注人员的压力。

2.5 模型结构

包含三个部分:

  • image encoder
  • flexible prompt encoder
  • a fast mask decoder

我们是基于Transformer Vision Models,同时做了一些tradeoffs,为了real-time performance。

【image encoder】 受到可扩展和强大的预训练方法,我们使用了MAE来预训练ViT。图像编码器运行一次就可以得到每个图片的embedding了

【Prompt encoder】 我们考虑了两种prompt:

  • sparse prompt:points,boxes, text
  • dense: masks 我们用位置编码来表示点和boxes的位置,使用CLIP的text encodder来表示free-form text的编码

【mask decoder】 使用一个modification of a transformer decoder block和一个dynamic mask prediction head。我们的modified解码器使用了提示的自注意力和两个方向的交叉注意力(prompt-to-image embedding and image-to-prompt embedding)。运行两个blocks后,我们上采样图像embedding,然后一个MLP来把output token映射到动态的线性分类器,也就是计算mask概率的。

【Resolving ambiguity】 我们让模型一次预测多个输出结构 for a single prompt。想这幅图一样

图中的绿色点是一个prompt,模型给出了三个不同的output。

我们发现三个mask的outputs足够解决大多数的问题,一般这三个是整体、部分和子部分不同层级的。在训练的时候,我们仅仅反向传播最小的loss。模型同时会给出一个confidence score,就像是目标检测中的IoU一样,这样可以给mask进行排序。这里的做法和目标检测YOLO的多预测类似。

【损失函数和训练】 我们有监督的训练mask prediction使用focal loss和dice loss的线性组合

下一篇主要仔细剖析SAM的官方代码及本地部署。这个虽然是大模型,但是是很轻量的模型只有不到1B的参数。

<<其他>>

医学图像重建 | Radon变换,滤波反投影算法,中心切片定理

医学图像重建2 | CT&PET,比尔定律,衰减矫正

whole-body PET ?全人研究的催化剂?

TB-PET揭示体内复杂的骨骼代谢网络

综述 深度学习在神经成像领域的前景与挑战

功能连接矩阵 | 双向LSTM深度时间组学习针对轻度认知障碍

PCA、SVD深入浅出与python代码

ICA | 用RNN-ICA探索功能核磁内在网络模型的时空动力学

Dual-time-point的两篇文献浅学

WBIR | DeepSTAPLE:UDA任务下学习多模态配准质量

TransMorph | WBIR

医学成像之光学基础

<<AlphaFold2专题>>

alphaFold2 | 解决问题及背景(一)

alphaFold2 | 模型框架搭建(二)

alphaFold2 | 模型细节之特征提取(三)

alphaFold2 | 模型细节之Evoformer(四)

alphaFold2 | 补充Evoformer之outer productor mean(五)

<<StyleGAN2专题>>

生成专题1 | 图像生成评价指标 Inception Score (IS)

生成专题2 | 图像生成评价指标FID

生成专题3 | StyleGAN2对AdaIN的修正

生成专题4 | StyleGAN2的其他改进

<<蛋白质分子结构相关>>

NLP | 简单学习一下NLP中的transformer的pytorch代码

DTI特征工程 | iDTI-ESBoost | 2017 | REP

DIT | 简化分子线性输入规范SMILE

DTI | Drug-target interaction基础认识

<<CVPR目录>>

第一弹CVPR 2021 | 多分辨率蒸馏的异常检测 VIT Vision Transformer | 先从PyTorch代码了解

preprint版本 | 何凯明大神新作MAE | CVPR2022最佳论文候选

小样本分割 | FSS1000 | CVPR20‍20

简单的结构 | MLP-Mixer: An all-MLP Architecture for Vision | CVPR2021

域迁移DA |Addressing Domain Shift for Segmentation | CVPR2018

医学图像配准 | SYMnet 对称微分同胚配准CNN(SOTA) | CVPR2020

光流 | flownet | CVPR2015 | 论文+pytorch代码

图像分割 | Context Prior CPNet | CVPR2020

自监督图像论文复现 | BYOL(pytorch)| 2020

自监督SOTA框架 | BYOL(优雅而简洁) | 2020

笔记 | 吴恩达新书《Machine Learning Yearning》

图片质量评估论文 | 无监督SER-FIQ | CVPR2020

图像质量评估论文 | Deep-IQA | IEEETIP2018

图像质量评估论文 | rank-IQA | ICCV2017

图像分割论文 | DRN膨胀残差网络 | CVPR2017

注意力论文解读(1) | Non-local Neural Network | CVPR2018 | 已复现

卷积网络可解释性复现 | Grad-CAM | ICCV | 2017

轮廓检测论文解读 | Richer Convolutional Features| CVPR | 2017

轮廓检测论文解读 | 整体嵌套边缘检测HED | CVPR | 2015

卷积涨点论文复现 | Asymmetric Conv ACNet | ICCV | 2019

pytorch实现 | Deformable ConvNet 可变卷积(下) | CVPR | 2017

图像处理论文详解 | Deformable Convolutional Networks (上)| CVPR | 2017

<<小白学PyTorch>>

扩展之Tensorflow2.0 | 21 Keras的API详解(下)池化、Normalization层

扩展之Tensorflow2.0 | 21 Keras的API详解(上)卷积、激活、初始化、正则

扩展之Tensorflow2.0 | 20 TF2的eager模式与求导

扩展之Tensorflow2.0 | 19 TF2模型的存储与载入

扩展之Tensorflow2.0 | 18 TF2构建自定义模型

扩展之Tensorflow2.0 | 17 TFrec文件的创建与读取

扩展之Tensorflow2.0 | 16 TF2读取图片的方法

扩展之Tensorflow2.0 | 15 TF2实现一个简单的服装分类任务

小白学PyTorch | 14 tensorboardX可视化教程

小白学PyTorch | 13 EfficientNet详解及PyTorch实现

小白学PyTorch | 12 SENet详解及PyTorch实现

小白学PyTorch | 11 MobileNet详解及PyTorch实现

小白学PyTorch | 10 pytorch常见运算详解

小白学PyTorch | 9 tensor数据结构与存储结构

小白学PyTorch | 8 实战之MNIST小试牛刀

小白学PyTorch | 7 最新版本torchvision.transforms常用API翻译与讲解

小白学PyTorch | 6 模型的构建访问遍历存储(附代码)

小白学PyTorch | 5 torchvision预训练模型与数据集全览

小白学PyTorch | 4 构建模型三要素与权重初始化

小白学PyTorch | 3 浅谈Dataset和Dataloader

小白学PyTorch | 2 浅谈训练集验证集和测试集

小白学PyTorch | 1 搭建一个超简单的网络

小白学PyTorch | 动态图与静态图的浅显理解

<<小样本分割>>

小样本分割 | FSS1000 | CVPR2020

<<图网络>>

图网络 | Graph Attention Networks | ICLR 2018 | 代码讲解

<<图像质量评估>>

图片质量评估论文 | 无监督SER-FIQ | CVPR2020

图像质量评估论文 | Deep-IQA | IEEETIP2018

图像质量评估论文 | rank-IQA | ICCV2017

<<图像轮廓检测>>

轮廓检测论文解读 | Richer Convolutional Features| CVPR | 2017

轮廓检测论文解读 | 整体嵌套边缘检测HED | CVPR | 2015

<<光流与配准>>

医学图像配准 | SYMnet 对称微分同胚配准CNN(SOTA) | CVPR2020

光流 | flownet | CVPR2015 | 论文+pytorch代码

图像匹配 | NCC 归一化互相关损失 | 代码 + 讲解

医学图像配准 | Voxelmorph 微分同胚 | MICCAI2019

<<DA域迁移>>

域迁移DA |Addressing Domain Shift for Segmentation | CVPR2018

self-training | 域迁移 | source-free的域迁移(第一篇)

self-training | MICCAI2021 | BN层的source free的迁移

<<医学图像AI>>

医学图像 | DualGAN与儿科超声心动图分割 | MICCA

医学AI论文解读 | 超声心动图在临床中的自动化检测 | Circulation | 2018 | 中英双语

<<小白学图像(网络结构)>>

卷积网络可解释性复现 | Grad-CAM | ICCV | 2017

孪生网络入门(下) Siamese Net分类服装MNIST数据集(pytorch)

孪生网络入门(上) Siamese Net及其损失函数

图像分割必备知识点 | Unet++ 超详解+注解

图像分割必备知识点 | Unet详解 理论+ 代码

图像分割必备知识点 | Dice损失 理论+代码

3D卷积入门 | 多论文笔记 | R2D C3D P3D MCx R(2+1)D

小白学论文 | EfficientNet强在哪里

小白学论文 | 神经网络初始化Xavier

小白学论文 | 端侧神经网络GhostNet(2019)

小白学目标检测 | RCNN, SPPNet, Fast, Faster

小白学图像 | BatchNormalization详解与比较

小白学图像 | Group Normalization详解+PyTorch代码

小白学图像 | 八篇经典CNN论文串讲

图像增强 | CLAHE 限制对比度自适应直方图均衡化

小白学卷积 | 深入浅出卷积网络的平移不变性

小白学卷积 | (反)卷积输出尺寸计算

损失函数 | 焦点损失函数 FocalLoss 与 GHM

<<小白学机器学习>>

小白学ML | 随机森林 全解 (全网最全)

小白学SVM | SVM优化推导 + 拉格朗日 + hingeLoss

小白学LGB | LightGBM = GOSS + histogram + EFB

小白学LGB | LightGBM的调参与并行

小白学XGB | XGBoost推导与牛顿法

评价指标 | 详解F1-score与多分类F1

小白学ML | Adaboost及手推算法案例

小白学ML | GBDT梯度提升树

小白学优化 | 最小二乘法与岭回归&Lasso回归

小白学排序 | 十大经典排序算法(动图)

杂谈 | 正态分布为什么如此常见

Adam优化器为什么被人吐槽?

机器学习不得不知道的提升技巧:SWA与pseudo-label

决策树(一)基尼系数与信息增益

决策树(二)ID3,C4.5和CART

五分钟理解:BCELoss 和 BCEWithLogitsLoss的区别

<<小白面经>>

秋招总结 | 一个非Top学校的跨专业的算法应届研究生的几十场面试

【小白面经】快手 AI算法岗 附答案解析

【小白面经】 拼多多 AI算法岗 附带解析

【小白面经】八种应对样本不均衡的策略

【小白面经】之防止过拟合的所有方法

【小白面经】梯度消失爆炸及其解决方法

【小白面经】 判别模型&生成模型

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习炼丹术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 概括
  • 2 解释一些东西
    • 2.1 promptable segmentation
      • 2.2 Ambiguity-aware
        • 2.3 模型要求
          • 2.4 data engineer
            • 2.5 模型结构
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档