Ubuntu16.04+Matlab2016a下VOT工具vot-toolkit的簡單測試及問題解決方案

最近在嘗試使用VOT官方提供的跟蹤器評價的工具vot-toolkit,發現中間有不少坑,記錄下來或許以後還能用上。

環境是Ubuntu16.04和Matlab2016a,根據官方教程採用NCC跟蹤器在Matlab中進行初步的嘗試。vot-toolkit的python版本配置可以參考另一篇“Ubuntu16.04下vot-toolkit的python版配置”。

官方教程網址:http://www.votchallenge.net/howto/

初步教程可參考上圖中紅框的兩部分,分別說明了如何配置環境和工作空間、測試跟蹤器。以下對其中的過程進行具體的介紹。

  • 下載工具

    在github上下載官方提供的工具vot-toolkittrax:

  1. vot-toolkit網址:https://github.com/votchallenge/vot-toolkit
  2. trax網址:https://github.com/votchallenge/trax/

     將vot-toolkit解壓到本地,在vot-toolkit文件夾下新建目錄命名爲native,接着將trax解壓放到native目錄下。此時的目錄結構爲:

vot-toolkit/native/trax
  • 配置環境、測試跟蹤器
  1. 在vot-toolkit之外新建文件夾命名爲vot-workspace,作爲測試跟蹤器的工作空間。
  2. 在vot-toolkit下運行toolkit_path.m,將實驗所需的子目錄加入到Matlab路徑中。
  3. 切換到vot-workspace下,運行workspace_create.m創建工作空間。
    vot-toolkit/workspace/workspace_create.m
  4. 選擇實驗數據集、跟蹤器代號以及實現的語言。選擇“test”、“NCC”和“Matlab”做簡單測試。
  5. 接下來需要將選擇的NCC跟蹤器整合進vot-toolkit來進行測試。對上一步生成的tracker_NCC.m文件進行修改,修改後如下,爲了簡潔下面將註釋語句刪除了。其中,'data/vot-toolkit/tracker/examples/matlab'需要換成對應的路徑。
    
    % error('Tracker not configured! Please edit the tracker_NCC.m file.'); % Remove this line after proper configuration
    
    tracker_label = ['NCC'];
    
    tracker_command = generate_matlab_command('ncc', {'data/vot-toolkit/tracker/examples/matlab'});
    
    tracker_interpreter = 'matlab';
    
    % tracker_linkpath = {}; % A cell array of custom library directories used by the tracker executable (optional)
  6. 運行run_test.m進行測試,程序會自動下載前面選擇的測試集“test”。

  7. 選擇想要測試的視頻序列號,運行結果如下圖所示。採用單幀運行的方式,通過在圖像上點擊來測試下一幀。


儘管看起來很簡單,但是中間還是出現了不少問題,主要都是trax相關的,記錄如下。

1. 運行run_test.m,提示invalid MEX-file錯誤。

Tracker execution interrupted: Invalid MEX-file '/home/ubuntu/VOT/vot-toolkit/native/traxclient.mexa64': /usr/local/MATLAB/R2016a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/ubuntu/VOT/vot-toolkit/native/traxclient.mexa64).
TraX support not detected.

問題出在libstdc++.so.6這個上面,需要重新建立正確的鏈接,並重啓Matlab即可解決。

cd /usr/local/MATLAB/R2016a/sys/os/glnxa64  # Matlab對應路徑
sudo mv libstdc++.so.6.0.17 bak-libstdc++.so.6.0.17
sudo mv libstdc++.so.6 bak-libstdc++.so.6
sudo ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 ./
sudo ln -sf ./libstdc++.so.6.0.21 ./libstdc++.so.6

2. 在下載了trax之後,運行workspace_create.m,卻還是自動下載trax文件,並提示“Unable to unpack TraX source code”錯誤。之前是可以正常運行的,調試發現問題出在trax_source這個全局變量上。之前指定過這個變量,路徑有問題。需要在Matlab中“clear all”來清除global variable,這樣就可以正常使用本地的trax而不用再次下載了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章