支持图片和视频分割,SAM2最新分割一切大模型分享

2024-09-06 10:28

本文主要是介绍支持图片和视频分割,SAM2最新分割一切大模型分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Segment Anything Model 2(简称SAM 2)是由Meta(Facebook AI)开发的最新一代图像和视频分割模型。

SAM2能够实现对静态图像和动态视频中的对象进行实时、可提示的分割,将图像与视频分割功能整合到了同一个系统中。

SAM2的一个核心特点是其交互式分割过程,用户可以通过点击选择和细化目标对象,模型会根据这些提示自动将分割传播到视频的后续帧 。

此外,SAM2引入了流式记忆模块,这使得模型能够利用先前帧的信息来辅助当前帧的分割任务。

与第一代模型相比,SAM2在多个方面实现了显著的改进,包括支持视频分割、实时处理任意长视频、Zero-shot泛化、提高分割和追踪的准确性,以及解决遮挡问题等。

github项目地址:https://github.com/facebookresearch/segment-anything-2。

一、环境安装

1、python环境

建议安装python版本在3.10以上。

2、pip库安装

cd segment-anything-2

pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install -U ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple

3、模型下载

cd checkpoints && ./download_ckpts.sh

、功能测试

1、运行测试

(1)通过sam2接口进行图片分割测试

import numpy as np
import torch
from PIL import Image
import cv2
from sam2.build_sam import build_sam2
from sam2.automatic_mask_generator import SAM2AutomaticMaskGenerator
import time# Enable CUDA optimizations
if torch.cuda.is_available():torch.autocast(device_type="cuda", dtype=torch.float16).__enter__()if torch.cuda.get_device_properties(0).major >= 8:torch.backends.cuda.matmul.allow_tf32 = Truetorch.backends.cudnn.allow_tf32 = Truedef apply_color_mask(image, mask, color, color_dark=0.5):"""Apply colored mask to the image."""for c in range(3):image[:, :, c] = np.where(mask == 1, image[:, :, c] * (1 - color_dark) + color_dark * color[c], image[:, :, c])return imagedef main():sam2_checkpoint = "checkpoints/sam2_hiera_large.pt"model_cfg = "sam2_hiera_l.yaml"# Load imagetry:image = Image.open('image.jpg')except FileNotFoundError:print("Image file not found.")returnimage = np.array(image.convert("RGB"))# Load SAM2 Modelsam2 = build_sam2(model_cfg, sam2_checkpoint, device='cuda', apply_postprocessing=False)# Initialize mask generatormask_generator = SAM2AutomaticMaskGenerator(sam2)# Generate masksstart = time.time()masks = mask_generator.generate(image)print(f"sam2 infer: {time.time() - start:.3f}s")# Apply masks and save resultimage_select = image.copy()for mask_info in masks:color = tuple(np.random.randint(0, 256, 3).tolist())selected_mask = mask_info['segmentation']image_select = apply_color_mask(image_select, selected_mask, color)cv2.imwrite("result.jpg", image_select)print("Result saved to result.jpg")if __name__ == "__main__":main()

未完......

更多详细的欢迎关注:杰哥新技术

这篇关于支持图片和视频分割,SAM2最新分割一切大模型分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

Python利用PIL进行图片压缩

《Python利用PIL进行图片压缩》有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所以本文为大家介绍了Python中图片压缩的方法,需要的可以参考下... 有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所有可以对文件中的图

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

Java如何获取视频文件的视频时长

《Java如何获取视频文件的视频时长》文章介绍了如何使用Java获取视频文件的视频时长,包括导入maven依赖和代码案例,同时,也讨论了在运行过程中遇到的SLF4J加载问题,并给出了解决方案... 目录Java获取视频文件的视频时长1、导入maven依赖2、代码案例3、SLF4J: Failed to lo