FairMOT--A Simple Baseline for Multi-Object Tracking

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FairMOT--A Simple Baseline for Multi-Object Tracking相关的知识,希望对你有一定的参考价值。

参考技术A 针对作者的几点结论的个人理解,感觉根本原因并不是在anchor based和anchor free的方法上,个人认为,造成结果不同的主要差异就是在训练reid网络的label assign和网络的定位精度上。欢迎讨论。

作者使用anchor based的对比方法是借鉴JDE的,JDE是基于yolov3的端到端的MOT方法,JDE的源码中label assign的方法是和SSD类似的MaxIoUAssigner,即anchor 和 ground truth 的IOU大于阈值,就分配为正样本。而原始的yolov3的label assign方法是和ground truth中心点同一个gird cell的IOU最大的anchor为正样本。这样才会导致多个正样本对应同一个ground truth,造成歧义。如果使用原始yolov3的label assign策略,是可以保证训练reid网络不发生歧义的。

不是很理解作者所说的对齐。目标检测网络通常的stride=8,但是也是可以改为stride=4的。然后yolov3强就是强在map50,定位精度在目标检测网络里是比较差的。这似乎影响了reid的性能。但是是可以通过调整iou thresh去改善的。

目前多目标跟踪都是检测器和跟踪器分离的,单步的方法通常准确性会下降,尤其是IDS会明显增加,作者发现了单步的方法之所以比两步的方法差主要有三个原因:

anchor-based的方法会引起歧义,不同位置的anchor可能会对应同一个id的目标。并且anchor-based的方法大多数都是下采样8倍,这在目标检测中是可以接受的,但是在reid中会导致抽取的特征无法对齐,从而引起歧义。

这对于reid来说特别重要,因为reid需要高级特征和低级特征去同时适应不同尺寸的目标。由于提高了reid的质量和尺度变化的处理能力,在实验中我们观察到这可以显著降低IDS。但是对于两步的方法这没那么重要,因为两步的方法它会裁剪出原图的目标然后resize到相同的大小。

之前的reid方法都是使用高纬度的特征向量来表示,并且也取得了很好的结果。但是在MOT中我们发现低纬度的reid特征更好,因为数据集更少,可以加降低过拟合的风险。

就是在CenterNet上加入了一个reid的分支。

和JDE一样,我们采用1088X608的输入尺寸,通过网络前向推理得到keypoints,然后通过offset和size得到keypoints对应的box,最后通过reid分支得到box对应的特征向量。

这部分借鉴了deepsort:

我们合并了六个数据集,其中ETH和CityPerson没有标注ID,我们用其训练检测,The CalTech、 MOT17 、CUHK-SYSU、PRW标注了框和ID,我们用着四个数据集训练检测和reid。为了公平,我们还移除了ETH数据集中出现在了MOT16测试集中的数据。我们再2DMOT15、MOT16、MOT17和MOT20上验证了我们的方法。检测部分用AP作为评价指标,reid部分使用TPR( True Positive Rate at a false accept rate of 0.1) 作为评价指标。跟踪使用CLEAR和IDF1作为评价指标。

我们在我们的结构上使用了anchor,保持其他影响因素都相同。实验结果如下:

主要结果:

所有方法都采用stride=4,对于ResNet,我们加上了三次上采样。数据集使用2DMOT15中5段训练视频和6段验证视频,去验证Resnet、FPN、HRNET、DLA不同的聚合方法。

维度太大过拟合,太小表达能力不足。

团队对以上问题进行了思考,得出一些比较简单的看法:

1、一般来说检测器和特征提取器的性能越理想,最终跟踪的性能也会有相应的提升;mAP作为常用的检测器评估指标来说,mAP的提升不一定能带来跟踪的性能提升,当然这也和评价指标有关系,需要具体问题具体分析,比如检测上多尺度增强带来的AP增益往往会造成MOTA的降低。mAP作为特征提取器的评估指标来说,mAP的提升也不一定能带来跟踪的性能提升,比如Part-Based 的MGN在本次竞赛中虽然mAP比全局特征提取器差几个点,在最后的跟踪上却取得不错的效果。

2、现实中的多目标跟踪任务中,摄像头的突然运动以及跟踪对象的突然加速往往都是存在的,这时候的运动模型其实动态性能十分的差劲,反而造成不好的跟踪效果,本次竞赛采用的是直接不采用运动模型的方法。

3、跟踪器的特征平滑操作十分简单有效,不需要类似于DeepSORT进行级联匹配,速度比较快,考虑了同一轨迹的历史特征,使得特征更加鲁棒,减少了单帧跟踪错误带来的影响;

4、Part-Based的特征提取器针对这种遮挡比较严重的情况在距离度量时考虑了各个部分的特征,特别的,遮挡部分往往变化比较大,结合特征平滑操作,一定程度上消除了遮挡部分的影响,更关注没有遮挡部分的特征。

46 Simple Python Exercises-Very simple exercises

 


4、Write a function that takes a character (i.e. a string of length 1) and returns True if it is a vowel, False otherwise.

def if_vowel(a):
a=a.lower()
if a in(‘a‘,‘e‘,‘i‘,‘o‘,‘u‘):
return True
else:
return False
print(if_vowel(‘A‘))


以上是关于FairMOT--A Simple Baseline for Multi-Object Tracking的主要内容,如果未能解决你的问题,请参考以下文章

Spring Framework 6.0 框架

Datawhale九月组队学习--情感分析--Task01

删除了 'simple_vector::simple_vector(int)' 的定义

找不到 XML/Simple.pm

vue-simple-uploader简单的分享

为啥我不能使用 LWP::Simple 获取***页面?