GlobalTrack 复现
一、安装记录官方 github 链接:https://github.com/huanglianghua/GlobalTrack1. 环境搭建开发环境:Ubuntu 18.04 LTS·python 3.8·cuda 11.1torch 1.8.1Step1. 克隆到本地(或者下载源代码压缩包)cd projgit clone https://github.com/huanglianghua/Glo
官方
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 test
从 tools
移动到 ${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
更多推荐
所有评论(0)