SAM分割模型的5个典型用例

news2024/11/24 3:44:43

Meta AI 于2023 年推出的分割任意模型 (SAM) 彻底改变了我们对图像分割的质量标准。 给定输入图像,SAM 尝试分割图像中的所有对象并生成分割掩模。 使用 SAM,你可以分割对象,然后,可以使用模型来利用该信息,例如用于为图像到文本模型生成指定对象的蒙版。

由于 SAM 为图像分割设定了如此高的标准,我们想退一步问:SAM 的主要用例是什么? 如何使用 SAM 来帮助你解决问题?

这是我们将在本指南中回答的两个问题。 下面,我们将介绍 SAM 的五个用例。 话不多说,让我们开始吧!

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

1、辅助图像标注

你可以将已针对特定任务训练过的模型与 SAM 结合使用,以提供助手来建议添加到图像中的标注。 这允许你创建多边形注释,而无需单击多边形周围的各个点。 使用 SAM,你可以单击感兴趣的对象,然后根据需要单击以细化你的标注。

2、零样本标注

零样本标记是指对以前未见过的图像进行标注。

例如,你可以向 SAM 提供道路上的汽车模型,SAM 将能够为所有汽车以及图像中的其他所有内容推荐分割掩模。 话虽如此,淹没不会带有标注信息来告诉你这些对象是汽车。 这是因为 SAM 仅分割图像, 它不像 Grounding DINO 等零样本物体检测器那样检测图像。

然后,你需要通过零样本目标检测模型(例如 Grounding DINO)将 SAM 的输出掩码提供给能够找到所有汽车的模型。 从那里,你可以为图像中感兴趣的每个蒙版添加标签。 在上述示例中,可以将 Grounding DINO 报告包含汽车的仅标注掩码发送到你的数据集。

3、删除背景

SAM 可以非常精确地识别图像中的背景。 使用 SAM 时,你可以交互式地选择背景蒙版。 然后,可以使用该信息从图像中删除现有背景并将其替换为透明背景。 然后,可以将新图像放置在新背景之上。

此功能很有用的一种情况是照片编辑。 考虑这样一个场景,你有一个人的图像,您想要更改其背景(因为你想在该人后面添加彩色渐变背景)。 你可以检索与图像中的人物关联的像素,然后添加自定义背景。

4、图像修复

SAM 识别对象周围边界的准确度使该模型成为图像生成修复的理想伙伴。 使用 SAM 这样的模型,你可以找到要更改的图像的确切特征,然后通过支持稳定扩散等修复的模型发送蒙版。

考虑一个示例,你希望将停车场图像中的所有蓝色汽车替换为红色汽车,如果你正在构建模型来检测汽车,可能需要执行此任务。 可以使用 SAM 识别所有汽车,选择包含蓝色汽车的遮罩,然后提供每个遮罩作为修复模型的提示。 然后,你可以提出“将汽车的颜色更改为蓝色”之类的请求来获得所需的输出。

5、合成数据生成

如前所述,你可以将 SAM 与零样本对象检测模型(例如 Grounding DINO)结合使用。 当你拥有代表感兴趣对象的蒙版时,可以将它们粘贴到具有与模型部署环境相关的新背景的图像上。 这将帮助你的模型学习更好地识别数据集中的特征。

此外,你可以使用修复功能进行合成数据生成。 在修复示例中,我们注意到可以更改停车场中汽车的颜色,以帮助你使模型更能代表其运行的环境。 我们再举一个例子。 假设你正在识别金属管道上的缺陷。 可以使用 SAM 识别图像中的金属管,然后要求支持修复的模型添加划痕、凹痕或你希望能够检测到的其他缺陷。

6、结束语

我们才刚刚开始探索SAM模型的可能性。 生成式人工智能、零样本标签、图像字幕等还有更多应用有待探索。

如果你对 SAM 提供的功能感兴趣,我们建议你亲自尝试一下该模型!


原文链接:SAM分割模型的5个用例 - BimAnt

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring cloud负载均衡@LoadBalanced LoadBalancerClient

LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon,直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件,我们讨论Spring负载均衡以Spring Cloud2020之后版本为主,学习Spring Cloud LoadBalance,暂不讨论Ribbon…

kubectl 本地远程链接k8s多个集群,远程管控多集群,查看日志 部署服务(windows版)

文章目录 一、前言二、windows上安装kubectl和mobaxterm2.1 准备安装包2.2 安装kubectl2.3 链接k8s集群2.4 查看某一个pod的容器日志2.5 切换context 上下文配置,实现在多个k8s集群间动态切换 一、前言 现如今是一个万物皆上云 的时代,各种云层出不穷&am…

【Rust】快速教程——从hola,mundo到所有权

前言 学习rust的前提如下: (1)先把Rust环境装好 (2)把VScode中关于Rust的插件装好 \;\\\;\\\; 目录 前言先写一个程序看看Rust的基础mut可变变量let重定义覆盖变量基本数据类型复合类型()和 [ …

3.1 Windows驱动开发:内核远程堆分配与销毁

在开始学习内核内存读写篇之前,我们先来实现一个简单的内存分配销毁堆的功能,在内核空间内用户依然可以动态的申请与销毁一段可控的堆空间,一般而言内核中提供了ZwAllocateVirtualMemory这个函数用于专门分配虚拟空间,而与之相对应…

加密狗作用是什么?工作原理及使用方法

加密狗是一种用于软件保护的硬件设备,通常被用于防止软件被非法复制、篡改或者恶意使用。以下是加密狗的作用、工作原理及使用方法: 作用 加密狗的主要作用是提供软件保护,它能够通过加密算法对软件进行加密,以防止软件被非法复制…

Linux学习第42天:Linux RS232/485/GPS 驱动实验:天外来客

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 Linux的学习笔记今天更新到了第42天。鉴于国往笔记内容整理中出现的问题,我尽量按照平时学习时笔记的要求进行优化。尽量不再大段大段的贴代码。而是…

Ubuntu18.04平台下Qt开发程序打包的一些问题总结

目录 前言 一、在Ubuntu18.04开发环境下打包有两种方式 1、利用linuxdeployqt软件进行打包 2、利用编写shell脚本的方式进行打包 二、详细介绍shell脚本打包的方式 1、新建一个空的文件夹 2、准备脚本copylib.sh 3、准备脚本xxxx.sh。 4、给上述两个脚本添加可执行权限…

Behave介绍和快速示例

Behave是一个用于行为驱动开发 (Behavior-Driven Development, BDD) 的 Python 库。使用 Behave,可以编写自然语言格式的使用场景来描述软件的行为,然后用 Python 实现这些场景下的步骤,形成可直接运行的测试。 Behave的目标是帮助用户、开发…

【Machine Learning in R - Next Generation • mlr3】

本篇主要介绍mlr3包的基本使用。 一个简单的机器学习流程在mlr3中可被分解为以下几个部分: 创建任务 比如回归、分裂、生存分析、降维、密度任务等等挑选学习器(算法/模型) 比如随机森林、决策树、SVM、KNN等等训练和预测 创建任务 本次示…

JVM——类加载器(JDK8及之前,双亲委派机制)

目录 1.类加载器的分类1.实现方式分类1.虚拟机底层实现2.JDK中默认提供或者自定义 2.类加载器的分类-启动类加载器3.类加载器的分类-Java中的默认类加载器4.类加载器的分类-扩展类加载器5.类加载器的分类-类加载器的继承 2.类加载器的双亲委派机制 类加载器(ClassLo…

Vue3.3 + Vite4.3 + TypeScript5+ Element-Plus:从零到一构建企业级后台管理系统(前后端开源)

vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 Element Plus 版本的后台管理前端解决方案,技术栈为 Vue3 Vite4 TypeScript Element Plus Pinia Vue Router 等当前主流框架。 相较于其他管理前端框架,vue3-element-admin 的优势在于一…

笔记本配USB拓展坞网卡经常时不时掉线

ThinkPad X1 Carbon大概是2015年的老笔记本,自己买的USB3.0拓展坞(带网卡)的,我的笔记本不带网卡, 使用网线时不时右下角显网络掉线 , 就掉了,各种排查排除,不是线,路由器,拓展坞问题,最后更新拓展坞网卡芯片驱动,解决问题.下面是步骤: 搜索关键字:Realtek USB GbE Family Cont…

OpenCV必知必会基础3(包括色彩空间的变换、ROI、OpenCV中最重要的结构体Mat以及获取图像的属性)

文章目录 OpenCV的色彩空间——RGB与BGROpenCV的色彩空间——HSV与HSLHSV主要用于OpenCV中HSL OpenCV色彩空间转换YUV主要用于视频中题目 图像操作的基石Numpy【基础操作】np.arraynp.zerosnp.onesnp.fullnp.identitynp.eye Numpy基本操作之矩阵的检索与赋值Numpy基本操作三——…

c# - - - Application.StartupPath(程序安装目录)和Environment.CurrentDirectory(程序工作目录)

Application.StartupPath 应用程序的安装目录,不会改变。 在C:\Users\Administrator\source\repos\ConsoleApp6\bin\Debug目录中,运行ConsoleApp6.exe。 安装目录为:C:\Users\Administrator\source\repos\ConsoleApp6\bin\Debug 在C:\Users…

Git相关: 拉取、git push提交 过程遇到的错误

目录 解决git push报错error: RPC failed; HTTP 413 curl 22 关于这个问题,其实千万别用gitlab,因为你怎么推送 也不可能把几G的文件推上去。 error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 se 解决git push报错error: RPC failed;…

【外汇天眼】解析外汇交易平台:深度了解DD与NDD两大模式

外汇交易平台种类繁多,涵盖不同的分类与运营模式,令投资者难以甄别,也增加了选择的难度。为了解决这一问题,我们将更深入地了解外汇平台的多样性。 在线外汇交易平台主要分为两大类:处理平台模式(Dealing …

springcloud仓库管理系统源码

开发技术: jdk1.8,mysql5.7,idea,nodejs,vscode springcloud springboot mybatis vue elementui 功能介绍: 统计分析:查看产品,销售数量;统计近7日出入库统计 客户管…

RHCE8 资料整理(六)

RHCE8 资料整理 第 6 篇 软件管理第 23 章 用rpm管理软件23.1 rpm查询23.2 rpm卸载23.3 软件包升级23.4 rpm验证 第 24 章 用yum/dnf管理软件包24.1 yum架构介绍24.2 用光盘搭建yum源24.3 创建私有仓库24.4 yum客户端配置24.5 yum基本使用24.5.1 查询24.5.2 安装与卸载24.5.3 下…

ETL数据转换工具类型与适用场景

ETL数据转换工具在企业数据管理中扮演着重要的角色,能够帮助企业从多个数据源中提取、转换和加载数据,实现数据整合和分析。以下是针对Kettle、DataX和ETLCloud这几个工具的详细介绍及其适用场景。 Kettle(Pentaho Data Integration&#xf…

提高生存能力的7个关键技巧!

作为一款备受热议和玩家喜爱的多人在线射击游戏,《绝地求生》中生存能力的提高是取得胜利的关键。在这篇实用干货分享中,我们将详细说明7个关键技巧,帮助你在游戏中提高生存能力,获得更多胜利。 1.选择降落点:选择适合…