第一次尝试复现项目,踩了很多坑,以此博客记录自己的磕磕绊绊,也希望能给后人带来帮助。
一、配置总览:
设备:dell G15 5515
显卡:RTX 3060 Laptop GPU
运行环境:Anaconda+Visual Studio Code
其他:Python 3.8.20+pytorch 1.11+cuda 11.3+cudnn 8.4.1+Visual Studio 2019
二、环境准备
1.下载Visual Studio 2019
本人原先已经下载了vs2022,但是下载cuda时仍然报错
老实了,只能重新下个vs2019
下载网址:VS 2019 Com: 编辑 网页链接
选择C++桌面开发即可
2.下载CUDA和CUDnn
打开cmd,输入nvidia-smi,执行,
箭头所指处是你的显卡可支持的最高版本CUDA
cuda版本和pytorch版本是否适配会决定你能否成功复现,我在搭建环境时尝试了好多错误配置,吃尽苦头
cuda、pytorch对应关系:01 Pytorch和CUDA对应的版本及Pytorch和Python对应的版本及Python与Anaconda的对应关系_pytorch和cuda对应版本-CSDN博客
CUDA下载链接:CUDA Toolkit Archive | NVIDIA Developer
如果还是拿不准下载哪个版本的话,可以参考这里,有的前辈分享了成功案例:https://github.com/lucasjinreal/DCNv2_latest/issues
选择适合自己的版本和配置,点击download即可下载
下载过程中CUDA会进行系统环境的检查,如上所说,我出现了这个报错,
如果你和我一样下载了两个版本的vs,你可以打开Visual Studio Installer,卸载你以前安装的那个版本
此时回到CUDA安装界面,点击后退,再点击下一步,重新检查是否满足安装条件
没问题的话,耐心等待安装即可,同时可以开始下载cudnn
cudnn下载链接:cuDNN Archive | NVIDIA Developer
尽量选择8.x-1.x版本,据说比较稳定,我使用的版本是8.4.1
按照自己的cuda的版本来选择
下载好cuda和cudnn之后,将cudnn整个文件夹拖进cuda的安装路径下,一般在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3
打开cmd,使用几句命令测试是否安装成功:
nvcc -V
cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\extras\demo_suite
.\bandwidthTest.exe
.\deviceQuery.exe
正确显示即为下载完成
系统变量会自动添加
3.下载pytorch
首先需要一个配置好了的anaconda,打开cmd,创建一个虚拟环境,就叫做FairMOT吧
conda create -n FairMOT python=3.8
conda activate FairMOT
选择适合自己的pytorch版本,版本参考可见 2.下载CUDA和cudnn
这里也提供一个我的版本:Python 3.8.20+pytorch 1.11+cuda 11.3+cudnn 8.4.1
我使用的下载命令是:
pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113
pytorch下载链接:Previous PyTorch Versions | PyTorch
下载完毕后测试是否下载成功:
python
import torch
torch.cuda.is_available()
输出TRUE即为安装完毕
三、复现代码
1.下载源码
使用vscode打开文件夹
在终端激活刚刚创建的虚拟环境FairMOT
conda activate FairMOT
按照readme的流程执行
cd ${FAIRMOT_ROOT}
pip install cython
pip install -r requirements.txt
2.下载DCNv2
git clone -b pytorch_1.7 https://github.com/ifzhang/DCNv2.git
cd DCNv2
./make.sh
这步有报错的话一般都是cuda和pytorch版本不匹配导致的
3.下载ffmpeg
下载链接:FFmpeg
下载完成之后将.exe文件放进源码的src文件夹中
4.下载模型
1.DLA-34 COCO
官方提供的下载链接失效了,此处提供另一个下载路径:ctdet_coco_dla_2x.pth - Google Drive
2.hrnetv2_w18_imagenet_pretrained.pth
3.hrnetv2_w32_imagenet_pretrained.pth
4.fairmot_dla34.pth
这三个点击官方提供链接即可下载
下载之后按照readme所示放进models文件夹中
5.运行demo
cd src
python demo.py mot --load_model ../models/fairmot_dla34.pth --conf_thres 0.4
这一步会尝试从http://dl.yf.io/dla/models\imagenet\dla34-ba72cf86.pth下载一个模型到你的checkpoints文件夹中
但是服务器貌似很不稳定,我在这一步出现过HTTP Error 502、404、WinError2报错,折腾半天在网上都找不到资源🙁(还好一天之后服务器又恢复了 终于下载成功)
如果有人也遇到这个问题,我在此处提供dla34-ba72cf86.pth的下载链接:https://drive.google.com/file/d/1v9_prGO0ayY3clcAl2MbSDl_RMWKfzrs/view?usp=sharing
下载之后请你手动将模型拖进C:\Users\你的用户名\.cache\torch\hub\checkpoints文件夹中,然后再次运行demo
不出意外的话,应该没有问题了
最后会生成一个result.txt文件和视频在demos文件夹中
到此,简单的复现成功
四、遇到的问题
1.运行demo.py时报错AttributeError: module 'numpy' has no attribute 'float'. `np.float` was a deprecated alias for the builtin `float`. To avoid this error in existing code, use `float` by itself.
手动将所有np.float改成float即可