图像分割领域的GPT-4.0,分割一切的AI算法:Segment Anything

news2025/1/25 9:15:22

一、图像分割领域的GPT-4.0
大家好,我是千与千寻,今天给大家介绍的AI算法可以称得上是图像分割领域的GPT-4.0,号称可以分割一切的AI图像分割算法——Segment Anything。
提到GPT-4.0模型,相信不必我多说,大家都不会陌生,最近实在是太火爆了,大家应该也都体验过ChatGPT那种与未来相连般的内心震撼,现在的GPT-4.0可以在人机对话中达到近乎百分之百准确率的智能问答。事实上,通用ChatGPT背后所使用的自然语言模型是GPT-3.5,而GPT-4.0的模型性能比GPT-3.5相比更加强大,几乎可以做到"回答一切"。
那么,为什么说这个AI算法是图像分割领域的GPT-4.0呢?这是因为类比GPT-4.0 回答一切的能力,Segment Anything图像分割算法,可以做到“分割一切”,实现对任何一张样本图片进行零样本的迁移图像分割。这么说,或许你可能觉得有些云里雾里,别急,我们下面详细解释它的用法。

在这里插入图片描述

在咱们编程导航星球中有一部分同学是有AI算法的基础,而其他同学没有AI算法的学习基础,所以我的算法讲解会来考虑到不同程度的小伙伴,实现让零基础的小伙伴也可以自己动手玩起来这些有意思的AI算法,让你亲自上手去体验这些AI算法的震撼。针对有AI算法基础的小伙伴,我也会细细讲解算法原理,帮你理解算法的工作原理,总之,在我的专栏中,相信编程导航里面的每一个小伙伴都能有自己的收获。

二、初入图像分割领域
首先给大家简单介绍一下,什么是图像分割?所谓图像分割就是我们日常生活当中所说的“抠图”,图像分割是对图像中的每一个像素进行分类的过程。图像本身是由二维数组矩阵组成的,对图像中的每一个像素点使用一个分类标签,称之为Mask,然后对每一个像素点进行标签分类,得出图像中每一个像素点所属的类别,并且将类属于同一Mask的像素点进行合并,赋予相同的Mask标签,达到最后图像分割的效果,也就是我们俗称的“抠图”操作。

在这里插入图片描述

下面进入我们今天的主角——Segment Anything图像分割模型,其图像分割功能包含三种实现形式,点击交互式图像分割,设定方框图区域图像分割,Anything分割也就全局分割,你可能有感觉听不明白,不着急,我们马上对这三种图像分割方式,给大家进行一一演示其分割效果与工作原理。

三、上手实践Segment Anything图像分割
首先进入Demo演示的官网地址,https://segment-anything.com/demo
点击Try to demo按钮,进行分割demo的操作界面,如下图所示。

在这里插入图片描述

进行分割的实验图片,可以采用upload image手动上传自己的图片,进行demo的效果测试,与此同时,官方也提供了一定数量的现成测试图片,在这里我使用官方提供的图片进行演示。
在这里插入图片描述

选择待分割的图片样本,正式进入图像分割模式。

1、点击交互式图像分割:
其实这个名字是我根据所实现的功能效果取得,点击交互式图像分割实现的是鼠标点击其中一类标签一次或者多次,实现图像分割,它所实现的功能是通过你手动选取其中一类Mask的一个定位点,算法模型会自动根据你选择的Mask类别进行图像分割。

在这里插入图片描述

通俗来说,此类分割不是对本张图片的所有Mask进行分割操作,仅指定图片中一个Mask时,算法模型会仅分割其中一类,同时也可以选择其中的Mult-mask模式,在“多标签”模式下,你可以在同一个类别中点击多次,算法模型会根据不同选取定位点之间的逻辑距离关系进行选取,但是不同之处在于选取其他Mask区域,模型也会把这个Mask对应的图像分割效果显示出来,如下图为进行Mult-mask模式下的分割效果图。
在这里插入图片描述

我们可以看到图像中的“小狗”物体上点了四个定位点,在树上点了三个定位点,算法模型根据不同定位点之间的逻辑距离关系,将四个定位点所在的区域分割为“小狗”区域,而上面的三个点全部分割为“树”,一共分割出两个物体分割块。不仅如此,最厉害的是分割下来的图形,还可以进行分割块的保存,得到最终分割保存区域的图,如下图所示:

在这里插入图片描述

Mult-mask模式的图像分割方式,不仅可以将所指定的“抠图”区域进行准确分割,还可以将图像分割区域与原图像进行一个三维视觉下的对比,如下图中的对比效果。

2、设定方框图区域图像分割
之前我们所提及的是点击交互式图像分割功能,而接下来要讲的是,设定方框区域内图像分割,与点击交互式图像分割方法相比,设定方框图区域图像分割方法采取手动绘制方框的形式来确定进行图像分割的区域,对所放置的矩形方框的内部区域进行图像分割,具体的分割效果,我们以下面这张飞机图片进行演示,可以看到在我们所绘制的矩形方框内部进行图像分割,而其他区域不属于我们绘制的这个矩形方框范围内,所以没有进行分割,使用者也可以手动设置矩形方框的大小,然后来决定对图像哪些部分进行分割。

在这里插入图片描述

3、Anything分割(全局分割)
前两种模式均包含人机交互部分,比如需要手动指定分割定位点,或者手动绘制矩形方框区域,完成部分类别的物体图像分割,而第三种全局分割所实现的功能效果,则是将图片中所包含的类别进行一次性的分割出来,如下图中的分割效果。可以说是最为简便也是最为直接的图像分割。

在这里插入图片描述

其实我们可以看到在第三种全局分割模式下,图像中的每块区域都进行了分割操作,这种模式用于自动驾驶领域相对较多一些,至于前两种方式,当你需要扣除图像中的一小部分来生成图片或部分标记的时候,我们可以借助这样的图像分割模式,指定方框区域或者具体中心定位点,将目标分割区域进行分割。
这个分割一切的图像分割模型是非常具有里程碑式并且很有意思的AI算法,大家可以去亲身去体验一下,对其中原理和方法进行了解,把它应用到我们的实际生活中,提高我们的工作效率。
说到这里感叹一下,现在AI算法的发展真的是如此之快,从几乎可以回答一切问题的GPT-4.0,再到图像分割一切的Segment Anything 模型,而且还在不断发展,后续准备开设有一个新的专栏《简单好玩的AI算法》,带领无论是已经在AI算法领域还是对AI算法感兴趣的小伙伴,一起动手学习体验AI算法的魅力。

SAM Demo:https://segment-anything.com/
开源地址:https://github.com/facebookresearch/segment-anything
论文地址:https://ai.facebook.com/research/publications/segment-anything/
SA-1B数据集:https://ai.facebook.com/datasets/segment-anything/

我是千与千寻,一个只讲干活的码农!我们下期见~

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

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

相关文章

C++笔记——第十三篇 种一颗 AVL树,长大变成 红黑树,开出了 map和set

目录 一、引入 1. 关联式容器 二、键值对 三、树形结构的关联式容器 3.1 set 3.1.1 set的介绍 3.1.2 set的使用 3.2 map3.2.1 map的介绍 3.2.2 map的使用 3.3 multiset 3.3.1 multiset的介绍 3.4 multimap 3.4.1 multimap的介绍 四、底层结构 4.1 AVL 树 4.1.1 AVL树的概念…

实验进行套路【1】

实验是用来证明猜想正确与否的关键方法,做好实验对提升论文发表效率至关重要。本篇博客结合自身经历总结做实验的方法论,希望能对读者有用。本篇不会从技术实现角度来介绍做实验的方法,而会从指导思想角度入手。如果你是一个科研工作者的话&a…

AIPRM for ChatGPT插件让ChatGPT如虎添翼

ChatGPT大热,家人们都申请到了账号,可是总是在一问一答的基础上来完成基本的应用,而不能很好的使用「咒语」(Prompt),收获的答案不是通过很多次的反复问获取答案,就是获取的不是想要的答案。所以…

最重要的 JVM 参数总结

1.概述 在本篇文章中,你将掌握最常用的 JVM 参数配置。 2.堆内存相关 Java 虚拟机所管理的内存中最大的一块,Java 堆是所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实…

Auto-GPT来啦,手把手教你安装更稳定的stable的Auto-GPT,实现两个AutoGPT合作执行任务,AutoGPT代理同时执行任务

进入Auto-GPT项目 https://github.com/Significant-Gravitas/Auto-GPT 应该在git bash还是git cmd命令窗口敲以上命令 应该在git bash窗口中敲git命令。 Git Bash是Windows上的一个搭载了Git的终端仿真器,提供了类似Unix的命令行环境,使得在Windows上…

深入浅出剖析JAVA多线程原理

1. 线程基础知识 1.1 线程与进程 1.1.1 进程 ●程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理…

nacos登录 提示权限认证失败 没有命名空间的访问权限

前言 环境:centos7.9 nacos-2.2.2 问题描述 最近在部署nacos-2.2.2版本的时候,这是目前2023年4月份最新版本,发现按照start.out日志给出的登录地址,http://192.168.158.128:8848/nacos/index.html登录,发现总是提示…

一图看懂系列——文件处理模块(总目录)

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂系列——文件处理模块(总目录) 摘要目录注: 摘要 本文介绍了文件处理的模块的目录。 以前每个模块单独撰文,现在把它们归集起…

node版本管理nvm的使用

在很多情况下对node版本需要安装多版本的控制,如何快速的切换node版本,请在配置完node的环境变量的基础上,阅读这篇文章。这里需要介绍nvm这个工具: 一、下载 官方下载地址:https://github.com/coreybutler/nvm-wind…

使用Python创建分形图案

分形是无限复杂的模式,在不同的尺度上具有自相似性。例如,一棵树的树干会分裂成更小的树枝。这些树枝又分裂成更小的树枝,以此类推。 通过编程的方式生成分形,可以将简单的形状变成复杂的重复图案。 本文将探讨如何利用一些简单…

ThinkSystem DM 系列混合闪存 —— 快速、灵活、可靠、安全

ThinkSystem DM 系列混合闪存 —— 快速、灵活、可靠、安全 统一存储优化混合云部署具备一流数据管理的横向扩展混合存储 挑战 实现跨闪存、磁盘和云数据驱动型业务 存储已从 IT 事后思考的问题发展成公司基础架构至关重要的组件。企业感觉迫切需要跟上爆炸式增长的数据。标…

抖音滑块以及轨迹分析

声明 本文以教学为基准、本文提供的可操作性不得用于任何商业用途和违法违规场景。 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任。 如有侵权,请联系我进行删除。 我们在web端打开用户主页的时候,时不时的会出现滑…

tf-idf+lda分析多篇文章摘要

import pandas as pd import numpy as np import matplotlib.pyplot as plt #import seaborn as sns plt.rcParams[font.sans-serif] [KaiTi] #指定默认字体 SimHei黑体 plt.rcParams[axes.unicode_minus] False #解决保存图像是负号 import jieba import os # stop_list …

RabbitMQ的介绍和安装

文章目录 1.1 RabbitMQ介绍1.2 RabbitMQ的安装1.2.1 下载镜像1.2.2 安装启动1.2.3 测试 1.1 RabbitMQ介绍 RabbitMQ是一个开源的消息队列中间件,可以用于构建分布式应用程序,使应用程序能够快速、可靠地处理大量消息。它实现了AMQP(高级消息队…

Vue安装脚手架 vue-cli

Vue 脚手架是 Vue 官方提供的标准化开发工具(开发平台) 在安装脚手架之前我们还需要安装 Node.JS 和 npm 全局安装 vue-cli 【初次安装】: 首先打开命令行 输入 npm install -g vue/cli 再按回车键 安装脚手架 安装命令行: npm install …

多层LCP技术的毫米波段超宽带槽天线设计

1、引言 无线宽带通信的迅猛发展需要能传输高比特率的新型宽带天线。毫米波段是短距离高比特率无线通信的重要波段。所以近年来,毫米波段小型高性能的超宽带天线吸引了大量的研究人员在这方面进行研究工作。 天线设计的另一个重要趋势是集成天线的射频前端电路。在…

Linux/Unix编写sh脚本,设置开机自动启动脚本在linux下

1编写.sh脚本的基本步骤: 创建一个新的文本文件,使用一个文本编辑器,比如vi或nano,来编写脚本。你需要保存文件为.sh扩展名,以便让系统知道这是一个shell脚本文件。 touch myprogram.sh #!/bin/sh# 进入C程序所在目…

基于JAVA的网络通讯系统设计与实现

一般来说,聊天工具大多数由客户端程序和服务器程序,外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式,通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多…

HTB-Cascade

HTB-Cascade 信息收集立足s.smith -> arksvc使用脚本获取CascAudit.exe加密的密码明文修改IL指令获取 arksvc -> administrator 信息收集 查看smbclient。 rpcclient空密码连接并收集信息。 收集到用户列表,此外没有有意思的信息。 CascGuest arksvc s.smi…

Qt/QML编程学习之心得:二进制兼容、私有实现及Q_D/Q_Q指针(三)

QML画好或说描述好界面之后,实现部分通过C++实现,Qt采用了私有实现的设计模式解决了二进制兼容的问题。 二进制兼容问题描述: 现在有一个Widget, 包含一个私有成员变量m_geometry ,编译 Widget 并且发布为MyWidgetLib 1.0 。该应用程序名字为TestAPP,基于 Qt 4.9。 cla…