Segment-and-Track Anything配置以及使用说明

shuaigehj 2024-09-15 14:31:01 阅读 69

Segment-and-Track Anything

一:简介

是浙江大学开源的SAM-Track项目,解锁了SAM视频分割的能力,即分割并跟踪一切(Segment-and-track anything,SAM-track)。专注于利用自动和交互式方法对视频中的任何对象进行分割和跟踪。主要算法包括SAM(Segment Anything Model)用于自动/交互式关键帧分割,以及DeAOT(Decoupling features in Associating Objects with Transformers)(NeurIPS2022)用于高效的多目标跟踪和传播。SAM-Track 管道实现了 SAM 的动态自动检测和分割新物体,而 DeAOT 负责跟踪所有识别到的物体。

视频分割展示:

最终生成分割视频,mask图,masked_frame图。

二:项目部署以及环境配置

1.项目地址:https://github.com/z-x-yang/Segment-and-Track-Anything

2.环境配置:

因为需要使用conda创建虚拟环境,因此需要安装anaconda(已安装可跳过):Anaconda安装+PyCharm安装和基本使用,Python编程环境安装_哔哩哔哩_bilibili

3.项目搭建:

A:

在D盘根目录创建一个文件随便命名(最好不要用中文)比如我创建的文件名为LSJ

然后我们可以把项目下载下来(以下两种任选其一即可)

1).(没有下载git的方法)点击上面的项目地址

下载完成之后把他拖到我们刚刚创建好的文件里

下载好的文件名是​Segment-and-Track Anything-main

我们把-main删去得到文件名​Segment-and-Track Anything,如下

2).git版

安装git git的安装与配置教程-超详细版_git安装及配置教程-CSDN博客

打开终端(搜索框输入a,打开anaconda Powershell Prompt)

打开后输入以下命令进入项目文件(第二行根据自己的文件名)

<code>cd D:

cd D:\LSJ

git clone https://github.com/z-x-yang/Segment-and-Track-Anything.git

B:

打开终端(搜索框输入a,打开anaconda Powershell Prompt)

创建并激活一个虚拟环境:

conda create -n sta python==3.10

conda activate sta

激活进入环境(上面的sta是环境名,下面的hj_project也是,hj_project我已经创建好了所以不用创建)

输入以下命令,gradio可以先不限制版本(现在已经4点几了),如果后面有相关报错可以降低版本如3.46.1。

<code>cd Segment-and-Track Anything

pip install gradio==3.46.1

pip install scikit-image

安装pytorch:

现在电脑上下cuda,并配置环境(两个教程都可以看看)

CUDA安装教程(超详细)-CSDN博客

Windows系统CUDA和cuDNN安装教程_哔哩哔哩_bilibili

完成后输入以下命令

conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.8 -c pytorch -c nvidia

我的电脑是GPU是RTX3060,配置比这个高应该都可以

接着安装项目的依赖

conda install m2-base

bash script/install.sh

 安装GroundingDINO

https://github.com/IDEA-Research/GroundingDINO.git

可以直接在Segment-and-Track Anything目录下用git(容易出问题),或者手动下载下来,拖到Segment-and-Track Anything目录,然后删去文件名的-main。

下载所需模型:

bash script/download_ckpt.sh

不成功的话进入github的项目里面手动下载然后后拖到ckpt里面即可。

最后可以运行我们项目了(当然在pycharm运行也可以):

python app.py

会跳出一个链接,打开即可

三:使用说明 

界面:

拖动视频到该区域

以下操作均是以第一帧为基础的操作

1.点击segment everything for first frame来自动分割所有事物。

2.点击图像positive选中为需要mask的,negative选中为不要mask的,点击图片对应的部位即可。

3.是画笔功能,可以圈住对应区域。

4.输入需要mask的名称,比如人就是human ,会自动生成

5.音频功能

以上操作任选,看具体效果,最后点击6.start tracking,即可开始生成,右边可以看到效果,但是我的电脑估计不太行,就不展示了。

不管最终右边有无效果展示,最终都会在项目生成一个名为tracking-results的文件夹,里面就会包含生成的图片以及视频。

四:外附工具

由于Segment-and-Track Anything是在第一帧处理图像,在使用时会出现视频前段时间效果良好,后一段效果不太好的情况,这里介绍一个将视频均分的工具ffmpeg

安装教程:ffmpeg的安装教程_ffmpeg安装-CSDN博客

安装完成后输入以下命令

<code>ffmpeg -i input.mp4 -ss 00:00:01 -c copy -map 0 -f segment -segment_time 3 -reset_timestamps 1 output%03d.mp4

会将视频均分:

input.mp4:视频名

00:00:01从第一秒开始(一般是从0秒开始)

3:每个视频分成3秒

output%03d.mp4:生成的文件名

五:结尾

第一次写,有什么不足请指正,谢谢!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。