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)
打开后输入以下命令进入项目文件(第二行根据自己的文件名)
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。
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博客
安装完成后输入以下命令
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:生成的文件名
五:结尾
第一次写,有什么不足请指正,谢谢!
版权归原作者 shuaigehj 所有, 如有侵权,请联系我们删除。