學習 PySOT(2)(PySOT-toolkit、對比、畫圖)
文章目錄
前言
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
- 將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)(介紹、配置、使用)
相關文章
- 畫影圖形: SVG & Canvas 圖形對比SVGCanvas
- 【JavaScript學習筆記】畫圖JavaScript筆記
- Markdown畫圖(mermaid)學習AI
- 對比學習 ——simsiam 程式碼解析。
- 與MSSQL對比學習MYSQL的心得MySql
- 對比學習Vue和微信小程式Vue微信小程式
- MySQL和Oracle對比學習之事務MySqlOracle
- 【C#學習筆記】圖片畫素操作C#筆記
- 學習打卡2-藝術畫筆見乾坤
- 對比學習:Golang VS Python3GolangPython
- MySQL的double write和Oracle對比學習MySqlOracle
- 開源深度學習庫對比總結深度學習
- canvas學習筆記-2d畫布基礎Canvas筆記
- C#與Lua語言學習對比一C#
- Java NIO學習系列四:NIO和IO對比Java
- OSPF路由 與 ISIS路由 與路由學習對比路由
- perl DBI DBD和java 的JDBC對比學習JavaJDBC
- Netty-Mina深入學習與對比(二)Netty
- 意間AI繪畫和數畫兩款AI繪畫軟體對比評測AI
- 多對多多語言神經機器翻譯的對比學習
- Vue原始碼學習(十四):diff演算法patch比對Vue原始碼演算法
- Android 熱修復 - 各框架原理學習及對比Android框架
- MySQL入門學習之——mysql與oracle死鎖對比MySqlOracle
- DB2和GreenPlum對比DB2
- docker學習系列2儲存對容器的修改Docker
- MyBatis學習筆記(2)—對映關係篇MyBatis筆記
- Blazor和Vue對比學習(基礎1.5):雙向繫結BlazorVue
- Linux與windows對比有什麼優勢?學習分析!LinuxWindows
- UI設計學習的對比原則怎麼運用?UI
- Vue原始碼學習(十六):diff演算法(三)暴力比對Vue原始碼演算法
- Stringbuffer與Stringbuilder原始碼學習和對比UI原始碼
- 通過差異化對比學習法,帶你回顧Vue2快速掌握Vue3Vue
- Groovy 2與Java的效能對比Java
- 《軟體隨想錄》與《黑客與畫家》的對比黑客
- iOS 2D 畫圖 和 UIBezierPathiOSUI
- Blazor和Vue對比學習(基礎1.4):事件和子傳父BlazorVue事件
- Blazor和Vue對比學習(進階.路由導航一):基本使用BlazorVue路由
- C#和TS/JS的對比學習02:函式與方法C#JS函式