RT-MDNet视频目标跟踪源码运行笔记——Testing模式

1. 论文基本信息

  • 论文标题:Real-Time MDNet
  • 论文作者:Ilchae Jung(Dept. of CSE, POSTECH, Korea)等人
  • 论文出处:ECCV 2018
  • 在线阅读:http://openaccess.thecvf.com/content_ECCV_2018/papers/Ilchae_Jung_Real-Time_MDNet_ECCV_2018_paper.pdf
  • 源码链接:https://github.com/IlchaeJung/RT-MDNet

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.3.1

3. 准备

S1. 准备好CUDA、cuDNN、Python和PyTorch,此处不再赘述,如有需要可以参考以下笔记:

  • Ubuntu 16.04 x64安装CUDA 8.0和cuDNN 5.1笔记
  • Ubuntu 16.04 x64安装Anaconda和PyTorch 0.2.0笔记(with GPU)

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文件夹中(如果没有该文件夹就创建一个),如下图所示:

RT-MDNet视频目标跟踪源码运行笔记——Testing模式_第1张图片

S6. 在源码目录中创建一个dataset文件夹,用于存放视频数据集。


4. 下载OTB100数据集

S1. 在这里下载OTB100训练数据集:http://cvlab.hanyang.ac.kr/tracker_benchmark/datasets.html 一共有100个视频序列(实际的视频是98个,因为有两个视频各自有两个ground-truth),每个视频独立下载。

S2. 选择一个自己感兴趣的视频(e.g, Bolt),把对应的文件夹复制到源码的dataset/OTB目录下(如果没有这样的目录就自己创建),复制后如下图所示:
RT-MDNet视频目标跟踪源码运行笔记——Testing模式_第2张图片


5. 运行

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):
RT-MDNet视频目标跟踪源码运行笔记——Testing模式_第3张图片


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

问题 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')

增加代码后的tracker.py文件如下图所示:
RT-MDNet视频目标跟踪源码运行笔记——Testing模式_第4张图片

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

你可能感兴趣的:(视频目标跟踪(Visual,tracking),论文笔记,深度学习(Deep,learning),Python,PyTorch,数字图像处理,模式识别与深度学习)