我先前于2023/4/5日的时候在文章里提到:“提交到官网的文件需要包含测试后的训练集结果和测试后的测试集结果”,该结论经过测试后发现有误。
个人于2023/12/8日在评论区的提醒下对MOT Challenge的内容提交进行了重新测试,发现提交到官网的文件并不需要对测试集进行测试,而是直接将训练集的GT文件和你的追踪器对测试集的测试结果合并后提交到官网就可以了,故将内容更正为不需要对测试集进行测试。
先前由于提交次数较为宝贵,个人并没有进行过多的测试,加上自己理解有误,得出了错误的结论,在此表示歉意。
以下为测试结果:
提交自己对测试集测试后的结果
直接提交训练集GT文件的结果
可以发现两者性能都一样,故提交内容只需训练集GT文件+自己对测试集的测试结果文件即可。
最近在做一个多目标跟踪相关项目,搞过多目标跟踪的都知道MOT Challenge这个benchmark数据集,其包含MOT15,MOT16等多个数据集,每个数据集又可以划分为test和train两类。
但是,官方提供的test数据集是不包含gt.txt的(即真实跟踪框的标注信息),所以我们无法用motmetrics得到MOTA,IDF1等性能结果。因为官方想避免某些人根据这些gt信息,拟合出性能看起来很高的算法,类似于拿着答案来考试,从而影响算法真实表现。
故我们需要将自己在本地得到gt.txt结果上传(submit)到官方,让官方给我们返回性能指标评测结果:
上传gt需要你注册一个官网账号,而注册账号和上传数据集流程又容易遇到坑,故我将自己的实现流程记录一下,帮助后来者。
进入官网注册页面:https://motchallenge.net/register/
Affiliation填学校全名,Supervisor填导师英文名。
容易出现的问题主要是邮箱这块:
这是国内常用的几个邮箱,一旦填入后,注册页面会显示以下信息:
要用学校的edu邮箱进行注册(基本每个大学都有免费办理自己edu.cn邮箱的渠道,自己可以去官网看看),导师的邮箱也需要用后缀为edu的邮箱。就跟论文投稿一样,用qq邮箱发送的邮件容易给收入垃圾箱,用edu邮箱的话比较正规。
用edu邮箱注册后,注册页面会提醒“你的账号正在接受审核”,接下来只要等官方发邮件到你邮箱就行。
第一封邮件是告诉你审核通过,让你到指定链接填写你的密码和其他信息,填完后提交会收到第二份邮件。
第二封邮件是让你点击指定链接进行账号激活。
激活后就大功告成了。
也有人的情况是用edu邮箱注册后一直没反应(比如我),这时候一般需要写封小作文给官网邮箱[email protected]。跟管理员说明自己来自哪个学校,要用MOT干嘛干嘛,非商用,导师是谁,导师谷歌学术网站是什么等等等。
我发完邮件后的第三天就收到了对方的回信,然后就顺利注册成功了。
官方其实写的很清楚了,先创建不同的方法,选择不同的数据集,最后将自己的所有预测文件进行打包上传即可。
(注意打包的文件不止是你在test推理得到的文件,你的打包文件里还要包含train文件夹下的GT文件,即提交的打包文件内容为:n个train/文件夹下的gt.txt文件 + 你对测试集的n个测试结果.txt,train中的gt.txt记得也要改名成页面上要求的格式
例如你要提交MOT16的结果进行测试,那你的打包文件应该包含MOT16-01.txt到MOT16-14.txt的14个文件)
这里的主要问题有两个:
1.结果没法频繁上传评测(72小时一次,一个MOT数据集只能上传4次结果!上传次数宝贵),上传过于频繁还可能给ban,估计这也是为什么Tao宝上没有代测的服务,因为次数有限制。
2.官方的数据集里其实是用了自己的detector(DPM v5 ,ACF)来得到检测框,这些检测框信息也存在数据集的det文件夹下,如果你用的是自己的检测器,比如YOLOv5,官方会建议你将检测器也发给他们,但其实这个只是自己私人测试使用的话不影响。
当然如果你要正式发论文和刷榜的话,应该就需要自己读取数据集下的Det文件里面的行人检测框数据作为跟踪算法的输入,而不能用自己的检测器了。(个人理解:跟踪算法换上好的检测器比如从YOLOv5换成YOLOv8,那精度直接上升一大截,太作弊了,这样就不是在比谁的算法好而是比谁的检测器好了,要控制变量)
创建Method(一般都是创建MOT的method,这根据你用的数据集来决定,不清楚的把所有method都创建一遍看看每个method包含哪些数据集就知道了):
点击Create new method,因为我用的是MOT系列数据集,我直接在MOT模块下Create,信息自己随意填即可:
选择自己的要用来测试的数据集(比如这里选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文件,而不会有中间文件夹产生,上传也才不会有错误。
每个txt文件里的信息要按照顺序摆放:
其中,第一列是帧数,第二列是人物ID,接下来四个是(行人框左上角x坐标,行人框左上角y坐标,框的宽度,框的高度),置信度,一些其他的定义。你要推理的txt文件要基于数据集里的定义进行摆放。
(但网上看到有人说只要保持每一列的格式正确,txt中的行顺序哪怕不按照帧顺序进行排序也不影响性能结果?但建议还是自己用python处理一下顺序)
更具体的信息可以看数据集论文里的描述,比如下面的MOT Challenge2020的论文里提到的格式:
上传后,可以看到Submit Results就不再给上传Not allowed(72h后刷新),单击Challenge里的MOT15就能看到自己上传的数据了。
我这里以MOT16为例,点击后可以看到性能指标:
以上就是MOT Challenge的使用方法。