实时图像和视频分割模型:Segment Anything 2

Segment Anything 2(SAM 2)是一个先进的实时图像和视频分割模型,能够精确地识别和分割图像及视频中的对象。

什么是Segment Anything 2

Segment Anything 2(简称SAM 2)是一个用于实时图像和视频分割的模型。与之前的版本相比,SAM 2不仅支持图像,还能够处理视频内容。SAM 2能够识别图像中特定对象的位置,并且有两种运行方式:自动遮罩生成器和点提示。自动遮罩生成器可以对图像或视频中的所有对象进行分割并生成相应的遮罩,而点提示则允许用户更具体地指定分割区域。

SAM 2数据集

SAM 2在Segment Anything Video数据集(SA-V)上进行了训练,该数据集包含了51,000个视频和643,000个分割遮罩。SA-V数据集采用CC 4.0许可,并且比现有的最大视频分割数据集拥有大约53倍的注释。这些数据集是通过人在循环中的方法进行标记的,SAM 2被用来通过人工标记者交互式地标记视频。然后使用这些标记的数据来改进底层的SAM 2模型。

SAM 2模型版本和性能

SAM 2提供了四种不同的模型版本:Tiny(149MB)、Small(176MB)、Base Plus(b+)(309MB)和Large(856MB)。使用的模型越大,结果的准确性就越高。然而,较大的模型运行时间会更长。SAM 2的速度和准确性会根据模型大小而变化,除了最大的模型外,其他所有模型都能实现实时(30+)FPS。

如何使用SAM 2进行图像分割

SAM 2作为一个GitHub仓库发布,可以从源代码安装它以用于计算机视觉项目。安装SAM 2的代码如下:

git clone https://github.com/facebookresearch/segment-anything-2 cd segment-anything-2 pip3 install -e .

安装过程可能需要几分钟时间。安装完SAM 2源代码后,需要下载一个模型检查点。有四个检查点可供下载:Tiny、Small、Base Plus(b+)和Large。可以通过运行以下代码来下载模型检查点:

cd checkpoints ./download_ckpts.sh

下载完模型检查点后,就可以运行推理了。使用自动遮罩生成器运行推理,它将为图像中的所有对象生成遮罩。以下是开始的代码:

import torch from sam2.build_sam import build_sam2 from sam2.automatic_mask_generator import SAM2AutomaticMaskGenerator from PIL import Image import numpy as np sam2_checkpoint = "checkpoints/sam2_hiera_large.pt" model_cfg = "sam2_hiera_l.yaml" sam2 = build_sam2(model_cfg, sam2_checkpoint, device='cuda', apply_postprocessing=False) mask_generator = SAM2AutomaticMaskGenerator(sam2) image = np.array(Image.open('image.jpeg').convert("RGB")) masks = mask_generator.generate(image)

以上代码将对图像运行推理并为图像中的每个对象生成遮罩。然后可以使用supervision库来可视化结果。

使用SAM 2与Grounding模型
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485