多目标跟踪算法 | FairMOT

Posted 一颗小树x

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多目标跟踪算法 | FairMOT相关的知识,希望对你有一定的参考价值。

前言

本文介绍一个曾经在多目标跟踪上霸榜的追踪器 ,实用又简单的目标追踪Baseline,FairMOT!它属于一阶段多目标跟踪器(one-shot MOT),检测模型和Re-ID重识别模型同时进行,提升了运行速率。FairMOT采用 anchor-free 目标检测方法(CenterNet),估计高分辨率特征图上的目标中心和位置;同时添加并行分支 来估计像素级 Re-ID 特征,这类特征用于预测目标的 id。

论文地址:https://arxiv.org/pdf/2004.01888v2.pdf

开源代码:https://github.com/ifzhang/FairMOT

目录

一、背景

1.1 两阶段多目标跟踪(two-shot MOT)

1.2 一阶段多目标跟踪(one-shot MOT)

二、跟踪器准确性的关键性因素

2.1 基于Anchor锚点的方法不适合Re-ID

2.2 多层特征聚合

2.3 ReID特征的维数

三、FairMOT框架

3.1 主干网络

3.2 物体检测分支

3.3 id嵌入分支 Identity Embedding Branch

四、损失函数

4.1 Heatmap loss

4.2 Offset and Size loss

4.3 Identity Embedding Loss

五、实验结果

六、FairMOT实践


一、背景

多目标跟踪 (MOT) 是计算机视觉领域中的重要任务,近年来,目标检测和 Re-ID 在各自的发展中都取得巨大进步,并提升了目标跟踪的性能。但是,现有方法无法实时速率执行推断,因为两个网络无法共享特征,例如:deepsort。

当前多目标跟踪最优的方法通常分为两大类:两阶段多目标跟踪、一阶段多目标跟踪。

1.1 两阶段多目标跟踪(two-shot MOT)

两阶段多目标跟踪——使用两个单独的模型,首先用检测模型定位图像中目标的边界框位置,然后用关联模型对每个边界框提取重识别 (Re-identification, Re-ID) 特征,并根据这些特征定义的特定度量将边界框与现有的一个跟踪结果联结起来。其中检测模型中的目标检测是为了发现当前画面所有的目标,ReID则是将当前所有目标与之前帧的目标建立关联,然后可以通过ReID特征向量的距离比较和目标区域交并比(IOU)来通过使用卡尔曼滤波器和匈牙利算法建立关联。代表算法:deepsort

两步方法的优点在于,它们可以针对每个任务分别使用最合适的模型,而不会做出折衷。此外,他们可以根据检测到的边界框裁剪图像补丁,并在预测Re-ID功能之前将其调整为相同大小,这有助于处理对象的比例变化。

1.2 一阶段多目标跟踪(one-shot MOT)

单步法MOT——在进行目标检测的同时也进行ReID特征提取,核心思想是在单个网络中同时完成对象检测和身份嵌入(Re-ID功能),以通过共享大部分计算来减少推理时间。现有的方法比如Track-RCNN、JDE(Towards real-time multi-object tracking)直接在Mask R-CNN、YOLOv3的检测端并行加入ReID特征向量输出。

很显然这能节约计算时间,但作者研究发现此类方法存在目标ID关联不正确的问题。具体来说,该类方法使用了anchor-based 的目标检测,目标的ReID特征是在anchor区域提取的,anchor 和目标区域会出现不对齐的问题,这会导致网络训练时存在严重的歧义。

图1:(a)黄色和红色的锚点造成了估计相同的ID(穿蓝色衬衫的人),尽管图像块非常不同。此外,基于锚的方法通常在粗网格上运行。因此,很有可能在锚点(红色或黄色星形)提取的特征未与对象中心对齐。(b)免锚的做法受歧义的影响较小。

二、跟踪器准确性的关键性因素

其实FairMOT属于JDE(Jointly learns the Detector and Embedding model )的一种。实验证明了现有的JDE方法存在一些不足,FairMOT根据这些不足进行了相关的改进。.作者对影响跟踪器准确性的关键性因素做了以下的分析:

2.1 基于Anchor锚点的方法不适合Re-ID

当前的单步法跟踪器都是基于anchor锚的,因为它们是从对象检测器修改而来的。但是,有两个原因造成了锚点不适合学习Re-ID功能。

  • 其一,对应于不同图像块的多个锚点可能负责估计同一个目标的 id,这导致严重的歧义(参见图 1)。即:基于anchor的检测器,多个bbox可能对应一个目标,这就导致了歧义。
  • 其二,需要将特征图的大小缩小 1/8,以平衡准确率和速度。对于检测任务而言这是可以接受的,但对于 Re-ID 来说就有些粗糙了,因为目标中心可能无法与在粗糙锚点位置提取的特征一致。

文章中提出解决该问题的方法,是通过将MOT问题看作为在高分辨率特征图上的像素级关键点(目标中心)估计和 id 分类问题。

2.2 多层特征聚合

这对于 MOT 问题尤其重要,因为 Re-ID 特征需要利用低级和高级特征来适应小型和大型目标。研究者通过实验发现,这对降低 one-shot 方法的 id 转换数量有所帮助,因为它提升了处理尺度变换的能力。

2.3 ReID特征的维数

以前的ReID方法通常学习高维特征,并在其基准上取得了可喜的结果。但是,本文发现低维特征实际上对MOT更好,因为它的训练图像比ReID少(由于 Re-ID 数据集仅提供剪裁后的人像,因此 MOT 任务不使用此类数据集)。学习低维特征有助于减少过拟合小数据的风险,并提高跟踪的稳健性。

针对于第三点实际存在疑问,一开始公布的Fairmot版本用的reid分支是128维度的,但是后来作者团队在MOT20上刷出了MOTA58.7的指标,也更新了github上的Fairmot模型,这时候用的reid维度已经改为512维度,与通用的reid模型接近。但是在实验中发现reid上效果仍然在人员交集处容易跑其他人身上,应该是没有充分训练。

三、FairMOT框架

如上图是FairMOT框架的框架图,它提出了 one-shot MOT跟踪。首先将输入图像送入编码器-解码器网络,以提取高分辨率特征图(步幅=4);然后添加两个简单的并行 head,分别预测边界框和 Re-ID 特征;最后提取预测目标中心处的特征进行边界框时序联结。

首先,采用 anchor-free 目标检测方法,估计高分辨率特征图上的目标中心。去掉锚点这一操作可以缓解歧义问题,使用高分辨率特征图可以帮助 Re-ID 特征与目标中心更好地对齐。

然后,添加并行分支来估计像素级 Re-ID 特征,这类特征用于预测目标的 id。具体而言,学习既能减少计算时间又能提升特征匹配稳健性的低维 Re-ID 特征。在这一步中,本文用深层聚合算子(Deep Layer Aggregation,DLA)来改进主干网络 ResNet-34 ,从而融合来自多个层的特征,处理不同尺度的目标。

3.1 主干网络

采用ResNet-34 作为主干网络,以便在准确性和速度之间取得良好的平衡。为了适应不同规模的对象,如图2所示,将深层聚合(DLA)的一种变体应用于主干网络

与原始DLA 不同,它在低层聚合和低层聚合之间具有更多的跳跃连接,类似于特征金字塔网络(FPN)。此外,上采样模块中的所有卷积层都由可变形的卷积层代替,以便它们可以根据对象的尺寸和姿势动态调整感受野。 这些修改也有助于减轻对齐问题

3.2 物体检测分支

本方法中将目标检测视为高分辨率特征图上基于中心的包围盒回归任务。特别是,将三个并行回归头(regression heads)附加到主干网络以分别估计热图,对象中心偏移和边界框大小。 通过对主干网络的输出特征图应用3×3卷积(具有256个通道)来实现每个回归头(head),然后通过1×1卷积层生成最终目标。

  • Heatmap Head

这个head负责估计对象中心的位置。这里采用基于热图的表示法,热图的尺寸为1×H×W。 随着热图中位置和对象中心之间的距离,响应呈指数衰减。

  • Center Offset Head

该head负责更精确地定位对象ReID功能与对象中心的对齐精准度对于性能至关重要。

  • Box Size Head

该部分负责估计每个锚点位置的目标边界框的高度和宽度,与Re-ID功能没有直接关系,但是定位精度将影响对象检测性能的评估。

3.3 id嵌入分支 Identity Embedding Branch

id嵌入分支的目标是生成可以区分不同对象的特征。理想情况下,不同对象之间的距离应大于同一对象之间的距离。为了实现该目标,本方法在主干特征之上应用了具有128个内核的卷积层,以提取每个位置的身份嵌入特征。

四、损失函数

4.1 Heatmap loss

作者按照高斯分布将物体的中心映射到了heatmap上,然后使用变形的focal loss进行预测的heatmap和实际真实的heatmap损失函数的求解,公式如下:

 

 是预测的heatmap特征图,是heatmap的ground-truth。N为一个图中物体总数量。

详细解释:

4.2 Offset and Size loss

作者用了两个L1损失就实现了Offset和Size损失:

其中,N为一个图中物体总数量,s表示Size 框的大小,o表示Offset 中心点的偏差。

详细解释:

4.3 Identity Embedding Loss

FairMOT中的Embedding也是需要借助分类(按照物体ID为不同物体分配不同的类别)进行学习的。其中分类用到softmax损失。

 其中,N为一个图中物体总数量,K是类别数量。即,这部分需要对图片中每个物体进行分类识别,这里分类识别是具体认识到是指那一个物体,具有相同身份的所有对象实例都被视为一个类。

详细参考:

五、实验结果

1. 基于锚点(anchor-based)和无锚点(anchor-free)比较

表 1:在 MOT15 数据集上,基于锚点和无锚点方法在验证视频上的评估结果。

2. 多层特征聚合

 表 2:不同主干网络在 2DMOT15 数据集上的评估结果。

 表 3:主干网络对不同尺度目标的影响。

3、Re-ID 特征维度

 表 4:不同 Re-ID 特征维度在 2DMOT15 数据集上的评估结果

4、与当前最佳模型的比较

表 5:在两个数据集上与当前最佳 one-shot 跟踪器的对比结果。

参考1:https://cloud.tencent.com/developer/article/1634149

参考2:https://jishuin.proginn.com/p/763bfbd2e881

参考3:https://zhuanlan.zhihu.com/p/407851869

六、FairMOT实践

参考:https://github.com/ifzhang/FairMOT

截止2022.2,开源代码的性能,如下表所示。(MOT challenge 数据集)

DatasetMOTAIDF1IDSMTMLFPS
2DMOT1560.664.759147.6%11.0%30.5
MOT1674.972.8107444.7%15.9%25.9
MOT1773.772.3330343.2%17.3%25.9
MOT2061.867.3524368.8%7.6%13.2

曾在2D MOT15、MOT16、MOT17 和 MOT20 的所有跟踪器中排名第一,不愧是在多目标跟踪上霸榜的追踪器。

测试效果:

但是发现其速度还是不够快,后面基于TensorRT进行加速,再看看效果。 

本文直供大家参考和学习,谢谢!

以上是关于多目标跟踪算法 | FairMOT的主要内容,如果未能解决你的问题,请参考以下文章

ByteTrack实时多目标跟踪

ByteTrack实时多目标跟踪

[AI开发]基于深度学习的视频多目标跟踪实现

论文解读SortDeep-Sort多目标跟踪算法

论文解读SortDeep-Sort多目标跟踪算法

opencv 目标跟踪一定要把被跟踪的物体圈出来吗?