效果圖(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上運行該項目,會有些坑(對於我這種初學者就是折磨),因此記錄一下環境搭建的過程。
使用命令下載:
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壓縮包,解壓到你的環境目錄(任意),然后在你的環境中切換到解壓縮目錄,修改如下一行,然后再執行安裝即可。

