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而不用再次下载了。

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