到目前为止,FairMOT是我看过的最简单实用的一份代码,而且在论文方面,论文思路、写作格式方法、工作量上都是十分充足的,这也是我为什么选择FairMOT作为第一篇论文解析。
论文信息
论文地址: https://arxiv.org/pdf/2004.01888.pdf
代码地址: https://link.zhihu.com/?target=https%3A//github.com/ifzhang/FairMOT
出发点
detection和reid所使用的特征之间有着显著差异。
发现问题:
anchor不适用于reid的特征。
就像Track RCNN等的anchor-based one-shot trackers忽略了reid任务。
因为它们用anchor首先去检测物体,然后基于这个检测结果来提取reid特征,言下之意就是如果检测结果不正确那么提取出的reid特征也是无用的anchors在训练reid特征时也会引入很多歧义。
因为一个anchor可能对应多个身份,多个anchor可能对应一个身份,尤其是在拥挤的场景中。
detection和reid共享特征引起的。
detection和reid时完全不一样的任务,按理来说它们需要不同的特征,而现在的方法都是在detection和reid用同一个特征来训练的。
一般来说,reid特征是来区分同一类中不同实例的,detection特征需要对同一类中不同实例是相似的。因此,one-shot跟踪器中的共享特征会导致特征冲突,从而降低每个任务的性能。detection和reid特征适用维度不同引起的。
reid特征通常高达512维或1024,远高于detection。而这两者维度的巨大差异也会损害这两个任务的性能。
在实验中,作者联合detection和reid的网络学习低维重识别特征可以实现更高的跟踪精度和效率。如何平衡det和reid的loss损失
方法
作者提出FairMOT来解决以上三个问题。FairMOT的整体结构如下:
![](http://dingyue.ws.126.net/2022/0224/a7ebb741j00r7t2he001ud200u000dig017100jd.jpg)
基于CenterNet和reid的组合上, 由两个相同分支组成,分别用于detection object 和提取reid特征。
其中detection branch以anchor-free方式实现,用来估计object centers 和 sizes,表示为位置感知测量图;reid分支为每个像素估计一个reid特征,来表征以像素为中心的对象。
以前的方法是将一个分支形成两阶段的方式来执行detection和reid。作者说FairMOT与这些方法有着本质区别。
FairMOT结构
BackBone Network 基础网络
使用ResNet-34作为主干网络,DLA-34作为高低层特征融合网络。
输入图像尺寸为HimagexWimage,输出特征图为CxHxW,这里H=Himage/4,W=Wimage/4.
除DLA-34之外,还可选择Higher HRNet
Detection Branch 检测分支
检测分支是基于CenterNet的anchor-free方法。
三个并行头被添加到DLA-34后去预测heatmaps热图,object center offsets目标中心补偿和bounding box sizes边界框尺寸。每个头都是通过对DLA-34的输出特征应用具有256个通道的3x3卷积来实现的,最终通过1x1卷积层来生成三个头的输出特征。
1、Heatmap Head 热图头
这个头负责估计目标中心的位置。热图的维度是1xHxW。如果热土中的某个位置与真实对象中心重叠,则预测的响应为1.响应随着热图位置和目标中心之间的距离呈指数衰减。
![,这里N代表图像内目标的数量, 代表标准差。](http://dingyue.ws.126.net/2022/0224/204b2608j00r7t2hg0005d200ar0032g00750021.jpg)
![,这里 是估计的热图, 是是focalloss中预设定的参数。](http://dingyue.ws.126.net/2022/0224/3ffca910j00r7t2hh000ed200pb002vg00fh001q.jpg)
2、Box size and offset Heads
box offset heads 边界框补偿头的目的是更精确的定位目标。由于最终用于下游任务的特征图是由4倍下采样得到的,所以会引入多达四个像素的量化误差。该分支估计每个像素相对于目标中心的连续偏移,来减轻下采样的对于边界框尺寸的影响。主要负责在每个位置上目标边界框的高度和宽度。
从box offset heads 会分别输出尺寸和补偿, 。
对于图像中每个GT框 ,会先计算这个GT框的尺寸和补偿, . 而将相应位置的预测尺寸和补偿表示为 .
![, 这里 是权重参数,预设为0.1](http://dingyue.ws.126.net/2022/0224/083a6d90j00r7t2hk0005d200dx002og009k001t.jpg)
3、Re-ID Branch
Re-ID分支目的是生成可以区分不同目标的特征。理想情况下,不同目标之间的亲密距离应该小于统一目标之间的亲密距离。
为了达到这一目的,我们在DCN-34后添加了一个具有128个卷积核的卷积层,使生成的主干特征输入到这一卷积层生成reid所使用的特征。
生成的特征表示为 ,这样就可以从特征图中提取出位置 的reid特征
通过分类任务学习reid特征。训练集中具有相同身份的所有目标实力都被视为同一类。对于图像中每个GT box ,先获得下采样后的热图中心点 。之后我们使用128维的卷积层抽取热图中心点的reid特征向量 , 并且之后通过全连接层和softmax层将其映射到类分布向量 。将GT类别标签的one-hot表现形式作为
![, 其中K是训练数据中所有身份的数量。](http://dingyue.ws.126.net/2022/0224/748ff75ej00r7t2ho0007d200db002qg008z001u.jpg)
在网络训练过程中,只使用位于目标中心的身份嵌入向量进行训练,因为我们可以从测试中的目标热图中获得目标中心。
FairMOT 训练
FairMOT框架在训练时,接受两个Loss:detection loss 和 reid loss
作者使用了一种不确定Loss平衡方法来平衡detection和reid任务,具体方式如下:
其中, 。
需要注意的是,虽然FairMOT是基于CenterNet的方法,但不同于CenterNet使用前后帧图像作为使用,它仅使用单张图像作为输入,并且因此将每个目标实例作为单独分类。
在训练时对单张图像的预处理操作包括:HSV增强、旋转、缩放、平移和剪切。
FairMOT 推理
由基础网络得到detection和reid特征
在网络进行推理时,网络将大小为1088x608的图像帧作为输入,与JDE方法相同。
在预测的Heatmap上,通过heatmap的分数来执行非极大值抑制来提取并保留大于阈值的关键点的位置。然后,根据预测的偏移量offset和框大小size计算对应的边界框。最后在预测的目标中心heatmap keypoints提取身份嵌入向量
在线关联
使用MOTDT和分层的数据关联方法。
首先,根据第一帧中检测到的边界框来进行初始化轨迹;然后在后续帧中,我们使用两阶段的匹配策略将检测到的框连接到现有的tracklets中。
两阶段关联方法:
1、第一阶段
使用卡尔曼滤波器和reid特征来获得初始跟踪结果。具体是,使用卡尔曼滤波器预测目标在后续帧的位置,之后计算预测框和检测框之间的马氏距离 ,与DeepSORT方法类似。然后计算基于reid特征的余弦距离 ,并融合马氏和余弦距离: , 这里 是权重参数在实验中预设为0.98。
参照JDE方法的设置,如果 大于阈值,就将马氏距离 设置为无穷大,来避免获得大的运动轨迹。
在第一阶段中判断匹配的阈值设置为 ,并使用匈牙利匹配来完成第一阶段的匹配。
2、第二阶段
目的是对第一阶段中不匹配的检测和跟踪,用IoU策略来再匹配一次,即在第二阶段中 。最后将未匹配的检测初始化为新轨迹,并将未关联的跟踪框保存30帧,以备未来再次出现。
Experiments
数据集
1、只包含行人边界框:
ETH、CityPerson、CrowdHuman datasets
2、同时包含行人边界框和身份注释:
CalTech、MOTChallenge、CUHK-SYSU、PRW
作者将只包含行人边界框的数据集仅用于检测分支的训练,同时提供两者注释的数据集用于检测和reid分支的训练。
评估标准
对于检测结果,使用AP(Average Percision)来进行评估;
对于reid特征,使用TPR(true Positive Rate)指标来进行评估;
对于MOT结果,使用MOTA(Multi-object tracking Accuracy)、IDs(Identity switch)、IDF1(Identity F 1 Score)等指标来进行评估的评估。
实验细节
1、采用在COCO数据集上预训练的DLA-34变体作为默认backbone;
2、使用Adam优化器训练30个epochs;
3、开始使用学习率为10^{-4},在第20个epochs时,学习率衰减为10^{-5};
4、使用标准数据集增强技术,包括:旋转、缩放和颜色抖动;
5、输入图像分辨率调整为1088x608,之后的特征图分辨率为272x152;
6、训练阶段,采取双路Nvidia RTX 2080ti GPUs 训练大约30小时。
消融实验
1、ReID特征提取方法
作者说明了目前reid提取特征的来源:
a、RoI-Align in Track R-CNN. reid特征直接从ROI-Align所输出的检测框中采样,造成的问题是许多采样位置偏离目标中心。
b、POS-Anchor in JDE. reid特征直接从正例anchors中采样,同样会造成采样位置偏离目标中心。
c、Center in FairMOT. 直接从目标中心提取。
d、Center + BI in FairMOT. 加上线性插值
e、两阶段方法。第一阶段检测部分和FairMOT相同。第二部分使用ROI-Align跟踪检测到的边界框提取主干特征,然后使用ReID head(一个完全连接层)获得reid特征。
这五种方法都是基于FairMOT做的,不同之处是ReId特征从主干特征如何提取,主要实验结果如下:
![](http://dingyue.ws.126.net/2022/0224/7b9777e7j00r7t2hs000zd200u00071g016o009z.jpg)
2、多任务Loss平衡方法
在detection和reid loss 如何平衡间,作者尝试了五种方法:
a、Uncertainty-task 和 Uncertainty-branch;
b、GradNorm. 得到最高的总体跟踪精度,这表明可以平衡两者任务,然而需要更长的训练时间;
c、MGDA-UB. 得到最高的TPR,但MOTA和AP最低,这表明该模型偏向于ReID任务;d、Fixed weight. 得到最好的MOTA和AP,但最差的IDs和TPR,意味着模型偏向于检测任务。
主要实验结果如下:
![](http://dingyue.ws.126.net/2022/0224/e2658e5fj00r7t2ht001ud200rj00ehg00rj00eh.jpg)
3、多层特征融合方法
将这些方法分为两类,一类没有多层融合,一类有多层融合
a、ResNet、RegNet
b、FPN、HRNet、DLA、HarDNet
根据在ImageNet上测试的Acc和在MOT任务中的MOTA、IDF1指标的对比,说明在一项基础任务中拥有强 大的主干并不意味着它在MOT中也能获得良好的结果。主要实验结果如下:
![](http://dingyue.ws.126.net/2022/0224/2bc9bba6j00r7t2ht001dd200u000a2g01jg00il.jpg)
4、特征维度选择
在这个实验中比较了JDE和FairMOT,分别在512维和64维下比较,主要实验结果如下:
![](http://dingyue.ws.126.net/2022/0224/61fbf056j00r7t2ht000rd200u0005lg01km00aj.jpg)
5、数据关联方法
数据关联阶段使用:bbox IoU、reid features 和 卡尔曼滤波预测未来边界框,这些都被用来与检测框计算相似性,最后使用匈牙利方法解决分配问题。主要实验结果如下:
![](http://dingyue.ws.126.net/2022/0224/8014ffd0j00r7t2hu000ld200u0005pg01jh00aj.jpg)
关于以上所有消融实验,MOT17数据集下进行测试,测试结果如下:
![](http://dingyue.ws.126.net/2022/0224/7a364bf7j00r7t2hv003xd200u000iwg01i700y4.jpg)
单图像训练
在这部分作者提出:在CrowdHuman数据集上预训练模型可以直接连接跟踪器并获得可观的实验结果,即可以直接使用预训练模型,之后在带有身份的训练集例如MOT上继续训练reid特征, 主要实验结果如下:
![](http://dingyue.ws.126.net/2022/0224/d7278f1dj00r7t2hv0023d200qy00etg00qy00et.jpg)
训练数据消融实验
当仅使用MOT17数据集训练时,可以达到69.8MOTA;当使用与JDE相同的训练数据时,我们可以实现72.9MOT;当继续在CrowdHuman数据集上进行单图训练时,MOTA提高至73.7。
来源:知乎
作者:Yyyyu
|深延科技|
深延科技成立于2018年1月,中关村高新技术企业,是拥有全球领先人工智能技术的企业AI服务专家。以计算机视觉、自然语言处理和数据挖掘核心技术为基础,公司推出四款平台产品——深延智能数据标注平台、深延AI开发平台、深延自动化机器学习平台、深延AI开放平台,为企业提供数据处理、模型构建和训练、隐私计算、行业算法和解决方案等一站式AI平台服务。
热门跟贴