就在刚刚,Meta AI发布了Segment Anything Model(SAM)——第一个图像分割基础模型。
SAM能从照片或视频中对任意对象实现一键分割,并且能够零样本迁移到其他任务。

整体而言,SAM遵循了基础模型的思路:
1. 一种非常简单但可扩展的架构,可以处理多模态提示:文本、关键点、边界框。
2. 直观的标注流程,与模型设计紧密相连。
3. 一个数据飞轮,允许模型自举到大量未标记的图像。
而且,毫不夸张地说,SAM已经学会了「物体」的一般概念,甚至对于未知物体、不熟悉的场景(例如水下和显微镜下)以及模糊的案例也是如此。
此外,SAM还能够泛化到新任务和新领域,从业者并不需要自己微调模型了。
论文地址:https://ai.facebook.com/research/publications/segment-anything/
最强大的是,Meta实现了一个完全不同的CV范式,你可以在一个统一框架prompt encoder内,指定一个点、一个边界框、一句话,直接一键分割出物体。
对此,腾讯AI算法专家金天表示,「NLP领域的prompt范式,已经开始延展到CV领域了。而这一次,可能彻底改变CV传统的预测思路。这一下你可以真的可以用一个模型,来分割任意物体,并且是动态的!」
英伟达AI科学家Jim Fan对此更是赞叹道:我们已经来到了计算机视觉领域的「GPT-3时刻」!
所以,CV真的不存在了?
SAM:一键「切出」任何图像中的所有对象
Segment Anything是致力于图像分割的第一个基础模型。
分割(Segmentation)是指识别哪些图像像素属于一个对象,一直是计算机视觉的核心任务。
但是,如果想为特定任务创建准确的分割模型,通常需要专家进行高度专业化的工作,这个过程需要训练AI的基础设施,和大量仔细标注的域内数据,因此门槛极高。
为了解决这个问题,Meta提出了一个图像分割的基础模型——SAM。这个接受了多样化数据训练的可提示模型,不仅能适应各种任务,而且操作起来也类似于在NLP模型中使用提示的方式。
SAM模型掌握了「什么是对象」这个概念,可以为任何图像或视频中的任何对象生成掩码,即使是它在训练中没有见过的对象。
SAM具有如此广泛的通用性,足以涵盖各种用例,不需要额外训练,就可以开箱即用地用于新的图像领域,无论是水下照片,还是细胞显微镜。也即是说,SAM已经具有了零样本迁移的能力。
Meta在博客中兴奋地表示:可以预计,在未来,在任何需要在图像中查找和分割对象的应用中,都有SAM的用武之地。
SAM可以成为更大的AI系统的一部分,对世界进行更通用的多模态理解,比如,理解网页的视觉和文本内容。
在AR/VR领域,SAM可以根据用户的视线选择对象,然后把对象「提升」为 3D。
对于内容创作者,SAM可以提取图像区域进行拼贴,或者视频编辑。
SAM还可以在视频中定位、跟踪动物或物体,有助于自然科学和天文学研究。

在以前,解决分割问题有两种方法。
一种是交互式分割,可以分割任何类别的对象,但需要一个人通过迭代微调掩码。
第二种是自动分割,可以分割提前定义的特定对象,但训练过程需要大量的手动标注对象(比如要分割出猫,就需要成千上万个例子)。
总之,这两种方式都无法提供通用、全自动的分割方法。
而SAM可以看作这两种方法的概括,它可以轻松地执行交互式分割和自动分割。
在模型的可提示界面上,只要为模型设计正确的提示(点击、框、文本等),就可以完成广泛的分割任务。
另外,SAM在包含超过10亿个掩码的多样化、高质量数据集上进行训练,使得模型能够泛化到新的对象和图像,超出其在训练期间观察到的内容。因此,从业者不再需要收集自己的细分数据,为用例微调模型了。
这种能够泛化到新任务和新领域的灵活性,在图像分割领域尚属首次。
(1) SAM 允许用户通过单击一下,或交互式单击许多点,来分割对象,还可以使用边界框提示模型。
(2) 在面对被分割对象的歧义时,SAM可以输出多个有效掩码,这是解决现实世界中分割问题的必备能力。
(3) SAM 可以自动发现、屏蔽图像中的所有对象。(4) 在预计算图像嵌入后,SAM可以实时为任何提示生成分割掩码,允许用户与模型进行实时交互。
研究人员训练的SAM可以针对任何提示返回有效的分割掩码。提示可以是前景/背景点、粗略的框或掩码、自由形式的文本,或者总体上任何指示图像中需要分割的信息。
有效掩码的要求仅仅意味着即使在提示模糊且可能指代多个对象的情况下(例如,衬衫上的一个点可能表示衬衫或者穿衬衫的人) ,输出应该是其中一个对象的合理掩码。

研究人员观察到,预训练任务和交互式数据收集对模型设计施加了特定的约束。
特别是,该模型需要在网络浏览器中CPU上实时运行,以便让标准人员能够高效实时与SAM互动进行标注。
虽然运行时间的约束,意味着质量与运行时间之间需要权衡,但研究人员发现,在实践中,简单的设计可以取得良好的效果。
SAM的图像编码器为图像产生一次性嵌入,而轻量级解码器将任何提示实时转换为矢量嵌入。然后将这两个信息源在一个预测分割掩码的轻量级解码器中结合起来。
在计算出图像嵌入之后,SAM可以在短短50毫秒内生成一段图像,并在网络浏览器中给出任何提示。

最新SAM模型在256张A100上训练了68小时(近5天)完成。

项目演示
在图像中指定要分割的内容的提示,可以实现各种分割任务,而无需额外的训练。

用互动点和方框作为提示

自动分割图像中的所有元素

为模棱两可的提示生成多个有效的掩码
SAM可以接受来自其他系统的输入提示。
例如,根据AR/VR头显传来的用户视觉焦点信息,来选择对应的物体。Meta通过发展可以理解现实世界的AI,恰恰为它未来元宇宙之路铺平道路。

或者,利用来自物体检测器的边界框提示,实现文本到物体的分割。
输出掩码可以作为其他AI系统的输入。
例如,物体的mask可以在视频中被跟踪,通过成像编辑应用程序,变成3D,或用于拼贴等创造性任务。

SAM学会了关于物体是什么的一般概念——这种理解使其能够对不熟悉的物体和图像进行零样本概括,而不需要额外训练。



选择Hover&Click,点Add Mask后就出现绿点,点Remove Area后出现红点,吃苹果的花花立刻就被圈出来了。

而在Box功能中,简单框选一下,就立马完成识别。

点Everything后,所有系统识别出的对象立刻全部被提取出来。
选Cut-Outs后,秒得一个三角团子。

除了发布的新模型,Meta还发布了迄今为止最大的分割数据集SA-1B。
这个数据集由1100万张多样化、高分辨率、保护隐私的图像,以及11亿个高质量分割掩码组成。
数据集的整体特性如下:
· 图像总数: 1100万
· 掩码总数: 11亿
· 每张图像的平均掩码: 100
· 平均图像分辨率: 1500 × 2250 pixels
注意:图像或掩码标注没有类标签
Meta特别强调,这些数据是通过我们的数据引擎收集的,所有掩码均由SAM完全自动生成。
有了SAM模型,收集新的分割掩码的速度比以往任何时候都快,交互式标注一个掩码只需要大约14秒。
每个掩码标注过程只比标注边界框慢2倍,使用最快的标注界面,标注边界框大约需要7秒。
与以前的大规模分割数据收集工作相比,SAM模型COCO完全手动的基于多边形的掩码标注快6.5倍,比以前最大的数据标注工作(也是模型辅助)快2倍。

然而,依赖于交互式标注掩码并不足以创建10亿多个掩码数据集。因此,Meta构建了一个用于创建SA-1B数据集的数据引擎。
这个数据引擎有三个「齿轮」:
1. 模型辅助标注
2. 全自动标注与辅助标注的混合,有助于增加收集到的掩码的多样性
3. 全自动掩码创建,使数据集能够扩展
我们的最终数据集包括超过11亿个分割掩码,这些掩码收集在大约1100万张授权和保护隐私的图像上。
SA-1B比任何现有的分割数据集多出400倍的掩码。并且通过人类评估研究证实,掩码具有高质量和多样性,在某些情况下,甚至在质量上可与之前规模更小、完全手动标注数据集的掩码相媲美。

SA-1B的图片是通过来自多个国家/地区的照片提供商获取的,这些国家/地区跨越不同的地理区域和收入水平。
虽然某些地理区域仍然代表性不足,但SA-1B比以前的分割数据集在所有地区都有更多的图像和更好的整体代表性。
最后,Meta称希望这些数据可以成为新数据集的基础,这些数据集包含额外的标注,例如与每个掩模相关联的文本描述。
Ross Girshick

Ross Girshick(常被称为RBG大神)是Facebook人工智能研究院(FAIR)的一名研究科学家,他致力于计算机视觉和机器学习的研究。
2012年,Ross Girshick在Pedro Felzenszwalb的指导下获得了芝加哥大学的计算机科学博士学位。
在加入FAIR之前,Ross是微软研究院的研究员,也是加州大学伯克利分校的博士后,在那里他的导师是Jitendra Malik和Trevor Darrell。
他获得了2017年的PAMI青年研究员奖,2017年和2021年的PAMI Mark Everingham奖,以表彰他对开源软件的贡献。
众所周知,Ross和何恺明大神一起开发了R-CNN方法的目标检测算法。2017年,Ross和何恺明大神的Mask R-CNN论文获得了ICCV 2017最佳论文。
Meta打造的这款CV领域的分割基础模型,让许多网友高呼「这下,CV是真不存在了。」

Meta科学家Justin Johnson表示:「对我来说,Segment Anything的数据引擎和ChatGPT的RLHF代表了大规模人工智能的新时代。与其从嘈杂的网络数据中学习一切,不如巧妙地应用人类标注与大数据相结合,以释放新的能力。监督学习强势回归!」

唯一遗憾的是,SAM模型发布主要是由Ross Girshick带队,何恺明却缺席了。

知友「matrix明仔」表示,这篇文章进一步证明多模态才是CV的未来,纯CV是没有明天的。
我在开发的Rails3网站的一些搜索功能上遇到了一个小问题。我有一个简单的Post模型,如下所示:classPost我正在使用acts_as_taggable_on来更轻松地向我的帖子添加标签。当我有一个标记为“rails”的帖子并执行以下操作时,一切正常:@posts=Post.tagged_with("rails")问题是,我还想搜索帖子的标题。当我有一篇标题为“Helloworld”并标记为“rails”的帖子时,我希望能够通过搜索“hello”或“rails”来找到这篇帖子。因此,我希望标题列的LIKE语句与acts_as_taggable_on提供的tagged_with方法
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
有人知道在发布新版本的Ruby和Rails时收到电子邮件的方法吗?他们有邮件列表,RubyonRails有一个推特,但我不想听到那些随之而来的喧嚣,我只想知道什么时候发布新版本,尤其是那些有安全修复的版本。 最佳答案 从therailsblog获取提要.http://weblog.rubyonrails.org/feed/atom.xml 关于ruby-on-rails-如何在发布新的Ruby或Rails版本时收到通知?,我们在StackOverflow上找到一个类似的问题:
尝试从我的AngularJS端将数据发布到Rails服务器时出现问题。服务器错误:ActionController::RoutingError(Noroutematches[OPTIONS]"/users"):actionpack(4.1.9)lib/action_dispatch/middleware/debug_exceptions.rb:21:in`call'actionpack(4.1.9)lib/action_dispatch/middleware/show_exceptions.rb:30:in`call'railties(4.1.9)lib/rails/rack/logg
当音乐碰上区块链技术,会擦出怎样的火花?或许周杰伦已经给了我们答案。8月29日下午,B站独家首发周杰伦限定珍藏Demo独家访谈VCR,周杰伦在VCR里分享了《晴天》《青花瓷》《搁浅》《爱在西元前》四首经典歌曲Demo背后的创作故事,并首次公布18年前未发布的神秘作品《纽约地铁》的Demo。在VCR中,方文山和杰威尔音乐提及到“多亏了区块链技术,现在我们可以将这些Demos,变成独一无二具有收藏价值的艺术品,这些Demos可以在薄盒(国内数藏平台)上听到。”如何将音乐与区块链技术相结合,薄盒方面称:“薄盒作为区块链技术服务方,打破传统对于区块链技术只能作为数字收藏的理解。聚焦于区块链技术赋能,在
我想上传我在运行时用Ruby生成的数据,就像从block中提供上传数据一样。我找到的所有示例仅展示了如何流式传输必须在请求之前位于磁盘上的文件,但我不想缓冲该文件。除了滚动我自己的套接字连接之外,最好的解决方案是什么?这是一个伪代码示例:post_stream('127.0.0.1','/stream/')do|body|generate_xmldo|segment|body 最佳答案 有效的代码。require'thread'require'net/http'require'base64'require'openssl'class
昨晚看到IDEA官推宣布IntelliJIDEA2023.1正式发布了。简单看了一下,发现这次的新版本包含了许多改进,进一步优化了用户体验,提高了便捷性。至于是否升级最新版本完全是个人意愿,如果觉得新版本没有让自己感兴趣的改进,完全就不用升级,影响不大。软件的版本迭代非常正常,正确看待即可,不持续改进就会慢慢被淘汰!根据官方介绍:IntelliJIDEA2023.1针对新的用户界面进行了大量重构,这些改进都是基于收到的宝贵反馈而实现的。官方还实施了性能增强措施,使得Maven导入更快,并且在打开项目时IDE功能更早地可用。由于后台提交检查,新版本提供了简化的提交流程。IntelliJIDEA
Unity数据可视化图表插件XCharts3.0发布历时8个多月,业余时间,断断续续,XCharts3.0总算发布了。如果要打个满意度,我给3.0版本来个80分。对于代码框架结构设计的调整改动,基本符合预期,甚是满意。相比之前的1.0和2.0版本,我认为3.0才是一个拿得出手给广大开发者使用的版本。1.0发布的时候,很兴奋,从0.1到1.0,也磨了一年,真的等不及想给大家试用了,还特地写过一篇文章以示庆祝。那个时候,1.0虽然还还不够完善,功能也不够丰富,但它是XCharts的开始,没有1.0,也就没有后面的2.0和3.0。后面的2.0发布,做了很多改进和优化,随着版本迭代,慢慢的发现有不少硬
给定一个Ruby数组字符串,其中一些项目在引号中包含逗号:my_string.inspect#=>"\"hey,you\",21"我怎样才能得到一个数组:["hey,you","21"] 最佳答案 Ruby标准CSV库的.parse_csv就是这样做的。require'csv'"\"hey,you\",21".parse_csv#=>["hey,you","21"] 关于ruby-用逗号将字符串分割成数组,除非逗号在引号内,我们在StackOverflow上找到一个类似的问题:
我有一个模型依赖于一个单独的、联合的模型。classMagazine图像是多态的,可以附加到许多对象(页面和文章),而不仅仅是杂志。杂志需要在相关图像发生任何变化时自行更新该杂志还保存了一张自己的截图,可用于宣传:classMagazine现在如果图像发生变化,杂志也需要更新其截图。所以杂志真的需要知道图片什么时候出了问题。所以我们可以天真地直接从封面图片触发屏幕截图更新classImage...但是图片不应该代表杂志做事然而,图片可以用于许多不同的对象,实际上不应该对杂志进行特定的操作,因为这不是图片的责任。该图像也可能附加到页面或文章,并且不需要为它们做各种事情。“正常”的rail