在PyCharm上运行FairMOT(win10)

效果图(github项目原图)

有新问题会及时写上(有任何该项目部署的问题可以私信我或者在评论区交流)

1. 下载FairMOT源码

FairMOT从出现开始,在多目标跟踪的多项竞赛都拿到了"State of the Art",如下表

Dataset	MOTA	IDF1	IDS	MT	ML	FPS
2DMOT15	60.6	64.7	591	47.6%	11.0%	30.5
MOT16	74.9	72.8	1074	44.7%	15.9%	25.9
MOT17	73.7	72.3	3303	43.2%	17.3%	25.9
MOT20	61.8	67.3	5243	68.8%	7.6%	13.2

作者的开发环境是ubuntu,如果想要在windows上运行该项目,会有些坑(对于我这种初学者就是折磨),因此记录一下环境搭建的过程。

github地址_FairMOT_

使用命令下载:

git clone https://github.com/ifzhang/FairMOT.githttps://github.com/ifzhang/FairMOT.git

或者直接自己下载压缩文件解压到你的工作目录中

2. 环境搭建(作为菜鸟最艰辛的路程)

Anaconda安装

Anaconda的安装请参考其他教程。

创建虚拟环境

注意你的Anaconda对应的Python版本,我的对应的python版本是3.8.5

2020年12月3日的FairMOT最新版本中, python 3.7 和 pytorch >= 1.2.0。

为了保持和项目作者一样的环境(减少意料之外的错误), 先创建虚拟环境,然后切换到虚拟环境

conda create -n FairMOT
conda activate FairMOT

安装 pytorch

这里一定要注意区分几个概念

cuda 与 cudatoolkit

在windows环境下,如果你有一块独立显卡(目前只要是台式机基本都会有),那么你肯定需要安装你的独立显卡对应的显卡驱动版本

比如我的显卡是 GeForce GTX 1660 Super, 我的显卡驱动程序版本是 457.30

这个安装的 CUDA Toolkit 是Nvidia官方提供的,它的版本需求并不是我们安装PyTorch时候的需求

Nvidia 官方提供安装的 CUDA Toolkit 包含了进行 CUDA 相关程序开发的编译、调试等过程相关的所有组件。

但对于 Pytorch 之类的深度学习框架而言,其在大多数需要使用 GPU 的情况中只需要使用 CUDA 的动态链接库支持程序的运行( Pytorch 本身与 CUDA 相关的部分是提前编译好的 )

就像常见的可执行程序一样,不需要重新进行编译过程,只需要其所依赖的动态链接库存在即可正常运行。

故而,Anaconda 在安装 Pytorch 等会使用到 CUDA 的框架时,会自动为用户安装 cudatoolkit,其主要包含应用程序在使用 CUDA 相关的功能时所依赖的动态链接库。

在安装了 cudatoolkit 后,只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,而不需要安装完整的 Nvidia 官方提供的 CUDA Toolkit .

一般情况下Nvidia官方提供的cuda版本大于你PyTorch所需的cudatoolkit版本即可!

安装

根据FairMOT项目的环境安装PyTorch,要求 python 3.7 and pytorch >= 1.2.0

conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch

国内的朋友可能会遇到下载速度慢的情况,设置conda源,我用的是清华源

添加源并设置超时时间(网络不好的情况很容易超时安装失败)

conda config --add http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --set show_channel_urls yes
conda config --set remote_connect_timeout_secs 1000

3. 安装环境依赖

cd ${FAIRMOT_ROOT}
pip install -r requirements.txt

在windows下这个命令一次是绝对无法完成的,除非你之前就搭建过类似的环境。

我出现的错误有如下几个

'cl.exe' not found

首先确保你安装了C++编译工具,我直接安装了VS2019社区版。一定要选择上C++编译工具。

在你的系统添加环境变量,我的安装位置如下

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\bin\Hostx64\x64\cl.exe

因此在Path下添加

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\bin\Hostx64\x64

之后确保你的Anaconda有权限执行你的windows系统环境的命令

一开始我的 Anaconda base环境(必须是管理员模式)是可以执行cl.exe的,但是新创建的FairMOT环境无法执行

我的解决办法是base环境下进入到所在文件夹,然后切换到我们创建的新环境,再执行,就能在虚拟环境使用cl.exe

(可能是我的系统环境变量只在当前用户添加了的原因)

DCNv2在windows上编译

将下载的DCNv2放在如下路径(对应修改自己的)

E:\FairMOT\src\lib\models\networks\DCNv2

进入到上面的路径执行如下口令编译即可

python setup.py build develop

DCNv2 的 testcpu.py 和 testcuda.py

cpu上测试得到报错

是因为DCNv2使用的是双精度浮点数,需要修改对应文件即可。

Windows下必须安装cudatoolkit才可以使用在运行时调用gpu

在windows下安装cython-bbox

报错如下:

cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”

下载对应的cython-bbox压缩包,解压到你的环境目录(任意),然后在你的环境中切换到解压缩目录,修改如下一行,然后再执行安装即可。

posted @ 2020-12-03 15:54  赝·goodfellow  阅读(2115)  评论(2编辑  收藏  举报