当前位置: 首页 > news >正文

SAM 2——视频和图像实时实例分割的全新开源模型

引言

源码地址:https://github.com/facebookresearch/segment-anything-2
过去几年,人工智能领域在文本处理的基础人工智能方面取得了显著进步,这些进步改变了从客户服务到法律分析等各个行业。然而,在图像处理方面,我们才刚刚开始。视觉数据的复杂性以及训练模型以准确解释和分析图像的挑战带来了重大障碍。随着研究人员继续探索图像和视频的基础人工智能,人工智能图像处理的未来有望为医疗保健、自动驾驶汽车等领域带来创新。

对象分割是计算机视觉中的一项关键任务,它涉及精确定位图像中与感兴趣对象相对应的像素。传统上,这涉及创建专门的 AI 模型,这需要广泛的基础设施和大量带注释的数据。去年,Meta 推出了 分段任何模型(SAM),以 基础人工智能 模型简化了这一过程,允许用户通过简单的提示分割图像。这项创新减少了对专业知识和大量计算资源的需求,使图像分割更容易实现。

现在,Meta 又迈进了一步, SAM 2。这一新版本不仅增强了 SAM 现有的图像分割功能,还将其进一步扩展到视频处理。SAM 2 可以分割图像和视频中的任何对象,甚至是它以前从未遇到过的对象。这一进步是计算机视觉和图像处理领域的一次飞跃,为分析视觉内容提供了更通用、更强大的工具。在本文中,我们将深入探讨 SAM 2 令人兴奋的进步,并探讨其重新定义计算机视觉领域的潜力。

引入“任意细分模型”(SAM)

传统的分割方法要么需要手动细化(称为交互式分割),要么需要大量带注释的数据才能自动分割成预定义的类别。SAM 是一种基础 AI 模型,支持使用多种提示(如点击、框或文本输入)进行交互式分割。它还可以使用最少的数据和计算资源进行微调,以实现自动分割。SAM 经过超过 1 亿个不同的图像注释的训练,可以处理新对象和图像,而无需自定义数据收集或微调。

SAM 有两个主要组件:一个用于处理图像的图像编码器和一个用于处理点击或文本等输入的提示编码器。这些组件与一个轻量级解码器一起用于预测分割掩码。处理完图像后,SAM 可以在 Web 浏览器中仅用 50 毫秒创建一个片段,使其成为实时交互式任务的强大工具。为了构建 SAM,研究人员开发了一个三步数据收集过程:模型辅助注释、自动和辅助注释的混合以及全自动掩码创建。这个过程导致了 SA-1B 数据集,其中包括 1.1 万张获得许可的隐私保护图像上的超过 11 亿个蒙版,比任何现有数据集都大 400 倍。SAM 的出色表现源于这个广泛而多样化的数据集,与之前的数据集相比,它确保了各个地理区域的更好代表性。
在这里插入图片描述

揭开 SAM 2 的面纱:从图像到视频分割的飞跃

SAM 2 以 SAM 为基础,旨在实时、可提示地分割图像和视频中的对象。与仅专注于静态图像的 SAM 不同,SAM 2 通过将每一帧视为连续序列的一部分来处理视频。这使 SAM 2 能够更有效地处理动态场景和不断变化的内容。对于图像分割,SAM 2 不仅提高了 SAM 的功能,而且在交互式任务中的运行速度提高了三倍。

SAM 2 保留了与 SAM 相同的架构,但引入了用于视频处理的记忆机制。此功能允许 SAM 2 跟踪来自先前帧的信息,从而确保无论运动、光照或遮挡如何变化,都能实现一致的对象分割。通过参考过去的帧,SAM 2 可以在整个视频中完善其掩码预测。

该模型是在新开发的数据集上进行训练的, SA-V数据集,其中包括来自 600,000 个国家/地区的 51,000 个视频的 47 多个 masklet 注释。这个多样化的数据集涵盖了整个对象及其部分,提高了 SAM 2 在现实世界视频分割中的准确性。

SAM 2 是 Apache 2.0 许可下的开源模型,可用于各种用途。Meta 还根据 CC BY 2 许可共享了用于 SAM 4.0 的数据集。此外,还有一个 基于网络的演示 让用户探索模型并查看其性能。
在这里插入图片描述

潜在用例

SAM 2 在图像和视频的实时、可提示对象分割方面的能力已解锁了不同领域的众多创新应用。例如,其中一些应用如下:

  • 医疗保健诊断: SAM 2 可通过分割解剖结构和识别手术室实时视频中的异常情况,显著改善实时手术辅助。它还可在医学扫描中准确分割器官或肿瘤,从而增强医学成像分析。
  • 自动驾驶汽车: SAM 2 可通过在视频帧中连续分割和跟踪行人、车辆和路标来提高物体检测精度,从而增强自动驾驶汽车系统。其处理动态场景的能力还可通过实时识别和响应环境变化来支持自适应导航和防撞系统。
  • 互动媒体和娱乐: SAM 2 可通过实时精确分割对象来增强增强现实 (AR) 应用,使虚拟元素更容易与现实世界融合。它还可通过自动分割素材中的对象来简化视频编辑,从而简化背景移除和对象替换等流程。
  • 环境监测: SAM 2 可通过分割和监控视频片段中的动物来协助野生动物追踪,支持物种研究和栖息地研究。在灾难响应中,它可通过准确分割视频中受影响的区域和物体来评估损失并指导响应工作。
  • 零售和电子商务: SAM 2 可通过在图像和视频中对产品进行交互式细分来增强电子商务中的产品可视化。这可以让客户从各个角度和环境查看商品。对于库存管理,它可以帮助零售商实时跟踪和细分货架上的产品,从而简化盘点并改善整体库存控制。

克服 SAM 2 的局限性:实用解决方案和未来增强功能

虽然 SAM 2 在图像和短视频方面表现良好,但在实际使用中还是有一些局限性。在通过显著的视点变化、长时间遮挡或拥挤场景(尤其是在长视频中)跟踪物体时,它可能存在困难。通过交互式点击进行手动校正可以帮助解决这些问题。

在物体外观相似的拥挤环境中,SAM 2 偶尔会误识别目标,但后续帧中的额外提示可以解决此问题。尽管 SAM 2 可以分割多个物体,但由于它分别处理每个物体,因此效率会降低。未来的更新可能会受益于集成共享上下文信息来提高性能。

SAM 2 还可能错过快速移动物体的精细细节,并且预测在各个帧之间可能不稳定。不过,进一步的训练可以解决这一限制。虽然自动生成注释的功能已经得到改进,但人工注释者对于质量检查和帧选择仍然是必要的,进一步的自动化可以提高效率。

底线

SAM 2 在其前身奠定的基础之上,代表了实时图像和视频对象分割的重大飞跃。通过增强功能并将功能扩展到动态视频内容,SAM 2 有望改变从医疗保健和自动驾驶汽车到互动媒体和零售等各个领域。尽管仍存在挑战,特别是在处理复杂和拥挤的场景方面,但 SAM 2 的开源性质鼓励持续改进和适应。凭借其强大的性能和可访问性,SAM 2 有望推动创新并扩大计算机视觉及其他领域的可能性。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • matlab实现粒子群优化算法
  • AI学习记录 - 怎么理解 torch 的 nn.Conv2d
  • Godot《躲避小兵》实战之创建游戏主场景
  • 怎么写spring security的账号密码成功失败处理器并且加一个验证码过滤器
  • 错误提示:‘interface‘ declarations can only be used in TypeScript files
  • 解读FastAPI异步化为transformers模型打造高性能接口解析
  • 【在Linux世界中追寻伟大的One Piece】应用层协议HTTP
  • 关于Java中@Component的使用中出现@Autowired为NULL的问题
  • 模型 FIRE沟通法
  • 视频插帧—— RIFE 和 IFNet 的机制和应用
  • Code Practice Journal | Day53_Graph04
  • 力扣1442.形成两个异或相等数组的三元组数目
  • android studio 设置gradle jdk
  • 工业4G路由器
  • Android 消息机制Handler完全解析(一)
  • 2017-09-12 前端日报
  • Android开源项目规范总结
  • JDK 6和JDK 7中的substring()方法
  • JSDuck 与 AngularJS 融合技巧
  • js中的正则表达式入门
  • Logstash 参考指南(目录)
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • Vue学习第二天
  • 动态规划入门(以爬楼梯为例)
  • 分类模型——Logistics Regression
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 基于 Babel 的 npm 包最小化设置
  • 基于Android乐音识别(2)
  • 模型微调
  • 前端攻城师
  • 前嗅ForeSpider中数据浏览界面介绍
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​​​【收录 Hello 算法】9.4 小结
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • # 达梦数据库知识点
  • #QT(QCharts绘制曲线)
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (function(){})()的分步解析
  • (java)关于Thread的挂起和恢复
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (学习日记)2024.02.29:UCOSIII第二节
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转载)CentOS查看系统信息|CentOS查看命令
  • **CI中自动类加载的用法总结
  • .cn根服务器被攻击之后
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET 中的轻量级线程安全
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NetCore项目nginx发布
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)