天天看點

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. 重新運作跟蹤源碼即可。