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窗口中查看并记下自己的显卡编号,如下图所示:

S2. 打开源码
DAT/tracking
目录中的
run_tracker.py
文件,修改第5行代码,将右边的数字改为上述查看的显卡编号,如下图所示:
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):
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. 重新运行跟踪源码即可。