文章目录

  • 前言
  • 一、账号注册
    • 1.1 不要用QQ或163或gmail邮箱
    • 1.2 正常注册流程
  • 二、上传测试结果的流程
    • 2.1 要注意的问题:
    • 2.2.使用步骤
  • 总结

前言

最近在做一个多目标跟踪相关项目,搞过多目标跟踪的都知道MOT Challenge这个benchmark数据集,其包含MOT15,MOT16等多个数据集,每个数据集又可以划分为test和train两类。

但是,官方提供的test数据集是不包含gt.txt的(即真实跟踪框的标注信息),所以我们无法用motmetrics得到MOTA,IDF1等性能结果。因为官方想避免某些人根据这些gt信息,拟合出性能看起来很高的算法,类似于拿着答案来考试,从而影响算法真实表现。

故我们需要将自己在本地得到的测试结果上传(submit)到官方,让官方给我们返回性能指标评测结果:

上传gt需要你注册一个官网账号,而注册账号和上传数据集流程又容易遇到坑,故我将自己的实现流程记录一下,帮助后来者。


一、账号注册

进入官网注册页面:https://motchallenge.net/register/

Affiliation填学校全名,Supervisor填导师英文名。

容易出现的问题主要是邮箱这块:

1.1 不要用QQ或163或gmail邮箱

这是国内常用的几个邮箱,一旦填入后,注册页面会显示以下信息:

要用学校的edu邮箱进行注册(基本每个大学都有免费办理自己edu.cn邮箱的渠道,自己可以去官网看看),导师的邮箱也需要用后缀为edu的邮箱。就跟论文投稿一样,用qq邮箱发送的邮件容易给收入垃圾箱,用edu邮箱的话比较正规。

1.2 正常注册流程

edu邮箱注册后,注册页面会提醒“你的账号正在接受审核”,接下来只要等官方发邮件到你邮箱就行。

第一封邮件是告诉你审核通过,让你到指定链接填写你的密码和其他信息,填完后提交会收到第二份邮件。
第二封邮件是让你点击指定链接进行账号激活

激活后就大功告成了。

也有人的情况是用edu邮箱注册后一直没反应(比如我),这时候一般需要写封小作文给官网邮箱info@motchallenge.net。跟管理员说明自己来自哪个学校,要用MOT干嘛干嘛,非商用,导师是谁,导师谷歌学术网站是什么等等等。
我发完邮件后的第三天就收到了对方的回信,然后就顺利注册成功了。

二、上传测试结果的流程


官方其实写的很清楚了,先创建不同的方法,选择不同的数据集,最后将自己的所有预测文件进行打包上传即可。

(注意打包的文件不止是你在test推理得到的文件,你的打包文件里还要包含train文件夹下的GT文件,即提交的打包文件内容为:n个train/文件夹下的gt.txt文件 + 你对测试集的n个测试结果.txt,train中的gt.txt记得也要改名成页面上要求的格式

例如你要提交MOT16的结果进行测试,那你的打包文件应该包含MOT16-01.txt到MOT16-14.txt的14个文件)

2.1 要注意的问题:

1.你每个月只允许创建1Method,每个Method在相同数据集只能测最多4次,每次测试间隔为72小时。
这就意味着你一个月最多只能测试10次(每次间隔3天),且每个数据集(MOT16/MOT17等)一个月最多只能测4次,即结果没法频繁上传评测,上传次数宝贵。

我个人是先分一部分train数据不进行训练,而是作为测试集,并利用python提供的motmetrics包在该测试集上评估出效果有显著提升后再提交到官网上的,避免浪费次数和时间。

2.官方的数据集里其实是用了自己的detector(DPM v5 ,ACF)来得到检测框,这些检测框信息也存在数据集的det文件夹下,如果你用的是自己的检测器,比如YOLOv5,官方会建议你将检测器也发给他们,但其实这个只是自己私人测试使用的话不影响。

当然如果你要正式发论文和刷榜的话,应该就需要自己读取数据集下的Det文件里面的行人检测框数据作为跟踪算法的输入,而不能用自己的检测器了。(个人理解:跟踪算法换上好的检测器比如从YOLOv5换成YOLOv8,那精度直接上升一大截,太作弊了,这样就不是在比谁的算法好而是比谁的检测器好了,要控制变量)

2.2.使用步骤

创建Method,一个Method代表你的一个MOT算法,一个月只能创建一次Method,一个Method里的相同数据集只能提交4次(如一个月只能测4次MOT17+4次MOT16+2次XXX)。

(一般都是创建MOT的method,这根据你用的数据集来决定,不清楚的把所有method都创建一遍看看每个method包含哪些数据集就知道了):

点击Create new method,因为我用的是MOT系列数据集,我直接在MOT模块下Create,信息自己随意填即可:


创建完方法后点击右边的Submit


选择自己的要用来测试的数据集(比如这里选MOT15),填写自己硬件数据,推理时间,和训练数据集范围,硬件数据和推理时间自己随意看着填。

填完后可以看到自己的方法下多了行MOT15的Challenge,点击Submit Results:

根据官网要求按顺序摆放好你推理后的txt的顺序,打包成压缩文件zip格式上传即可:

这里可能会有人上传的时候会遇到 Wrong number of result files! 0 results found in archive, but XXX needed. Please make sure sure that all required txt files are in the root folder of the zip archive,这个问题是因为你是对一整个文件夹进行了压缩,其实是错的,这样会导致你的压缩包解压后还有一个文件夹(套娃)。正确的做法是ctrl+A全选所有txt文件,比如有14个txt文件,全选后进行压缩,这样打包的压缩包解压后就直接得到14个txt文件,而不会有中间文件夹产生,上传也才不会有错误。

错误的压缩方式(打开zip看到是一个文件夹):

正确的压缩方式(打开zip看到的是所有的txt):

每个txt文件里的信息要按照顺序摆放:

其中,第一列是帧数,第二列是人物ID,接下来四个是(行人框左上角x坐标,行人框左上角y坐标,框的宽度,框的高度),置信度,一些其他的定义。你要推理的txt文件要基于数据集里的定义进行摆放。

(但网上看到有人说只要保持每一列的格式正确,txt中的行顺序哪怕不按照帧顺序进行排序也不影响性能结果?但建议还是自己用python处理一下顺序)

更具体的信息可以看数据集论文里的描述,比如下面的MOT Challenge2020的论文里提到的格式:

上传后,可以看到Submit Results就不再给上传Not allowed(72h后刷新),单击Challenge里的MOT15就能看到自己上传的数据了。

我这里以MOT16为例,点击后可以看到性能指标:

总结

以上就是MOT Challenge的提交过程,如有问题,欢迎指出。