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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【开源】基于Vue.js的校园二手交易系统的设计和实现

目录 一、摘要1.1 项目介绍1.2 项目详细录屏 二、功能模块2.1 数据中心模块2.2 二手商品档案管理模块2.3 商品预约管理模块2.4 商品预定管理模块2.5 商品留言板管理模块2.6 商品资讯管理模块 三、实体类设计3.1 用户表3.2 二手商品表3.3 商品预约表3.4 商品预定表3.5 留言表3.6…

μC/OS-II---时间管理(os_time.c)

目录 时间管理相关(os_time.c)Task延迟按时、分、秒、毫秒延时恢复被延时的Task返回系统当前的Tick计数值设置系统的Tick计数值 时间管理相关(os_time.c) Task延迟 void OSTimeDly (INT32U ticks) {INT8U y; #if OS_CRITI…

Kibana:使用 “链接” 面板简化 Kibana 仪表板导航 - Links panel

作者:Teresa Alvarez Soler 我们很高兴地宣布 Kibana 仪表板的最新功能版本:链接面板(Links panel),这是在仪表板之间组织和导航的简单方法。 此功能在 Kibana 8.11 的技术预览版中提供。 有时你可能希望创建多个主题…

Rust实战教程:构建您的第一个应用

大家好!我是lincyang。 今天,我们将一起动手实践,通过构建一个简单的Rust应用来深入理解这门语言。 我们的项目是一个命令行文本文件分析器,它不仅能读取和显示文件内容,还会提供一些基础的文本分析,如计算…

IDEA-git commit log 线

一、本地代码颜色标识 红色:新建的文件,没有add到git本地仓库蓝色:修改的文件,没有提交到git远程仓库绿色:已添加到git本地仓库,没有提交到git远程仓库灰色:删除的文件,没有提交到g…

常见限流算法解读

目录 前言 固定窗口(计算器法) 滑动窗口 漏桶算法 令牌桶算法 总结 前言 在现在的互联网系统中有很多业务场景,比如商品秒杀、下单、数据查询详情,其最大特点就是高并发,但是我们的系统通常不能承受这么大的流…

【Azure 架构师学习笔记】-Azure Storage Account(6)- File Layer

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Storage Account】系列。 接上文 【Azure 架构师学习笔记】-Azure Storage Account(5)- Data Lake layers 前言 上一文介绍了存储帐户的概述,还有container的一些配置,在…

Kibana:作为非设计师设计直观的 Kibana 仪表板

作者:Carly Richmond, Marco Vettorello, Giovanni Magni 开发人员、SRE 工程师和才华横溢的技术人员通常需要构建快速仪表板来展示有关其应用程序状态的重要信息,这些信息可供混合受众使用。 如果你不是前端开发人员或设计师,那么构建所有人…

vue echart 立体柱状图 带阴影

根据一个博主代码改编而来 <template><div class"indexBox"><div id"chart"></div></div> </template><script setup> import * as echarts from "echarts"; import { onMounted } from "vue&…

二叉树-堆(9.10)

接上节内容 目录 3.3 堆的实现 3.2.1 堆向下调整算法 3.2.2大堆的创建 3.4 堆的应用 3.4.1 堆排序 3.4.2 TOP-K问题 ​编辑 二叉树的性质 练习 4.二叉树链式结构的实现 4.1 前置说明 4.2二叉树的遍历 4.2.1 前序、中序以及后序遍历 4.3 节点个数以及高度等 4.3…

算不上最全,但都是必备——Mybatis这些不会不行啊

Mybatis篇 ORM&#xff08;Object Relational Mapping&#xff09;&#xff0c;对象关系映射&#xff0c;是一种为了解决关系型数据库数据与简单Java对象&#xff08;POJO&#xff09;的映射关系的技术。简单的说&#xff0c;ORM是通过使用描述对象和数据库之间映射的元数据&am…

天气越来越寒冷,一定要注意保暖

你们那里下雪了吗&#xff1f;听说西安已经下了今年的第一场雪&#xff0c;我们这里虽然隔了几百公里&#xff0c;但是只下雨没有下雪&#xff0c;不过气温是特别的冷&#xff0c;尤其是对我们这些上班族和上学的人而言&#xff0c;不管多冷&#xff0c;不管刮风下雨&#xff0…

根据店铺ID或店铺昵称或店铺链接获取阿里巴巴店铺所有商品数据接口|阿里巴巴店铺整店商品数据接口|阿里巴巴API接口

阿里巴巴店铺所有商品数据接口是阿里巴巴开放平台提供的API接口之一&#xff0c;它可以帮助开发者获取到店铺内所有商品的信息&#xff0c;包括商品的ID、标题、价格、图片、链接等。通过该接口&#xff0c;开发者可以快速地获取到大量的商品数据&#xff0c;并进行进一步的数据…

自定义注解实现服务的动态开关

shigen日更文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 &#x1f9d1;‍&#x1f4bb;&#x1f9d1;‍&#x1f4bb;&#x1f9d1;‍&#x1f4bb;Make things differe…

matlab语言的由来与发展历程

MATLAB语言的由来可以追溯到1970年代后期。当时&#xff0c;Cleve Moler教授在New Mexico大学计算机系担任系主任&#xff0c;他为了LINPACK和EISPACK两个FORTRAN程序集开发项目提供易学、易用、易改且易交互的矩阵软件而形成了最初的MATLAB。 1984年&#xff0c;MATLAB推出了…

JVM 内存区域

JVM内存结构模型 程序计数器&#xff1a; 1.线程私有的&#xff0c;是一块较小的内存空间&#xff0c;当前线程所执行的字节码的行号指示器 2.每个线程都有一个独立的程序计数器&#xff0c;各线程之间程序计数器互不影响&#xff0c;独立存储 3.此内存区域是唯一一个在java虚拟…

C++ vector中capacity()和size() 的区别

文章目录 1 capacity()和size() 介绍2 vector满了之后&#xff0c;capacity()会自动了扩充为原来的2倍 &#xff1f; 1 capacity()和size() 介绍 size是指容器当前拥有元素的个数&#xff0c; capacity是指容器在必须分配新的存储空间之前可以存放的元素总数。 如vector<i…

Linux常用命令——bzgrep命令

在线Linux命令查询工具 bzgrep 使用正则表达式搜索.bz2压缩包中文件 补充说明 bzgrep命令使用正则表达式搜索“.bz2”压缩包中文件&#xff0c;将匹配的行显示到标注输出。 语法 bzgrep(参数)参数 搜索模式&#xff1a;指定要搜索的模式&#xff1b;.bz2文件&#xff1a…

【教3妹学编程-算法题】K 个元素的最大和

3妹&#xff1a;“太阳当空照&#xff0c;花儿对我笑&#xff0c;小鸟说早早早&#xff0c;你为什么背上炸药包” 2哥 :3妹&#xff0c;什么事呀这么开发。 3妹&#xff1a;2哥你看今天的天气多好啊&#xff0c;阳光明媚、万里无云、秋高气爽&#xff0c;适合秋游。 2哥&#x…

【前端开发】JS Vue React中的通用递归函数

目录 前言 一、递归函数的由来 二、功能实现 1.后台数据 2.处理数据 3.整体代码 总结 &#x1f642;博主&#xff1a;冰海恋雨. &#x1f642;文章核心&#xff1a;【前端开发】JS Vue React中的通用递归函数 前言 大家好&#xff0c;今天和大家分享一下在前端开发中j…