一、图像分割领域的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演示的官网地址,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:segment-anything.com/
- 开源地址:github.com/facebookres…
- 论文地址:ai.facebook.com/research/pu…
- SA-1B数据集:ai.facebook.com/datasets/se…
我是千与千寻,一个只讲干活的码农!我们下期见~