论文阅读:Segment Anything之阅读笔记

目录

      • 引言
      • 整体结构介绍
      • 论文问答
        • 代码仓库中,模型哪部分转换为了ONNX格式?以及如何转的?
        • Mask decoder部分 Transformer decoder block?
        • 如何整合image_embedding,image_pe, sparse_prompt_embedding和dense_prompt_embedding的?
        • points, boxes, text和masks四种类型prompt如何嵌入到网络中?
        • 什么样的任务具有zero-shot泛化能力?

引言

  • 论文:Segment Anything是Meta出的图像语义分割的算法。这个算法因其强大的zero-shot泛化能力让人惊艳,这不抽空拿来学习了一下。
  • 该算法的代码写得很清楚、简洁和规范,读来让人赏心悦目。推荐去看源码,很有意思。
  • 本篇文章,将以问答形式来解读阅读过程中遇到的困惑,想来这种方式效率更高一些。
  • PDF | Code

整体结构介绍

在这里插入图片描述

  • 整体分为三大部分:image encoder、prompt encoder和mask decoder。下图看的更加清楚一些,也是来自论文。
    在这里插入图片描述

论文问答

代码仓库中,模型哪部分转换为了ONNX格式?以及如何转的?

  • mask_decoder部分做了转onnx格式

  • 直接采用torch.onnx.export函数接口转的。因为没有采用transformer函数库,因为转换较为简单。

    • 先基于torch构建整个部分模型,构建模型输入。

    • 调用torch.onnx.export函数来转换

Mask decoder部分 Transformer decoder block?

  • 该部分采用的动态mask预测头。

  • 在两个方向上(prompt-to-image embedding 和相反的)使用了prompt self-attention和cross-attention来达到更新所有embedding的目的。

如何整合image_embedding,image_pe, sparse_prompt_embedding和dense_prompt_embedding的?

  • 通过mask decoder这一部分来做的。采用的是修改过的Transformer decoder block.

points, boxes, text和masks四种类型prompt如何嵌入到网络中?

  • points, boxes, text在论文中称为sparse prompt。masks类型被称为dense prompt

  • points和boxes 是以positional encodings(位置编码)和每个提示类型的学习嵌入来表示的。

  • text是来自CLIP的text encoder表示的。从demo中并没有看到text输入的prompt, 从issue #93中验证了这点

  • mask是使用卷积嵌入,并与图像embedding逐元素求和

什么样的任务具有zero-shot泛化能力?

  • 模型以promptable的方式训练得到,因此具备zero-shot的泛化能力

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/16000.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将OxyPlot封装成用户控件后在WPF中的应用

1、文件架构 2、加载依赖项 Newtonsoft.Json OxyPlot.Wpf 3、NotifyBase.cs namespace Accurate.Common {public class NotifyBase : INotifyPropertyChanged{public event PropertyChangedEventHandler? PropertyChanged;public void DoNotify([CallerMemberName] string p…

XR-FRAME 开始

目录 新建一个XR组件在页面中使用这个组件添加一个物体来点颜色和灯光有点寡淡,加上图像让场景更丰富,环境数据动起来,加入动画还是不够,放个模型再来点交互组件通信,加上HUD虚拟 x 现实,追加AR能力识别人脸…

抖音seo矩阵系统源码开发部署-开源分享(二)

目录 市场背景分析 一、 抖音seo矩阵系统开发部署流程 二、 源码开发功能构思 三、 抖音seo源码开发部署注意事项 四、 部分开发代码展示 市场背景分析 账号矩阵是通过不同平台不同账号之间建立联系,通过将同一品牌下不同平台不同账号的粉丝流量进行账号互通&a…

网络安全 log4j漏洞复现

前言: log4j被爆出“史诗级”漏洞。其危害非常大,影响非常广。该漏洞非常容易利用,可以执行任意代码。这个漏洞的影响可谓是重量级的。 漏洞描述: 由于Apache Log4j存在递归解析功能,未取得身份认证的用户&#xff…

每次装完 homebrew,ohmyzsh 就会报错:Insecure completion-dependent directories detected:

参考:https://zhuanlan.zhihu.com/p/313037188 这是因为在big sur安装homebrew后,会在/usr/local/share/生成一个zsh文件夹,里面包含了 因此,zsh文件默认设置的权限是775,也就是group user有writer的权利,zsh认为这是…

【笔记】数字电路基础1 - 门电路

目录 数字电路基础与门电路数电基础基本门电路复合门电路TTL 门电路CMOS 门电路 数字电路基础与门电路 数电基础 数字电路中常将 0 ~ 1V 范围的电压称为低电平,用“0”表示;而将 3 ~ 5V 范围的电压称为高电平,用“1”…

【深入浅出 Spring Security(十二)】使用第三方(Github)授权登录

使用第三方(Github)授权登录 一、OAuth2 简单概述二、OAuth2 四种授权模式之授权码模式三、Github 授权登录准备工作创建 Spring Boot 项目Vue 测试代码测试效果 (Github授权登录的具体操作在目录第三“章”) 一、OAuth2 简单概述…

【实战】 四、JWT、用户认证与异步请求(上) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(四)

文章目录 一、项目起航:项目初始化与配置二、React 与 Hook 应用:实现项目列表三、TS 应用:JS神助攻 - 强类型四、JWT、用户认证与异步请求1.login2.middleware of json-server3.jira-dev-tool(imooc-jira-tool)安装问…

排序之玩转qsort函数——【C语言】

说起排序,我们会想起许多算法,在之前的博客中我也写到过,比如:冒泡排序法、快速排序法、选择排序法等等。其实在C语言中一直有一个可以将数组中的内容进行排序的函数且功能完善内容齐全的库函数——qsort函数。今天就让我们来探索…

SpringBoot原理分析 | Spring Data整合:JDBC、Druid、Mybatis

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Spring Data Spring Data是一个用于简化数据库访问和操作的开源框架,为开发人员提供了一种通用的方式来处理不同类型的数据存储,例如关系型数据…

Spring Boot中的度量指标及使用方法

Spring Boot中的度量指标及使用方法 简介 Spring Boot是目前流行的Java后端框架之一,它提供了许多有用的功能,其中包括度量指标。度量指标可以帮助我们监测应用程序的性能、稳定性和可靠性,以便及时发现并解决问题。本文将介绍Spring Boot中…

OpenCV——总结《车牌识别》

1.图片中的hsv hsv提取蓝色部分 # hsv提取蓝色部分 def hsv_color_find(img):img_copy img.copy()cv2.imshow(img_copy, img_copy)"""提取图中的蓝色部分 hsv范围可以自行优化cv2.inRange()参数介绍:第一个参数:hsv指的是原图第二个参…