官方 github 链接:https://github.com/huanglianghua/GlobalTrack

一、环境搭建

开发环境:

  • Ubuntu 18.04 LTS
  • ·python 3.8·
  • cuda 11.1
  • torch 1.8.1

Step1. 克隆到本地(或者下载源代码压缩包)

cd proj
git clone https://github.com/huanglianghua/GlobalTrack.git

Setp2. 为项目创建一个新的虚拟环境

注意:虽然作者提供了 environment.yml 配置文件(conda 部署管理工具,pip 对应的是 requirements.txt),以及怎么安装的教程,最好还是不要根据这个配置文件来创建环境,不然后面会出现各种奇奇怪怪的错误(主要是一些版本不匹配的问题)。原因:该配置文件中有的包是和服务器硬件有关的,比如说 cuda 版本,配置文件中默认的是 9.x,直接安装的话,如果硬件不匹配,就会默认下载 CPU 版本的 pytorch。而且使用这个配置文件来部署的话,如果中间有一个包没下载成功,后面的全都不会下载,而虚拟环境已经创建好了,需要先删除然后重新部署。

这里推荐使用最笨但也是最有效的方法,先创建一个最基础的环境,然后安装 pytorch,之后差什么包再安装就是,虽然整个过程比较麻烦,但是这样下来基本上是不会遇见其他错误的(和版本相关的错误很难通过控制台输出发现!)。

conda create -n GlobalTrack python=3.8

安装 PyTorch

# 注意这里不要把后面的下载源去掉,cudatoolkit 下载要使用到 conda-forge 这个镜像源,实际上还是使用的清华源的下载镜像
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge

缺少的包如下,

imageio
mmcv==0.4.3
numpy
opencv-python
opencv-python-headless
Pillow
scikit-image
scikit-learn
scipy
Shapely

写入 requirements.txt,执行 pip install -r requirements.txt 即可。

Step3. 编译 mmdetection

cd _submodules/mmdetection/

python setup.py develop  # 注意不能使用相对路径!

第一次出错:RuntimeError: Error compiling objects for extension

将项目中所有的 AT_CHECK --> TORCH_CHECK

参考链接:https://github.com/facebookresearch/maskrcnn-benchmark/issues/1236

再次编译前,记得删除之前的编译信息,

rm -rf build .eggs mmdet.egg-info

注意:如果使用的是 pytorch 1.8.1 & CUDA 11.1。 再次运行,编译不通过!经过多次实验测试,发现通过 conda install 安装的 pytorch 编译就会报错,而使用 pip install 安装的编译就能通过,具体是什么原因我也不清楚。

# 删除使用 conda install 安装的 pytorch
conda uninstall pytorch

# 使用 pip install 进行安装
pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

再次编译运行,一次通过!
在这里插入图片描述

二、运行测试

Test

python test_global_track.py

运行以上命令之前,先修改下:

if __name__ == "__main__":
    cfg_file = "configs/qg_rcnn_r50_fpn.py"
    # 记得下载下预训练模型放入这个路径!
    ckp_file = "checkpoints/qg_rcnn_r50_fpn_coco_got10k_lasot.pth"
    transforms = data.BasicPairTransforms(train=False)
    tracker = GlobalTrack(cfg_file, ckp_file, transforms, name_suffix="qg_rcnn_r50_fpn")
    evaluators = [
    	# 记得修改为自己的数据集所对应的路径
        # data.EvaluatorOTB(root_dir="/data/OTB50", version=2015),
        # data.EvaluatorLaSOT(root_dir="/data/LaSOT", frame_stride=10),
        # data.EvaluatorGOT10k(root_dir="/data/GOT-10k", subset="test"),
        data.EvaluatorTLP(root_dir="/data/TLP/TLP"),
        data.EvaluatorVOT(root_dir="/data/VOT2019", version=2019),  # VOT2020之后的 groundtruth 格式不对,会报错
    ]

ModuleNotFoundError: No module named ‘_init_paths’

按照官方提供的教程运行即可,只是需要注意一点的是,需要将 train testtools 移动到 ${GlobalTrack_ROOT} 目录下。

ImportError: cannot import name ‘get_dist_info’ from ‘mmcv.runner.utils’

File "/tmp/GlobalTrack/_submodules/mmdetection/mmdet/datasets/loader/sampler.py", line 6, in <module>
    from mmcv.runner.utils import get_dist_info
ImportError: cannot import name 'get_dist_info' from 'mmcv.runner.utils' (/anaconda3/envs/GlobalTrack/lib/python3.8/site-packages/mmcv/runner/utils.py)

定位到 _submodules/mmdetection/mmdet/datasets/loader/sampler.py 出错的地方,修改为:

# from mmcv.runner.utils import get_dist_info  # 将原来的注释
from mmcv.runner import get_dist_info
# from mmcv.runner.dist_utils import get_dist_info
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐