SAM(Segment Anything Model)让CV走到尽头?学CV的研究生还能正常毕业吗?怎么使用SAM?

news/2024/11/30 15:48:16/

SAM(Segment Anything Model)让CV走到尽头?学CV的研究生还能正常毕业吗?怎么使用SAM?

1. 引言

最近无论是在B站、知乎还是论坛、微博,都看了一些有关SAM的讨论。这个号称“CV界ChatGPT”的模型从出生起就备受各界关注。ChatGPT的开放使用一方面让大众深切体会到了顶尖团队的人工智能与“某某同学”、“小某小某”等“人工智障”的区别,另一方面也让公众对AI融入生活的期待值空前高涨。SAM恰巧诞生在这个CV界也正在寻求突破的时机,自然从出生起就伴随着争议。首先必须明确我的两个个人观点:

  • SAM强吗?——强,很强。无论是否诞生在这个时机,SAM本身的价值都是毋庸置疑的。

  • SAM会让CV走到尽头吗?学CV的研究生还能正常毕业吗?——SAM绝不会让CV走到尽头,学CV的研究生一样具有很多可能性。

2. SAM到底是什么

SAM是Facebook AI Research开发的一种计算机视觉模型。实现的功能是计CV中最常见的需求之一——分割(Segment)。分割的本质是:判断图像中的某个像素属于哪一个具体的对象。

在较新版本的PS中,已经引入了一些图像分割的应用,例如“选择主体”功能。

PS选择主体

PS可以轻松地选中图中的两条狗,但是当我放大图片尝试选择木棍时,PS显得有些乏力。

事实上,在具体的细分领域中,完成同SAM相同效果的图像分割是工程中最基础的任务之一。而SAM之所以产生了如此大的影响力,是因为SAM实现了不需要任何标注就可以完成(几乎)所有目标的分割。这也是模型的名字叫做Segment ANYTHING Model的原因。

SAM官方提供了Demo测试,演示了其强大的分割功能。我做了加个简单的测试,直接上图。

首先点击了模特的脸部,SAM分割出了男模特,精度整体可以接受。再右击男模特的身体部分(右击表示该像素点不在需要的目标内),SAM随即只选择了模特的头部。

除了基础的Segment之外,SAM的Demo还提供了一些进阶的功能。包括框选范围选择(BOX)、自动分割整张图片(EVERYTHOING)的模式,在官方提供的数据中都能达到不错的效果。再上图。

Box

EveryThing


分割线以上都是我使用官方提供的图片做的测试。SAM在一些偏激的使用场景下会有怎样的表现呢?我使用一张自己的图片做了测试。

自己的数据

图片是我之前做过的一个试验,图像中有一条亮度较高的激光线,以及若干条鱼。SAM的识别能力明显弱于在其官方数据中的表现。尤其是在边缘的识别上。点选的方式选中像素时,需要经过2-3次的调整,才能选中亮度较低的目标。使用Every Thing模式时,目标的边缘出现了较大的偏差。当然,这里所谓的”偏差“是跟”标准答案作对比的,客观地说,没有经过任何标签,能够做到这种精度的分割已经很了不起了。我同时简单标注了一些图片,使用Yolov7-segmentation标注,使用默认参数训练300 Epoch的效果与SAM零标签的效果类似。

yolov7segment

所以,SAM是一个强大的图像分割模型,能够在不进一步标注任何数据的情况下完成各种目标的分割。功能的实现除了归功于结构外,也无法忽视大数据发挥的重要作用,大力出奇迹在DL中格外适用。

PS:因为各种原因无法使用官方网站Demo的,也可以从github下载源码和模型,在本地跑测试。有需要的话我可以上传到度盘供下载。

3. 讨论:SAM真的会引发CV的巨变吗?

一些自媒体说SAM是CV界的ChatGPT,那就先让ChatGPT来回答一下这个问题吧:

每当一个新技术被提出时,总是会有一些人赶着热度唱衰整个行业。其实,SAM的出现只会将CV向前推进一步,而远不会使CV走到尽头。无论对从业者还是研究生,SAM带来的机遇都会大于挑战。

对于从业者来说:

  • SAM将Engineering的开箱即用做到了极致,SAM的生产力工具属性远远超过了其潜在的危险属性。在SAM问世之前,对于中下游的从业者来说,完成一个几乎没有学术意义的分割任务至少需要:1. 大量的图像标注工作 2. 算力说得过去的机器。而在SAM问世之后,几乎可以以零标注甚至是零代码的方式实现最基础的分割任务。

  • 可能会带来工作岗位的流失?一个真正伟大的扩时代的技术(且不论SAM有没有达到这个高度),带来的一定的工作岗位的增加,至少也该是更多应用的落地。SAM缩小了大厂、小厂之间的差距,让数据、算力都无法与大厂相比的中小型企业也有了站上CV顶端的可能性。只要思维够开阔,SAM可以带来很多便利。

对于CV研究生来说:CV很卷是事实,有一些人开始跑路也是事实。但是如果因为听信了一些自媒体鼓吹的SAM使CV走到了尽头,CV的研究生将无法毕业,那实在是过于悲观了。

  • 虽然SAM的作者们在朝着Segment Everything 的方向努力,但是真正的Segment Everything时代还没有来临(即使来临了,CV也不会走到尽头)。这是因为CV语义几乎可以无限细分,一些特定领域的分割语义是罕见、冷门甚至是自定义的。这些语义之间的逻辑关系错综复杂,目前的环境下很难通过一张图片来分割出所谓的Everything。

  • CV具有语义稀疏性、域间差异性和无限粒度性等天然的难题。例如,当前的图像识别、分割研究存在的一个问题是,当识别的粒度增加时,识别的确定性必然下降,也就是说,粒度和确定性是冲突的。举例说,在ImageNet中,存在着“家具”和“电器”两个大类;显然“椅子”属于“家具”,而“电视机”属于“家电”,但是“按摩椅”属于“家具”还是“家电”,就很难判断——这就是语义粒度的增加引发的确定性的下降。这还仅仅是继续针对分割而言的,即使今天Meta已经将分割做到了无懈可击,CV也不至于走到了尽头。

  • 不指望在任何分支领域做出突破,只想安安心心混个毕业?那SAM是否问世就更没有关系了。趁着SAM的热度还在,蹭一波热度应用到自己的领域中发几篇文章他不香吗?

4. SAM还能怎么用?

  • 与自动标签工具结合。SAM强大的分割功能最先让人想到打标签时的窒息。将SAM与标签工具结合,可以大大提高生产力。我已经在github上看到一些类似思路的工具,不过还没有试用,有需要可以自行检索。如果能够加上团队协作的功能就更完美了~。
  • 与AI绘画结合。前段时间很火的Stable Diffusion可以跟SAM做一个比较好的融合,尤其是在重绘功能的绘制蒙版时,可以进一步提高自动化的程度。
  • 给Idol换件衣服是不是也不错哈哈哈,这也是基于SAM的一个开源库,叫做Grounded-Segment-Anything

更多用法欢迎交流~~


http://www.ppmy.cn/news/47544.html

相关文章

藏经阁(七)有源蜂鸣器和无源蜂鸣器 解析

文章目录 特征区别场景选型实战应用 特征 有源蜂鸣器特征: 又被称为直流蜂鸣器包含了一个多谐振荡器只要额定直流电压可以在两端发出声音具有驱动控制简单价格略高 无源蜂鸣器特征: 又被称为交流蜂鸣器内部没有振荡器需要在两端施加特定频率的方波电…

mysql-!=,<>,=,<=>,is区别及使用推荐

!和<> 相同点&#xff1a;两个比较符作用相同 不同点&#xff1a;!是ANSI标准中的一部分&#xff0c;因此也可以用在其他数据库中。而<>只能在mysql中使用。 建议&#xff1a;如果可以都用!&#xff0c;这样可以减少必要的迁移成本&#xff0c;如mysql的sql迁移到…

MVC、MVP、MVVM:谁才是Android开发的终极之选?

概述 MVC、MVP、MVVM 都是在 Android 开发中经常用到的架构思想&#xff0c;它们都是为了更好地分离代码、提高代码可复用性、方便维护等目的而设计的。下面对这三种架构思想进行简单的介绍和比较。 MVC MVC 架构是最早被使用的一种架构&#xff0c;它把程序分成了三个部分&…

windows下Tomcat安装

目录 1.安装java环境 2.配置Tomcat环境变量 3.安装服务 4.启动前修改配置文件 &#xff08;1&#xff09;设置tomcat端口 &#xff08;2&#xff09;设置临时日志等文件夹的位置 5.放入应用 6.启动Tomcat服务 1.安装java环境 安装tomcat版本对应的JDK 比如&#xff1a;…

初始单片机.md

1.如何将HEX文件烧录到单片机 STC-ISP STC-ISP是一款单片机下载编程烧录软件&#xff0c;是针对STC系列单片机而设计的&#xff0c;可下载STC89系列、12C2052系列和12C5410等系列的STC单片机&#xff0c;使用简便。 思路&#xff1a;将电脑磁盘上已存在的文件通过串口的方式下…

Linux文件系统 文件恢复

inode和block block 用于存储文件数据。 文件是存储在硬盘上的&#xff0c;硬盘的最小存储单位叫做“扇区”&#xff08;sector&#xff09;&#xff0c;每个扇区存储512字节。连续八个扇区组成一个"块"&#xff08;block&#xff09;&#xff0c;一个块是4K大小&…

Zookeeper实战之客户端Curator vs zkClient

1. zookeeper应用开发 Zookeeper应用开发&#xff0c;需要使用Zookeeper的java 客户端API &#xff0c;去连接和操作Zookeeper 集群。 可以供选择的java 客户端API 有&#xff1a;Zookeeper 官方的 java客户端API&#xff0c;第三方的java客户端API。 Zookeeper官方的客户端…

PAM AppArmor非默认目录构建和安装

在AppArmor零知识学习十二、源码构建&#xff08;9&#xff09;中&#xff0c;详细介绍了PAM AppArmor的构建步骤&#xff0c;但那完全使用的是官网给出的默认参数。如果需要将目标文件生成到指定目录而非默认的/usr&#xff0c;则需要进行一些修改&#xff0c;本文就来详述如何…