ECO for tracking 在 OTB100 基准测试和 VOT2016 数据集中的实验结果

目前本文所涉内容均未使用图形处理器。

运行在有图形处理器环境下的实验将在稍后补充,敬请关注。

需要准备的文章和工具有:

ECO for tracking 原文 | OTB100官网 | VOT2015 官网VOT2016 官网 | vot-toolkit

一、集成 OTB100

1.1 下载基准测试

从官网下载  tracker_benchmark_v1.0.zip 后解压到某个目录。

在该目录中可以看到:trackers 目录中已经包含了若干跟踪算法。而我们要做的就是把 ECO 和 ECO_HC 的跟踪算法加进去即可。

ECO 和 ECO_HC 的区别就是:前者使用“深度特征”,后者使用 HOG 和 CNN。

1.2 下载 ECO 代码

可以参照 ECO 的 GitHub 页面中提到的部署代码的方法,将代码下载到 trackers 目录中。

由于 ECO 和 ECO_HC 是两种不同的算法,因此,出于分别测试其性能的考虑,需要下载两份代码,并分别命名为 ECO 和 ECO_HC。如下所示:

将 ECO 和 ECO_HC 保存到 OTB100 基准测试的 trackers 目录下。
ECO 和 ECO_HC 的内容完全一样。

1.3 添加集成接口

切换到 ECO 目录下 runfiles 文件夹中,将 OTB_DEEP_settings.m 文件夹复制到上一级目录,并改名为 run_ECO.m,如下所示:

从 runfiles 文件夹中复制 OTB_DEEP_settings.m 文件到此目录,并改名为 run_ECO.m

类似的,在 ECO_HC 目录中,将 runfiles 文件夹中的 OTB_HC_settings.m 文件复制到上一级目录,并改名为 run_ECO_HC.m 即可。

1.4 修改基准测试代码并运行基准测试

由于 tracker_benchmark_v1.0 目录的 results 目录下已经有其它跟踪算法的结果,因此我们只需要运行 ECO 和 ECO_HC 的基准测试即可。

OPE、SRE 和 TRE 评价方法可以并行运行,因此我们将 main_running.m 文件复制为三份,分别命名为 main_running_OPE.m 、 main_running_SRE.m 、 main_running_TRE.m ,并分别将其中第 20 行的 evalType 修改为对应评价方法的名称即可。例如 main_running_OPE.m 的第 20 行可以改为:

main_running_SRE.m 和 main_running_TRE.m 的第 20 行可以参照此法修改。

紧接着在 utils 目录中找到 configTrackers.m 文件,将 trackers 变量赋值为仅包含 ECO 和 ECO_HC,意即只运行 ECO 和 ECO_HC 基准测试。如下所示:

将 trackers 变量修改为只包含 ECO 和 ECO_HC。

基准测试运行完毕后再改回原始状态,以便生成对比图。

接下来运行三个 matlab,然后分别执行 main_running 文件。

注意:SRE 和 TRE 评价方法运行耗时比 OPE 评价方法要长得多,如果要运行完全部 51 个基准测试,约需耗时两天。

如果要并行运行ECO 和 ECO_HC 测试,则需要准备两份 OTB100,并修改对应的 configTrackers.m 的 trackers 变量为分别只包含 ECO 和 ECO_HC


二、OTB100 基准测试下的实验结果对比

三种评价方法运行完毕后,修改 util\configTrackers.m 文件,启用所有跟踪算法,即可开始输出实验结果图。如下所示:

在 trackers1 变量中加入 ECO 和 ECO_HC 的定义。
将这两个定义加到最前面,输出图片时的图例就会排在最前面。

在 Matlab 中运行 perfPlot.m 文件。随后会弹出比较结果图,并且在 figs 目录下生成相应的图片文件。

以下为 ECO 和 ECO_HC 与其它八种跟踪算法的比较结果图(按不同评价方法和排序方法分别显示。按 AUC 排序的评价方法各 12 张图,按阈值排序的评价方法各 24 张图,按文件名顺序排序):

2.1 OPE(按 AUC 排序)

2.2 SRE(按 AUC 排序)

2.3 TRE(按 AUC 排序)

2.4 OPE(按阈值排序,前12张为覆盖阈值,后12张为位置误差阈值,下同)

2.5 SRE(按阈值排序)

2.6 TRE(按阈值排序)

从以上评价方法的结果图中可以看出,ECO\ECO_HC 的跟踪算法效果明显优于其它八种算法。

2.7 测试结果和修改后的代码下载

天翼云盘 | Google Drive

三、集成 VOT2015\VOT2016 数据集

3.1 准备 vot-toolkit

vot-toolkit 的 GitHub 主页下载代码,放置到某个目录。

然后在 matlab 中切换到此目录。

3.2 准备工作区

切换到此目录后,新建 VOT2015\VOT2015HC\VOT2016\VOT2016HC,分别用于实验 ECO\ECO_HC 针对 VOT2015\VOT2016 数据集的工作目录。如下所示:

新建 VOT2015\VOT2015HC\VOT2016\VOT2016HC 目录

在此目录中运行 toolkit_path.m,然后分别切换到新建的四个目录中,分别运行 workspace_create 命令,并根据提示为当前跟踪算法命名。如下所示:

带有 HC 的目录中的跟踪算法可以命名为 ECO_HC,以示区别。

3.3 编写 tracker 文件

回到 ECO 代码目录,在 VOT_integration\configuration_file 目录中找到 tracker_ECO.m 文件,将其内容覆盖刚才生成的四个文件夹下的 tracker_ECO(_HC).m 文件,并修改 ECO_repo_path 变量为 ECO 的根目录。

注意:ECO_repo_path 只接受单引号变量。

切换到 ECO 代码目录,找到 VOT_integration\benchmark_wrapper 目录下的 setup_tracker_paths.m 文件并运行。然后返回四个 VOT 工作目录。

这一步的目的是使 vot 工具能找到 ECO 的目录。

执行每个工作目录下的 run_experiments.m 即可开始实验。

开始实验前会自动下载相应的数据集。由于数据集服务器位于境外,且内容较大,因此建议先自行到官网下载相应的数据集放到 sequences 目录下,然后再运行相关命令。

四个实验可以并行开展。

四、VOT2015\VOT2016 数据集的实验报告

实验运行结束后即可以开始分析实验结果,并与其它跟踪算法进行比较。

其它跟踪算法的结果在 VOT 官网即可找到,在运行分析实验结果命令前,先将对应的结果放置在工作区目录的 results 文件夹中。如下所示:

除了 ECO 文件夹为运行实验时生成外,其他均为从 VOT 官网下载

不必将所有算法的结果都放到 results 目录中,挑选你想要作为参考算法的结果即可。

在运行分析命令前,需要先指定比较的算法列表。打开工作区的 run_analysis.m 文件,根据提示填入你想要比较的算法名称,如下所示:

红框中即为要比较的算法名称列表

注意:算法名称要与 results 目录下的文件夹名称一致,否则无法加载。

准备就绪后运行 run_analysis.m 文件,分析结束后会在各自工作区目录中生成一个 report 目录。目录中的内容即为此次实验的报告。

由于 VOT 报告均已网页的形式展示,在此不便展示,您可以使用合适的方式下载后查看:

VOT2015: 天翼云盘Google Drive

VOT2016: 天翼云盘Google Drive

报告说明

因为此次实验的环境与其它实验的环境存在差异,实验报告中提到的帧率(FPS)与运行实验的计算机配置具有很强的相关性,因此帧率测试结果仅供参考。

实验环境:

CPU: Intel® Core i9-9900K @4.7GHz

Memory: Corsair® 16GB x2 @3000MHz, Dual Channel

Windows 10 1809 x64

未使用图形处理器。

未使用图形处理器的原因有二:主要是目前并不具备实验所指定的图形处理器;其次,论文中提到了使用英特尔酷睿i7处理器时,ECO_HC算法的效率即可达到60帧每秒以上,故本次实验全程都使用中央处理器执行。这也是上述提到的“帧率数据仅供参考”的原因。


如果对实验结果有疑问,请直接在下方留言,或来信咨询(i#vistart.me)。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据