天天看点

DAT(NIPS 2018)视频目标跟踪源码运行笔记1. 论文基本信息2. 运行环境介绍3. 准备4. 配置5. 运行6. 可能出现的问题及解决方法

1. 论文基本信息

  • 论文标题:Deep Attentive Tracking via Reciprocative Learning
  • 论文作者:Shi Pu(Beijing University of Posts and Telecommunications)等人
  • 论文出处:NIPS 2018
  • 在线阅读:https://arxiv.org/pdf/1810.03851.pdf
  • 源码链接:https://github.com/shipubupt/NIPS2018

2. 运行环境介绍

  • NVIDIA GTX 1070
  • Ubuntu 16.04 x64
  • CUDA 8.0.61 for Ubuntu 16.04
  • cuDNN 5.1 for CUDA 8.0
  • Python 2.7
  • PyTorch 0.2.0

3. 准备

S1. 下载官方源代码并解压。

S2. 下载

imagenet-vgg-m.mat

文件,链接:http://www.vlfeat.org/matconvnet/models/imagenet-vgg-m.mat

S3. 在源码中的

DAT

目录下,创建一个文件夹

models

,将S2中下载的

imagenet-vgg-m.mat

文件移动到这个

models

文件夹中。

4. 配置

S1. 新建终端窗口,运行命令

sudo nvidia-settings

,输入密码后在弹出的NVIDIA窗口中查看并记下自己的显卡编号,如下图所示:

DAT(NIPS 2018)视频目标跟踪源码运行笔记1. 论文基本信息2. 运行环境介绍3. 准备4. 配置5. 运行6. 可能出现的问题及解决方法

S2. 打开源码

DAT/tracking

目录中的

run_tracker.py

文件,修改第5行代码,将右边的数字改为上述查看的显卡编号,如下图所示:

DAT(NIPS 2018)视频目标跟踪源码运行笔记1. 论文基本信息2. 运行环境介绍3. 准备4. 配置5. 运行6. 可能出现的问题及解决方法

S3. 打开源码

DAT/tracking

目录中的

demo.py

文件,修改第15行,将其更改为自己Python 2.7的Python命令文件,如下所示:

os.system("/home/dodge/anaconda3/envs/py27_for_pytorch020/bin/python2 run_tracker.py -s "+name)
           

注: 前面的Python路径要结合自己实际情况来配置。

S4. 打开源码

DAT/tracking

目录中的

run_tracker.py

文件,修改第511行代码,将

args.display

的值修改为

True

,这样可以在跟踪过程中显示图像。

5. 运行

进入到源码的

DAT/tracking

目录中,在终端中运行如下命令即可运行DAT跟踪算法(请确保当前的Python版本为2.7):

python demo.py
           

大约等待几分钟,算法会开始跟踪,默认跟踪的是源码自带的视频football,如下图所示(绿色矩形框表示ground-truth,红色矩形框表示算法result):

DAT(NIPS 2018)视频目标跟踪源码运行笔记1. 论文基本信息2. 运行环境介绍3. 准备4. 配置5. 运行6. 可能出现的问题及解决方法

6. 可能出现的问题及解决方法

问题 1: 找不到scipy模块,

ImportError: No module named 'scipy'

解决: 在自己的Python 2.7环境中安装scipy库,可以用命令

conda install scipy

进行安装。

问题 2: 找不到PIL模块,

ImportError: No module named 'PIL'

解决: 在自己的Python 2.7环境中安装Pillow库,可以用命令

pip install Pillow

进行安装。

问题 3: 找不到matplotlib模块,

ImportError: No module named matplotlib

解决: 在自己的Python 2.7环境中安装matplotlib库,可以用命令

conda install matplotlib

进行安装。

问题 4: 找不到sklearn模块,

ImportError: No module named sklearn.linear_model

解决: 在自己的Python 2.7环境中安装scikit-learn库,可以用命令

conda install scikit-learn

进行安装。

问题 5: 运行时进行了显示配置,但跟踪时没有图像显示。

解决: 代码默认会将跟踪结果图像保存为图片文件存储在源码的

result_fig_labgpu_test

目录中,如果能够接受运行完查看截图的方式,也可以不修复此问题。若希望修复,请继续阅读下面的内容。

matplotlib不显示画面的问题容易出现在虚拟Python环境中,首先确认自己的Python 2.7环境是不是设置为agg类型的后端,逐行运行如下代码进行查看:

Python
import matplotlib
matplotlib.get_backend()
           

若为形如agg类型的后端,则需要将其改为TkAgg类型的后端,方法如下:

S1. 在自己的Python 2.7环境中,首先卸载已经安装的matplotlib库,可以用命令

conda uninstall matplotlib

来卸载。

S2. 新建终端窗口,运行命令

sudo apt-get install tcl-dev tk-dev python-tk

安装Tk GUI。

S3. 在自己的Python 2.7环境中,重新安装matplotlib库,可以用命令

conda install matplotlib

进行安装。

S4. 打开源码

DAT/tracking

目录中的

run_tracker.py

文件,修改第14行代码,将里面默认的

Agg

修改为

TkAgg

,修改后的代码如下所示:

matplotlib.use('TkAgg')
           

S5. 重新运行跟踪源码即可。