S1. 准备好CUDA、cuDNN、Python和PyTorch,此处不再赘述,如有需要可以参考以下笔记:
S2. 安装cffi,可以用如下命令进行安装:
pip install cffi
S3. 下载源码并解压,地址:https://github.com/IlchaeJung/RT-MDNet
S4. 下载网络文件rt-mdnet.pth
,地址:https://www.dropbox.com/s/lr8uft05zlo21an/rt-mdnet.pth?dl=0 。如果无法访问Dropbox也可以到这里下载:https://download.csdn.net/download/discoverer100/11009050 。
S5. 将上述下载的网络文件存放到源码的models
文件夹中(如果没有该文件夹就创建一个),如下图所示:
S6. 在源码目录中创建一个dataset
文件夹,用于存放视频数据集。
S1. 在这里下载OTB100训练数据集:http://cvlab.hanyang.ac.kr/tracker_benchmark/datasets.html 一共有100个视频序列(实际的视频是98个,因为有两个视频各自有两个ground-truth),每个视频独立下载。
S2. 选择一个自己感兴趣的视频(e.g, Bolt),把对应的文件夹复制到源码的dataset/OTB
目录下(如果没有这样的目录就自己创建),复制后如下图所示:
S1. 打开源码目录下的Run.py
文件,修改第100行的dateset路径为如下形式(注意: 1) 路径要结合实际情况赋值;2) 末尾要带一个正斜杠):
dataset_path = '/home/dodge/Dev/Python2/RT-MDNet-master/dataset/'
S2. 在终端中,cd到源码的目录,然后运行如下命令:
python Run.py -visualize
此时算法会跟踪源码中dataset/OTB
文件夹中放置的视频,其运行效果如下图所示(绿色矩形框表示ground-truth,红色矩形框表示算法result):
问题 1: 源码的Run.py
文件第36行进行numpy的loadtxt
函数调用报错,形如ValueError: invalid literal for float(): 118,69,114,162
。
解决: 该错误的原因是:有的视频ground-truth文件中的每一行是用逗号进行分隔的,而函数的默认分隔符为空格所致。解决方法之一是用代码编辑器打开ground-truth文本文件,将里面的逗号批量换成空格即可。
问题 2: 找不到numpy模块,ImportError: No module named numpy
。
解决: 在自己的Python 2.7环境中安装numpy库,可以用命令conda install numpy
进行安装。
问题 3: 找不到PIL模块,ImportError: No module named PIL
。
解决: 在自己的Python 2.7环境中安装Pillow库,可以用命令pip install Pillow
进行安装。
问题 4: 找不到matplotlib模块,ImportError: No module named matplotlib.pyplot
。
解决: 在自己的Python 2.7环境中安装matplotlib库,可以用命令conda install matplotlib
进行安装。
问题 5: 找不到scipy模块,ImportError: No module named 'scipy'
。
解决: 在自己的Python 2.7环境中安装scipy库,可以用命令conda install scipy
进行安装。
问题 6: 找不到sklearn模块,ImportError: No module named sklearn.linear_model
。
解决: 在自己的Python 2.7环境中安装scikit-learn库,可以用命令conda install scikit-learn
进行安装。
问题 7: 算法运行时报错直接退出,错误信息如下:
Fontconfig warning: FcPattern object weight does not accept value [50 200)
Segmentation fault (core dumped)
解决: matplotlib不显示画面或者发生error的问题容易出现在虚拟Python环境中。如果遇到了此问题,请首先确认自己的Python 2.7环境是不是设置为agg类型的后端,逐行运行如下代码进行查看:
Python
import matplotlib
matplotlib.get_backend()
若为形如agg类型的后端,则需要将其改为TkAgg类型的后端,方法如下:
S1. 在自己的Python 2.7环境中,首先卸载已经安装的matplotlib库,可以用命令conda uninstall matplotlib
来卸载。
S2. 新建终端窗口(系统终端,非python虚拟环境下的终端),运行命令sudo apt-get install tcl-dev tk-dev python-tk
安装Tk GUI。
S3. 在自己的Python 2.7环境中,重新安装matplotlib库,可以用命令conda install matplotlib
进行安装。
S4. 打开源码目录中的tracker.py
文件,在第5行代码后面增加如下两行代码:
import matplotlib
matplotlib.use('TkAgg')
S5. 重新运行跟踪源码即可。