學習 PySOT(2)(PySOT-toolkit、對比、畫圖)

張小波發表於2020-12-09


前言

pysot-toolkit是基於PySOT的工具,此儲存庫的目的是提供當前單個物件跟蹤資料集的評估API,包括:

VOT2016
 VOT2018
 VOT2018-LT
 OTB100(OTB2015)
 UAV123
 NFS
 LaSOT
 TrackingNet (Evaluation on Server)
 GOT-10k (Evaluation on Server)

關於PySOT的配置和使用,請參考:學習 PySOT(1)(介紹、配置、使用),下面的操作都是在PySOT的基礎上做的。

一、pysot-toolkit準備工作

1.所需環境要求

 tqdm
numpy
glob
opencv-python
colorama
numba

對應的安裝命令:(在Anaconda Prompt 命令視窗下)

pip install tqdm
conda install numpy
pip install glob2 
pip install opencv-python
pip install colorama
pip3 install --user numba

建議安裝完,重啟一下電腦。

2.檔案配置

第一步,配置資料集,以OTB100為例。
參考官方pysot-toolkit

  1. 將CVRP13.json,OTB100.json,OTB50.json放在OTB100資料集目錄中(您需要將Jogging複製到Jogging-1和Jogging-2,並將Skating2複製到Skating2-1和Skating2-2或使用軟連結)
    注:Jogging和Skating2都是兩個目標,在OTB Benchmark
    學習(下載連結、評價指標、配置)
    中有專門說明。
    目錄應採用以下格式:
 | -- OTB100/

​ | -- Basketball

​ | ......

​ | -- Woman

​ | -- OTB100.json

​ | -- OTB50.json

​ | -- CVPR13.json 

在這裡插入圖片描述
2. 如1一樣,將所有其他json放入資料集目錄中。

為什麼將Jogging複製到Jogging-1和Jogging-2 ?
在這裡插入圖片描述其實,開啟OTB100.json檔案可以看到有Jogging-1和Jogging-2兩個目錄,但是實際的OTB100資料集中Jogging和Skating2有兩個groundtruth_rect.txt,所以需要上述操作。

在VOT2016和VOT2018資料集也需要類似的操作,將VOT2016.json和VOT2018.json檔案開啟後,分別對照資料集看看,需要複製資料夾的複製,需要改名的直接改名即可。

第二步,配置演算法執行結果,以OTB100資料集為例。

OTB100的txt跟蹤結果,百度雲,提取碼:t713

解壓配置,路徑:
在這裡插入圖片描述

3.執行配置(對比演算法)

執行,該配置前,我們先看看官方要求。

git clone https://github.com/StrangerZhang/pysot-toolkit
pip install -r requirements.txt
cd pysot/utils/
python setup.py build_ext --inplace
# if you need to draw graph, you need latex installed on your system

1.git clone https://github.com/StrangerZhang/pysot-toolkit
下載pysot-toolkit,已完成。
2.pip install -r requirements.txt
安裝包,已完成。
3.cd pysot/utils/
python setup.py build_ext --inplace
執行setup.py,生成build。
4.# if you need to draw graph, you need latex installed on your system
#如果需要繪製圖形,則需要在系統上安裝latex
這一步,我們先不安裝latex ,後續再安裝。安裝比較麻煩。這也影響畫圖。

第一步,執行setup.py,生成build資料夾

可以直接在pycharm環境下setup.py執行。
執行的配置如下:
在這裡插入圖片描述

注意,工作目錄。

執行完,結果:

在這裡插入圖片描述第二步,配置eval.py引數

我們先看看,官方要求:以OTB100為例

cd /path/to/pysot-toolkit
python bin/eval.py \
	--dataset_dir /path/to/dataset/root \		# dataset path
	--dataset OTB100 \				# dataset name(OTB100, UAV123, NFS, LaSOT)
	--tracker_result_dir /path/to/tracker/dir \	# tracker dir
	--trackers SiamRPN++ C-COT DaSiamRPN ECO  \	# tracker names 
	--num 4 \				  	# evaluation thread
	--show_video_level \ 	  			# wether to show video results
	--vis 					  	# draw graph

其中:
–dataset_dir /path/to/dataset/root
為資料集的路徑。
–tracker_result_dir /path/to/tracker/dir
為演算法測試結果路徑
–num 4
評估執行緒
–show_video_level
顯示視訊結果的方式
–vis
繪製圖形,注意,這個是畫圖的,沒安裝latex ,一定要去掉。不然會出現:

RuntimeError: Failed to process string with tex because latex could not be found

根據實際情況,開啟選單欄Run(執行)–>Edit configurations(編輯配置)

在這裡插入圖片描述

在引數中,新增程式碼:

--dataset_dir
../pysot/datasets/OTB100
--dataset
OTB100
--tracker_result_dir
../results/OTB100
--trackers
SiamRPN
DaSiamRPN
SiamFC
--num
3
--show_video_level

點選OK(確定),執行eval.py

在這裡插入圖片描述
如何加上–vis ,執行結果呢?
在這裡插入圖片描述

二、安裝latex軟體(win10系統)

一開始,在網上尋找使用conda或者pip安裝latex包都沒有用,不清楚為什麼,後續查詢需要額外安裝軟體 (win10系統)。
找了好久,在,RuntimeError: Failed to process string with tex because latex could not be found,網址,有相關介紹。
Ubuntu安裝,建議參考,其他人的部落格,安裝方式類似,配置環境略有不同。

1.安裝MiKTeX

官網下載地址:https://miktex.org/download
在這裡插入圖片描述一步一步點選安裝即可。

2.安裝TexMaker

官網下載地址:https://www.xm1math.net/texmaker/download.html
在這裡插入圖片描述一步一步點選安裝即可。安裝後,需要配置TexMaker軟體。
下載TexMaker軟體很慢,還容易失敗,我自己都下載了一晚上。
附上百度雲連結吧。
百度雲,提取碼:n84c

3.配置TexMaker

選項——>配置TexMaker
在這裡插入圖片描述

配置命令:
在這裡插入圖片描述
配置編輯器
在這裡插入圖片描述

4.配置MiKTeX

需要配置MiKTeX,如不配置,執行可能出現如下錯誤:出現後,手動點選Install,也能解決問題,就是太慢了。
在這裡插入圖片描述

第一步,開啟MiKTeX,如下圖選擇
在這裡插入圖片描述

第二步,手動安裝軟體包。單擊Settings以導航到設定頁面,單擊General選項卡,選擇change:

在這裡插入圖片描述

如下圖選擇:

在這裡插入圖片描述
如下圖選擇:
在這裡插入圖片描述

第三步,更新MiKTeX安裝包:

單擊Updates以導航到更新頁面,單擊Check for Updates以搜尋可更新的程式包。如下圖所示:
在這裡插入圖片描述

幾秒鐘後,您將看到一個類似於以下的視窗,單擊Update now以開始安裝更新。
在這裡插入圖片描述

在這裡插入圖片描述

配置完,必須重啟電腦

三、執行eval.py畫圖

1. 修改eval.py引數,執行

根據實際情況,開啟選單欄Run(執行)–>Edit configurations(編輯配置)

在這裡插入圖片描述

在引數中,新增程式碼:

--dataset_dir
../pysot/datasets/OTB100
--dataset
OTB100
--tracker_result_dir
../results/OTB100
--trackers
SiamRPN
DaSiamRPN
SiamFC
SiamDWfc
--num
3
--show_video_level
--vis

點選OK(確定),執行eval.py

2. 常見問題解決

1.若出現,如下圖所示,可能MiKTeX沒有安裝好,或者配置好。

在這裡插入圖片描述
2.若出現以下問題:
TimeoutError: Lock error: Matplotlib failed to acquire the following lock file:
C:\Users\Administrator.matplotlib\tex.cache\1f182d9bede4c9cd7c73d0968523a788.tex.matplotlib-lock
This maybe due to another process holding this lock file. If you are sure no
other Matplotlib process is running, remove this file and try again.

解決方法:
第一步,在Anaconda Prompt 命令視窗下,終端python 的環境下,
輸入:

import matplotlib    
print(matplotlib.matplotlib_fname())

如下圖所示:
在這裡插入圖片描述

獲得matplotlibrc檔案的路徑:D:\Anaconda3\Lib\site-packages\matplotlib\mpl-data\matplotlibrc

第二步,安裝SimHei.tff
百度上很多下載連結,下載後,並前往指定目錄:D:\Anaconda3\envs\pytorch12gpu\Lib\site-packages\matplotlib\mpl-data\fonts\ttf,將下載好的SimHei移動到該目錄下。

第三步,刪除matplotlib的緩衝目錄
先找到,matplotlib的緩衝目錄
輸入:

import matplotlib
matplotlib.get_cachedir()

在這裡插入圖片描述

目錄在C:\Users\Administrator中,

清空緩衝目錄裡面的檔案, 刪除 C:\Users\Administrato.matplotlib檔案
在這裡插入圖片描述

第四步,修改matplotlibrc檔案

修改D:\ProgramData\Anaconda3\lib\site-packages\matplotlib\mpl-data 裡面的matplotlibrc檔案,修改如下:

font.family : sans-serif
font.sans-serif : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
axes.unicode_minus,將True改為False,作用就是解決負號'-'顯示為方塊的問題

實際修改,如下圖:
在這裡插入圖片描述在這裡插入圖片描述

重啟電腦。

執行eval.py。
出現結果:

在這裡插入圖片描述

在這裡插入圖片描述在這裡插入圖片描述
在這裡插入圖片描述


大家如果覺得有幫助的話,點個贊哦!

上一篇:學習 PySOT(1)(介紹、配置、使用

相關文章