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

2024-08-22 09:20

本文主要是介绍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 有望推动创新并扩大计算机视觉及其他领域的可能性。

这篇关于SAM 2——视频和图像实时实例分割的全新开源模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1095866

相关文章

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

SQL表间关联查询实例详解

《SQL表间关联查询实例详解》本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(leftjoin)、右连接(rightjoin)、全连接(fulljoin)、内连接(innerjoin)、... 目录简介样例准备左外连接右外连接全外连接内连接交叉连接自然连接简介本文主要讲解SQL语句中常用的表

Python如何将大TXT文件分割成4KB小文件

《Python如何将大TXT文件分割成4KB小文件》处理大文本文件是程序员经常遇到的挑战,特别是当我们需要把一个几百MB甚至几个GB的TXT文件分割成小块时,下面我们来聊聊如何用Python自动完成这... 目录为什么需要分割TXT文件基础版:按行分割进阶版:精确控制文件大小完美解决方案:支持UTF-8编码

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优