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