MCG-NJU / MOTIP

Multiple Object Tracking as ID Prediction
https://arxiv.org/abs/2403.16848
Apache License 2.0
81 stars 7 forks source link

Some Ideas #8

Closed urbaneman closed 3 months ago

urbaneman commented 4 months ago

认真读了作者的论文,收获很多,感谢您的工作! 关于论文中的一些点的探讨:

  1. Transform的结构使得不定长轨迹和检测预测的多输入处理变得可行,这也是设计“ID decoder”的重要支柱。从训练的角度看,因为拼接了ID-word的embedding,ID预测也就具有了直接的基础。这个任务使用监督学习和对比学习都比较适用,文中贴出的消融实验结果差异还挺大,感觉也可挖一下这个点
  2. 在训练阶段采用了轨迹数据增强的方法,在这个基础上对轨迹ID预测的难易程度加权,可能会有比较好的效果
  3. 目前看下来指标的瓶颈还是在检测部分,可以使用更加强大的DETR。我看README里也添加了DAB-DETR的结果,取得了指标的提升。引入去噪训练(DINO),是否会有更好的效果

期待您训练代码的开源,我想尽快验证一下上面的想法,迫不及待中。

HELLORPG commented 4 months ago

非常感谢您关注我们的工作。 训练代码预计将会在五月份开源,我目前还在整理代码使其更加具有可读性(对比我之前实验所使用的非常臃肿的代码),并且努力达到更好的效果以及更稳定的训练结果。 确实,使用更强的 DETR Detector 确实可以带来增益。我在初期实验的过程中尝试过 DINO-DETR,确实有一定的增益,在我们的代码中,替换 DETR Detector 会非常方便,因为后续部分与 DETR Detector 几乎是解耦的,对其只需要进行寥寥数行的修改。 后续关于开源进度您可以关注该仓库的主页或 #5,我应该会同步训练代码的更新状态。

zsz00 commented 4 months ago

我的一点理解: 感觉主要是在训练人体reid特征. 匹配是用reid在做匹配. 只利用跟踪序列里的图片训练识别特征, 识别的泛化能力不行吧? 扩大到多相机的序列同时做,可能训练的特征识别能力更好?

我用 r50_deformable_detr_motip_dancetrack.pth 测试了下自己的类似场景的数据, 感觉泛化能力不够好, 没有CO-MOT的对应模型的效果好.

HELLORPG commented 4 months ago

只利用跟踪数据集中的图片训练是目前 E2E 方法的常规做法,而传统的额外 ReID 模块确实是采用额外的数据集进行训练的。从实现上来说,我们的工作在多视角跟踪中也可以同样适用。

此外,如果需要对比 CO-MOT 已经公开的模型的话,建议采用我们表格中第三行的结果,也同样引入了 CrowdHuman 作为额外数据集:

Method Training Data HOTA DetA AssA MOTA IDF1 URLs
MOTIP DT 67.5 79.4 57.6 90.3 72.2 model, config, log
MOTIPDAB DT 70.0 80.8 60.8 91.0 75.1 model, config, log
MOTIP DT + CH 71.4 81.3 62.8 91.6 76.3 model, config, log
MOTIP DT* + CH 73.7 82.6 65.9 92.7 78.4 model, config, log

P.S. 关于具体的讨论可以参考我们在补充材料中的讨论。

zsz00 commented 4 months ago

所以说现在的e2e 跟踪模型方法 泛化都不怎么考虑? 就看谁在测试集同domain上过拟合的好 ?

zsz00 commented 4 months ago

只利用跟踪数据集中的图片训练是目前 E2E 方法的常规做法, 我理解 motr 系列里 更偏向于 box匹配, motip里感觉更偏向于feat匹配 ?
如果更关注 feat的识别能力的话, 每个id的img的多样性在训练中很重要. 但同一个跟踪序列里的人体图多样性不够吧. dancetrack 数据一个序列里多样性还好些, mot17室外行人的序列里多样性很少,训练出的feat不够好,跟踪也会不好吧?

HELLORPG commented 4 months ago

即使是过去的 tracking-by-detection,也仍然是需要在特定的数据集上训练检测器的。不同数据集训练出来的检测器也是不能在跨 domain 上通用的,因此从这一点上来看,多目标跟踪由于是 category specific 的,所以 general 的泛化能力一直是一个待解决的问题。 同时,从数据集上来说,MOT 领域并没有类似于 COCO 这样的足够大足够通用的数据集合,所以没有办法训练出一个有足够日常使用泛化能力的模型。 因此,在 MOT 的方法里,大家大多数情况下都会通过跑多个不同特点类型的数据集来验证自己所提出方法的泛化性,在文中我们也这么做了。根据经验来说,经过如此验证的模型,在一个新的数据集 domain 下,经过训练也可以有不错的效果。例如我们之前提出的 MeMOTR 在多个数据集上有提升,因此在 EchoTrack 所研究的新领域内,仍然会有提升,而一般不会出现换一个 domain 就失效的问题。

HELLORPG commented 4 months ago

MOTR 的系列中,feature 也同样被隐含在了 track query 中,只是形式上和我们提出的方法有不同。因此其实对于 feature 的多样性,大家都有一定的追求。关于这一点,在我们之前的工作 MeMOTR 中,我们就是对隐含在 track query 中的目标特征作出改进的。尽管无法通过数学来证明,但是我们还是尽量给出了可视化例子,来表明这一切的依据。 关于训练数据,根据我的经验,MOT 领域内的数据集,大多数都存在多样性不够的问题(相比在图像领域的 detection),在训练的时候也容易出现过拟合。除了我们的工作外,CO-MOT 中也对这个问题进行了讨论。尤其是一些很小的数据集(例如 MOT17),其实有可能并不能充分发挥现有这些 E2E 模型的全部潜力。这是一个头疼的问题,但是没有特别好的办法解决。所以其实我们都比较期待会有一个新的足够大量级的行人跟踪数据集来给这个领域重新注入活力,只是由于隐私条例以及数据标注成本等问题,感觉短期之内不太现实。

urbaneman commented 4 months ago

MOT 领域内的数据集,大多数都存在多样性不够的问题(相比在图像领域的 detection),在训练的时候也容易出现过拟合。

我也有相同的看法,MOT领域是一个CV的下游任务,想要做好会受到很多方面的限制,数据的稀缺是目前MOT领域发展最大的问题。TBD的方案在很多情况下因为更加可控而更容易取得效果,而E2E的方案在落地时存在比较大的风险,因为debug和优化难度更大,跟踪的标注成本也比较大,而且使用其他领域的成果也较为困难(MOTRv2算是一个取巧的方案)。 但我仍然认为E2E是未来的方向,因为有些场景下启发式任务很难设计成统一的范式,场景越多,就越需要一个统一的范式(类别一下点跟踪领域的相关工作)。

在MOTR这类E2E的方案里,很难构造训练任务限制网络的过拟合,而数据集本身因为面向的场景不同,gap很大,联合训练风险比较大。所以大量的多样性数据真的很需要,比如多样的运动目标,不局限于人这一单一类别。

zsz00 commented 4 months ago

数据问题确实重要, 一个可能解决数据的方式就是模拟数据, 像 https://www.aicitychallenge.org/2024-challenge-tracks/ 里的, 通过模拟器生成各种场景下的行人数据做MOT, 理论上可以得到足够的数据, 验证模型化的能力. 另一个 就是把现有的各个数据集集成到一起作为一个训练集用.

zsz00 commented 4 months ago

MOTIP里的T是39或19 这么大, motr 系列里一般是 2-5吧, 这个是同一个作用的吗?

HELLORPG commented 4 months ago

但我仍然认为E2E是未来的方向,因为有些场景下启发式任务很难设计成统一的范式,场景越多,就越需要一个统一的范式(类别一下点跟踪领域的相关工作)。

是的,短期内从工业实际应用领域,可能传统 SORT 类方法的成本更低,效益更好,但是我还是期待未来可以将 E2E 算法推进到一个更高的高度,尤其是在可用性方面。也期待可以有“有钱之士”做一个更大的尤其是行人数据集,我也很想在类 MOT17/MOT20 的足够大的数据集上去验证和提升 E2E MOT 的上限。

一个可能解决数据的方式就是模拟数据。

模拟数据(MOTSynth)之前在我们的工作中有尝试过使用,收效一般,也可能是训练方式的问题,这一点的话,如果有机会,我会在 MeMOTR 的扩展工作/后续工作中探讨,为我们在当初会议版本留下的引子做一个收尾,也欢迎关注。

另一个 就是把现有的各个数据集集成到一起作为一个训练集用

这个由于现在很多 MOT 数据集的标注目标都不一致,可能会面临一些挑战。这也是为什么现在大多数工作选择用 CrowdHuman 这样泛化的“人检测”数据集来作为额外数据集。尽管如此,也仍然会存在由 domain gap 带来的负收益,这个我们在文章中的附加材料部分也有一个小章节的讨论。但是根据 MixSORT 中的实验结果,如果利用巧妙和复杂的多阶段训练的话,是可以带来收益的。这可能也是现行如果想要兼顾多个 domain 时的最佳做法(不花钱的做法)。

HELLORPG commented 4 months ago

MOTIP里的T是39或19 这么大, motr 系列里一般是 2-5吧, 这个是同一个作用的吗?

是同一个含义。在 MOTR 系列中,训练和推理存在 Gap,训练 T=2~5,推理的时候可能会扩展到 T=30 或者更高。但是我们的 T=39 并不会带来恐怖的训练代价,关于这部分的讨论,可以参考补充材料中的章节 D。

urbaneman commented 4 months ago

数据问题确实重要, 一个可能解决数据的方式就是模拟数据, 像 https://www.aicitychallenge.org/2024-challenge-tracks/ 里的, 通过模拟器生成各种场景下的行人数据做MOT, 理论上可以得到足够的数据, 验证模型化的能力. 另一个 就是把现有的各个数据集集成到一起作为一个训练集用.

是的,可能是因为MOT的标注难度没那么高,数据相对容易获取,生成MOT数据集这方面的工作不是很多,也可能是我没了解到😹

在点跟踪领域,因为高精度标签获取的难度极高,现有的数据基本都是生成的,例如 point_odyssey,生成数据的方案理论上可以生成大量的高精度数据,在更加细粒度的标签上学习表征,如MOTS、points-track等,再在MOT任务上fine-tune,感觉大有可为

HELLORPG commented 4 months ago

点跟踪那边如果真要人工标注的话,我估计数据还没到量级就得干成高度近视。

确实,模拟数据是应该提升一下手段了。关于这个问题我也在附加材料里面浅浅讨论了一下。现在很多方法采用 CrowdHuman 进行 Shift 来模拟 MOT 数据,是一个非常无奈的办法,对于训练模型来说可能收益不大。期待可以有更多的好的模拟方法,对于增强 MOT 可用性或者释放 E2E 方法的潜力来说,都很有帮助感觉。

zsz00 commented 4 months ago

我看 SAMPLE_INTERVALS=4, 在motr系列里SAMPLE_INTERVALS=10, 这个差异很大, 是为什么啊? 论文中的解释 "不断增加采样间隔可能会导致训练样例过于具有挑战性,偏离现实世界场景的特定要求,最终对模型的性能产生不利影响." 这个说的不太清楚.

HELLORPG commented 4 months ago