CV界的chatgpt出现——Segment Anything能分割万物

news2024/11/17 15:50:20

目录

  • 一、前言
    • (1)弱人工智能(Weak AI)
    • (2)强人工智能(General AI)
    • (3)超人工智能(Super AI)
  • 二、SAM的一些介绍
    • 2.1 模型的结构是什么?
    • 2.2 支持哪些类型的提示?
    • 2.3 该模型使用什么平台?
    • 2.4 模型有多大?
    • 2.5 推理需要多长时间?
    • 2.6 训练模型需要多长时间?
    • 2.7 模型是在哪些数据上训练的?
    • 2.8 模型是否生成掩码标签?
  • 三、象棋抠图测试
    • 3.1、图片上传
    • 3.2、鼠标物体响应
    • 3.3、一键扣图
  • 四、运动场景测试
  • 五、后记

一、前言

今天亲手体验了一下meta公司发布的Segment Anything,我们认为是cv界的chatgpt,这个模型太厉害了,厉害到可以对任意一张图进行分割,他们的网站上的例子也是挺复杂的,能够说明其强大的能力—demo链接,人工智能的技术迭代真是太快了。在模型的介绍中,有句话着实惊人——号称:“SAM已经学会了物体是什么的一般概念”:
在这里插入图片描述

通常人们认为,人工智能大致可以分为三个阶段:

(1)弱人工智能(Weak AI)

弱人工智能(Weak AI)简称弱智,指特定场景解决特定领域的问题。比如前段时间出现的AlphaGo,实现了围棋领域的的人工智能。

(2)强人工智能(General AI)

强人工智能更贴切的翻译是通用人工智能,就是以ChatGPT为代表的完全人工智能,能够适应人类大部分甚至是所有工作领域的一类人工智能。可以说我们如今,正在处于通用人工智能技术突破的时间转折点上。

(3)超人工智能(Super AI)

顾名思意,这个时候,人工智能在人类定义的”智能“领域已经全面超过了人类,随着量子计算等技术发展,相信实现是时间问题。真希望这个时代晚点到来,或者那时候,人类或许已经和超人工智能实现了融合,成为了新一代的超人。也希望那个时代,人类的道德境界也实现了满格。

二、SAM的一些介绍

2.1 模型的结构是什么?

  • ViT-H 图像编码器,每个图像运行一次并输出图像嵌入
  • 嵌入输入提示(如单击或框)的提示编码器
  • 基于转换器的轻量级掩码解码器,可从图像嵌入和提示嵌入中预测对象掩码

2.2 支持哪些类型的提示?

  • 前景/背景点
  • 边界框
  • 遮罩

2.3 该模型使用什么平台?

  • 图像编码器在 PyTorch 中实现,需要 GPU 才能进行高效推理。
  • 提示编码器和掩码解码器可以直接使用 PyTroch 运行,也可以转换为 ONNX,并在支持 ONNX 运行时的各种平台上的 CPU 或 GPU 上高效运行。

2.4 模型有多大?

  • 图像编码器具有632M参数。
  • 提示编码器和掩码解码器具有4M参数。

2.5 推理需要多长时间?

  • 图像编码器在 NVIDIA A0 GPU 上需要 ~15.100 秒。(没查到这款GPU,有知情的评论区告知)
  • 提示编码器和掩码解码器在浏览器中使用多线程 SIMD 执行的 CPU 上占用 ~50 毫秒。

2.6 训练模型需要多长时间?

  • 该模型在 3 个 A5 GPU 上训练了 256-100 天。

2.7 模型是在哪些数据上训练的?

  • 该模型在meta的SA-1B数据集上进行了训练。

2.8 模型是否生成掩码标签?

  • 否,模型仅预测对象掩码,不生成标签。

三、象棋抠图测试

笔者上传了自己的一个棋盘图片,利用Segment Anything提供的模型工具进行了测试,测试结果发现,能够很好地抠出棋盘中的棋子。

3.1、图片上传

在这里插入图片描述

3.2、鼠标物体响应

上传后,通过一点时间的识别后,把鼠标放到图片上面,就可以对上面的棋子做出响应,显然自动分离出了棋子棋盘。有一点厉害的是,它把棋子的厚度也给识别出来,认为也是棋子的一部分。
在这里插入图片描述

3.3、一键扣图

Segment Anything提供了手动框选分割功能,此外还有一个牛逼的功能是,自动对图像进行分割:
在这里插入图片描述
点击自动分割后,可以准确的识别出棋子:
在这里插入图片描述
识别完后,它会自动切出分离的物体如下32个棋子一个不少:
在这里插入图片描述

四、运动场景测试

输入一张随机的羽毛球图片:
在这里插入图片描述

识别结果如下:
在这里插入图片描述
好吧,我承认,我用opecv远远还不能达到以上的效果。

五、后记

以上的象棋、羽毛球图片其实场景并不复杂,比它网站上面的图片要简单的多,但是足够可以说明一件事,该模型可以胜任多个领域的机器视觉任务,或者是给各领域的cv工作者提供了底层解决方案或者思路。

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

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

相关文章

React动态路由配置

目录 项目初始化 模块创建 统一导出 全局模块配置选项 核心代码 使用及效果展示 博文适用于react-router v6及以上,其中还有很多值得改进的地方 最近学习react的过程中,思考怎样实现动态路由的配置(最终实现从页面配置最终动态从数据库加载上线模…

C++解析JSON JSONCPP库的使用

首先去GitHub下载JSONCPP的源码: JSonCpp的源码 解压后得到:jsoncpp-master 文件夹 需要的是:jsoncpp-master\src\lib_json 目录下的所有文件和 jsoncpp-master\include\json 目录下的所有文件,在MFC工程目录下新建两个文件夹或…

承诺协议:定义 构造

文章目录 安全性定义方案构造基于 OWP 存在性基于 DL 假设基于 OWF 存在性基于 DDH 假设 总结 安全性定义 承诺协议(Commitment Scheme)是一个两阶段的两方协议。一方是承诺者(Committer) C C C,另一方是接收者&#…

网络安全怎么学?

一、怎么入门? 这个 Web 安全学习路线,整体大概半年左右,具体视每个人的情况而定。 (上传一直很模糊,所以就没有展开了,需要高清版的可以在下面领取) 👉 【一学习路线高清版一】&a…

WiFi(Wireless Fidelity)基础(八)

目录 一、基本介绍(Introduction) 二、进化发展(Evolution) 三、PHY帧((PHY Frame ) 四、MAC帧(MAC Frame ) 五、协议(Protocol) 六、安全&#x…

AndroidStudio-学习笔记之多级目录功能的设计与开发

多级目录功能的设计与开发 演示效果需求描述开发预计前端后端 前端开发多级目录的UI小框架前端xml前端代码---本地demo版前端代码---服务器版逻辑说明 后端开发表设计书写接口 演示效果 需求描述 根据需求,为用户展示多级目录(目前设计的为4级目录),并在…

Win10笔记本无法正常启动代码0xc0000001解决方法

Win10笔记本无法正常启动代码0xc0000001解决方法。最近不少的用户在笔记本电脑安装Win10系统使用时,出现了蓝屏的情况,电脑显示错误代码0xc0000001无法启动到桌面使用。那么这个情况怎么去进行问题的解决呢?来看看以下的解决方法吧。 准备工作…

OpenCL编程指南-4.1OpenCL C编程

使用OpenCL C编写数据并行内核 OpenCL中的数据并行性表述为一个N维计算域,其中N1、2或3。N-D域定义了可以并行执行的工作项的总数。下面通过一个简单的例子来了解如何用OpenCL C编写一个数据并行内核,将两个浮点数数组相加。这个代码的串行版本求和时需…

在windows上通过QEMU快速上手RT-thread smart

参考链接 官方文档 资料下载 env-windows-v1.3.5.7z userapps 注意事项 通过QEMU仿真不同的平台,使用到的交叉编译工具也不一样,需要将相应工具的路径添加到系统PATH里;或者通过CMD定位到userapps,运行smart-env.bat xxx&…

【jvm系列-11】jvm性能调优篇---命令行工具的基本使用

JVM系列整体栏目 内容链接地址【一】初识虚拟机与java虚拟机https://blog.csdn.net/zhenghuishengq/article/details/129544460【二】jvm的类加载子系统以及jclasslib的基本使用https://blog.csdn.net/zhenghuishengq/article/details/129610963【三】运行时私有区域之虚拟机栈…

智能优化算法——下山单纯型算法

作者:非妃是公主 专栏:《智能优化算法》 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩 文章目录 专栏推荐序一、算法流程1. 反射2. 膨胀…

马哈鱼SQLFLow数据流生成介绍

马哈鱼数据血缘分析器是当前最流行的数据血缘关系(data lineage)管理工具之一,它是一种通过分析SQL脚本来自动发现数据流向的工具。它通过生成一个简洁的图表来显示数据仓库中表/视图和列之间的数据流。支持超过20种流行的数据库,包括 bigquery, couchba…

项目风险的4种应对策略及实施条件

面对威胁或可能给项目带来消极影响的风险,我们一般采用规避、转移、缓解和接受的应对策略。 一、风险规避 风险规避策略是指项目团队采取行动来消除威胁,或保护项目免受风险影响的应对策略,通常包括改变项目管理计划,以完全消除威…

super_数学知识(质数筛选和约数学习)lesson08易错题记录

文章目录 回文质数第n小的质数素数个数 回文质数 先上代码 #include<iostream> #include<vector>//创建动态数组需要的头文件 #include<cstring>//使用memset需要的头文件 using namespace std; vector<int> q; bool arr[10000005]; //埃氏筛法找出所…

详解软件开发的标准过程(生命周期):跟着标准搞,设计没烦恼

目录 一.软件开发的生命周期总括 二.项目架构分类 C/S架构 B/S架构 三.详解软件需求 需求分类 需求获取 需求分析 四.详解面向对象分析&#xff08;OOA&#xff09; 概念理解&#xff1a; 统⼀建模语⾔UML UML的重要组成部分&#xff1a; ⽤例图的元素 识别参与者…

怎么搭建个人小型渲染农场?搭建渲染农场配置

渲染农场是众多机器组成的渲染集群&#xff0c;通常用来渲染你的单帧效果图或动画项目&#xff0c;我们借助渲染农场的力量&#xff0c;可以满足3D项目交期时间迫在眉睫的需求&#xff0c;当你试着在自己的机器上渲染一个复杂的动画项目时&#xff0c;可能需要几十小时的等待时…

gdb与symbol符号表文件的调试

目录 1&#xff0c;剥离命令 2&#xff0c;gdbdebug 文件的调试 今天在调试程序的时候发现&#xff0c;在测试部测试的程序都是剥离了符号表的&#xff0c;导致用gdb无法调试&#xff0c;只有找到符号表文件才能继续gdb调试&#xff0c;好在符号表文件是和程序一起发布的。之…

浅谈作为程序员如何写好文档:了解读者

我作为从一名懵懂的实习生转变为工程师的工作经历中&#xff0c;伴随着技术经验的成长&#xff0c;也逐渐意识到了编写文档是知识和经验传递给其他人的最有效方式。通过文档&#xff0c;可以分享我的技术知识和最佳实践&#xff0c;使其他人更好地理解我的工作。在这里&#xf…

Postgres : 创建schema、创建表空间与指定用户权限

1. 创建新的Schema 要创建 PostgreSQL 中的一个新的 schema&#xff0c;并创建一个只有该 schema 权限的新用户&#xff0c;请按照以下步骤操作&#xff1a; &#xff08;1&#xff09;打开 PostgreSQL 客户端并连接到数据库服务器。 &#xff08;2&#xff09;创建一个新的…

如何在Oracle存储过程发生异常时获取out类型参数的值

Oracle存储过程关于在出现&#xff08;自定义/自带&#xff09;异常下out类型参数的获取问题的分析 ✈️ 场景: 有一些关于金额和时间的精确且量大的计算需要在存储过程中完成。存储过程中有一些自定义的异常。并且将在RAISE前通过out类型的参数将详细的异常原因返回。 但是在…