在win上安装最新的X-anylabeling以及sam2来帮助进行全自动追踪标注
1.介绍
项目链接:https://github.com/CVHub520/X-AnyLabeling/tree/main
项目介绍:
X-AnyLabeling是一个功能强大的标注工具,集成了一个人工智能引擎,用于快速和自动标注。它是为多模态数据工程师设计的,为复杂任务提供工业级解决方案。
2.安装
2.1 目标及软硬件背景
- 目标
我们这里需要标注的任务是Track Task,也就是追踪任务。这个任务要求对于连续的视频帧中的目标个体赋予ID身份编号。 - 系统:Win
- 硬件:NVIDIA独立显卡
官方提示:GPU Acceleration Limitations: Given the diversity of hardware and operating system environments, the current GPU inference acceleration service requires users to compile from source code as needed.
也就是说对GPU的支持不是很完善,很有可能导致GPU无法加速。所以接下来只介绍从源码安装的方式。
2.2 准备
第一步: 安装C++编译环境
首先要确保电脑安装了C++的编译库环境,在visual studio installer中选择安装【使用C++的桌面开发】确保选中了其中的【Windows sdk】和【mscv】
尽量不修改安装位置
安装完成后将MSCV工具的路径添加到系统变量中,默认路径应该是C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64
然后在prompt中可以通过
where cl
检查是否可以找到上面的路径
第二步: 安装CUDA驱动以及nvcc
有些同学可能之前没有自己安装过CUDA驱动,一般出厂自带的电脑会缺失nvcc,因此需要重新安装一遍。
下载合适的版本和方式,然后按照指引默认安装,这个可以调整安装路径如果你的C盘空间不太够的话,但是要注意的是它在安装过程中有两个地方需要调整位置,注意只把盘符C改为D就可以。
安装完成后,输入下面命令检查
nvcc --version
应该会有返回值
第三步: 安装miniconda,创建conda 并激活虚拟环境
从官方网站https://www.anaconda.com/download/success下载并安装Miniconda(虚拟环境管理工具,用于隔离不同应用的运行环境,防止不同应用依赖不同的包导致的包版本冲突)
按照指示安装完后,打开prompt,出现如下的界面:
然后进行创建环境
conda create --name x-anylabeling-sam2 python=3.11 -y
conda activate x-anylabeling-sam2
第一行代码指的是创建了一个名字叫做x-anylabeling的python版本为3.10的虚拟环境,第二个表示激活并进入,进入后前面括号中的内容就会变为(x-anylabeling)
Tips:下面的步骤都应该在x-anylabeling-sam2环境下进行。
第四步: 安装Pytorch
注意到我们安装的CUDA驱动的版本是12.9,这决定了你安装Pytorch的版本上限,我们可以安装12.x的版本如下图
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
安装完成后可以运行下面命令验证是否安装正确,返回值应该是True
python
import torch
torch.cuda.is_avaiable()
第五步: 最重要的一步编译sam2
这是最重要的一步,以上所有的准备步骤都是为了这步,否则即使你安装正确了,也会出现自动标注报错如下:
cannot import name '_C' from 'sam2' (/home/suw469/segment-anything-2/sam2/__init__.py) #131
接下来按照下面的步骤进行,
先来下载SAM2(用来实现自动标注的关键包),命令如下:
git clone https://github.com/CVHub520/segment-anything-2
cd segment-anything-2
然后编译
python setup.py buildext --inplace
注意看这步骤控制台的信息,确保没有error,编译成功,这个如果编译成功它会卡住比较久的时间,不用着急
编译完成就可以安装了
pip install -e .
2.3 安装X-anylabeling
下载x-anylabeling的源码,然后进入目录
cd ..
git clone https://github.com/CVHub520/X-AnyLabeling
cd X-AnyLabeling
安装onnx runtime,这个是用来运行onnx格式的模型的支持库:
pip install onnxruntime
pip install onnxruntime-gpu --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-11/pypi/simple/
安装其他依赖
pip install -r requirements-gpu.txt
完成必要的步骤后,使用以下命令生成资源:
pyrcc5 -o anylabeling/resources/resources.py anylabeling/resources/resources.qrc
设置有关环境变量
set PYTHONPATH=C:\path\to\X-AnyLabeling(注意这里的路径要换成你的实际路径)
此外还有一点注意的是, if you require GPU acceleration, you should set the preferred_device field to ‘GPU’ in the app_info.py configuration file. 就是要修改配置文件app_info.py中的一个参数,将CPU改为GPU
3. 启动X-anylabeling
现在你只需要在你的X-AnyLabeling路径下运行下面的命令即可启动
python anylabeling/app.py
下次启动,只需要三句:
cd C:\path\to\X-AnyLabeling # 到文件目录
conda activate x-anylabeling-sam2 # 激活虚拟环境
python anylabeling/app.py # 启动
4.使用教程
可以参考这个链接,作者写的已经比较清楚了
https://github.com/CVHub520/X-AnyLabeling/blob/main/examples/interactive_video_object_segmentation/README.md
5.结束语
总的来说,在ubuntu下安装会方便很多。欢迎提问!