前言:目前人流量统计中,往往能够检测摄像头视频中指定区域进出人数,仅仅使用目标检测算法有些困难,因此,打算入坑目标跟踪,利用跟踪算法来重新考虑人流量统计这个问题。目前多目标跟踪的最先前沿使用GCN(图卷积神经网路),循环神经网络(Transformer.GRU)。不过本文的出发点基于anchor-free框架,针对Re-ID提出提升方法Multi-Layer Aggregation,同时指出使用anchors带来的ambiguities问题。
论文地址:https://arxiv.org/pdf/2004.01888v2.pdf
代码地址:https://github.com/ifzhang/FairMOT
目标检测:object detection和 再识别:re-identification是多目标跟踪的核心组成部分,近年来取得了显著的进展。然而,很少有人关注在单个网络中完成这两项任务来提高推理速度。
性能表现:
作者提出的simple baseline在公开数据集上的表现超过了state-of-arts,并且具有可以达到30FPS的速度。
作者在尝试将object detection和re-identification结合在一起失败之后,从失败的结果中分析原因,得到了对跟踪结果至关重要的3个因素:
Anchor don’t fit Re-ID
目前one-shot跟踪器都是基于anchors,它们是从object detection框架中修改得到的。但是作者指出anchors并不适合去学习Re-ID特征
anchors不适合学习Re-ID特征的原因:
首先,很多anchors,对应着不同的image patches,可能用于去估计相同的目标的identity,这会造成网络严重的ambiguities。这里博主理解的意思是对于同一个目标,会产生很多的预测框,而Re-Identification是基于每一个预测bounding boxes获取特征的,此时,在anchor-based的方法中,就会出现一个目标对应多个预测bounding boxes(作者希望在同一个网络中实现object detection和re-identification,而anchor-based的方法中往往使用NMS做后处理来筛出多余的预测框,在网络内部无法实现一个目标和一个bounding box对应上,从而导致Re-identification得到了若干个结果,从而产生ambiguities问题)。
接着,使用anchors的第二个问题是:特征图往往进行了8倍下采样来balance效率和速度,这对于目标检测来说是可以接受的,但是对于ReID来说过于coarse,the object centers may not align with the features extracted at coarse anchor locations for predicting the object’s identity
作者这里将MOT问题看成是pixel-wise的关键点(object center)估计问题
Multi-Layer Feature Aggregation(多层特征的聚合)
Multi-Layer Feature Aggregation对于MOT来说是非常重要的,Re-ID特征需要利用low-level和high-level特征来容纳小目标和大目标。作者实验中发现:
Multi-Layer Aggregation is helpful to reduce identity switches for the one-shot methods due to the improved ability to handle scale variatioins
然而这种提升对于two-step 方法是less significant,这是由于在crop和resize操作之后,目标会有相似的scales
ReID特征的维度
之前的ReID方法往往学习一个高维特征,并在高维特征上取得了一个promising的结果,然而,我们发现对于MOT来说,低维特征实际上更好,因为它们和ReID相比来说有更少的训练图像,学习低维特征有利于降低模型过拟合的风险,并且提高跟踪的鲁棒性。
作者希望将目标检测任务和re-Identification任何在单个网络中实现从而获得更快的inference速度,但是在整合过程中遇到问题,the ID switches increases a lot,基于此,作者分析了将目标检测和重识别整合到一起存在的问题,基于这些思路来进行网络的设计。
作者他们尝试在单个网络中同时加入object detection和re-identification,但是没能得到一个好的结果,他们分析原因为:re-identification分支没能够被很好地学习。并且整理出3个利于跟踪的要素:
作者提出方法的一个整体框架如上图所示,首先基于一个anchor-free的方法在high-resolution特征图上进行object centers的一个估计。消除掉anchors能够缓解ambiguity问题,并且使用高分辨率的特征图能够更好地对齐目标的中心。
作者使用一个parallel 分支用于估计pixel-wise Re-ID特征用来预测目标的id,这里比较特别的是,作者使用了一个low-dimensional Re-ID特征,不仅减少了计算时间,而且提高了特征匹配的鲁棒性。
作者为backbone网络配置了Deep Layer Aggregation 操作用于融合多层的特征,从而处理不同尺度的目标。
作者使用anchor-free的方法,用于目标检测和identity embedding,从而显著地提升了跟踪效率。
作者将目标检测看成high-resolution feature map基于关键点(center-point)的一个regression问题,并且使用了3个parallel regression heads连接到backbone的输出上,分别去估计heatmaps,bounding box sizes,object center offsets。每一个head是通过一个 3 × 3 3 \times 3 3×3的带有256个通道的卷积,接着跟着一个 1 × 1 1 \times 1 1×1的卷积层产生了最后的目标。
这里identity Embedding branch的作用是生成features 用于区分不同的目标,理想情况下,不同的objects之间的距离应当比相同object之间的距离要大,作者在backbone特征上,对于每一个location使用128个核的卷积来提取identity embedding features。
输出结果为 E ∈ R 128 × W × H \mathbb E \in R^{128 \times W \times H} E∈R128×W×H,在特征图 ( x , y ) (x,y) (x,y)位置的identity embedding feature为 E x , y ∈ R 128 \mathbb E_{x,y} \in R^{128} Ex,y∈R128。
我们有了object detection 结果以及identity embeddings之后,作者是怎么来执行bbox跟踪呢?
Network Inference
网络输入采用 1088 × 608 1088 \times 608 1088×608大小的图像,这是和JDE中的工作相同,在预测的heatmap上采用了非极大抑制(NMS)用于提取peak关键点,我们保留那些heatmap分数超过一个阈值的locations,然后我们在location位置同样预测出来offsets以及box sizes,同时在locations位置提取预测的identity embeddings
Online Box Linking
作者这里使用了一个标准的在线跟踪算法,
首先,根据第一帧中的估计boxes来初始化tracklets,
接着在随后的帧中,作者根据Re-ID特征以及IoU的结果将boxes link到已知的轨迹上
作者还使用Kalman Filter来预测在接下来frame中轨迹的位置。如果预测位置和链接的detection太原,将相应的成本设置为无穷大,可以防止detection和large motion link到一起
如果
数据集
作者通过组合6个公共数据集的训练图像来构建一个大的训练数据集,使用ETH和CityPerson数据集来训练detection分支,使用CalTech,MOT17,CUHK-SYSU以及PRW数据集来训练bounding box和identity annotations。由于在ETH中出现的一些视频同时在MOT16数据集中出现,为了公平起见,从ETH中将这些视频移除,在一些消融实验中,我们建议在较小的数据集上训练我们的模型。测试集采用的是:2DMOT15,MOT16,MOT17以及最新发布的MOT20
评价指标
在COCO数据集上预训练模型用于初始化我们的模型,使用Adam训练了30个epoch,初始学习率1e-4,在第20个epoch和27个epoch学习率衰减到1e-5以及1e-6。batchsize设置为12,使用标准的数据增强技术:旋转,尺度变换以及color jittering,输入图像resized到 1088 × 608 1088 \times 608 1088×608,4倍下采样,输出特征图的分辨率为 272 × 512 272 \times 512 272×512,在2块2080上训练了30个小时。
作者将detection branch改成了anchor-based,其他地方不进行调整,构建了一个anchor-based的baseline。并且这个模型是在大型训练数据集上进行训练的,在小型数据集上训练时,anchor-based方法会得到一个非常差的结果。
从上图中可以看出,anchor-free的方法在各个方面都要优于anchor-based方法。在MOTA分数上,anchor-free方法相比于anchor-based方法在Re-ID上具有明显的优势,主要原因是anchors和目标中心的mis-alignment导致了severe ambiguities。
步长为4的表现,相比于步长为2的表现性能要相差很多,这是因为:当使用高分辨率的特征图时,会有更多的unaligned positive anchors,使得网络训练更加困难,作者这里没有显示步长为2 的anchor-based的方法,主要是因为anchor数量太多超显存了。
并且作者这里将不同模型学习到的Re-ID特征使用t-SNE进行了plot,如下图所示
在上图中,同一个人使用相同的颜色点进行表示。并且从图中观察到对于anchor-based方法,不同的人(identities)混到了一起,而对于anchor-free方法来说,他们是比较分得开的。
为了评估Multi-Layer Aggregation的影响,作者基于ResNet,FPN,HRNet以及DLA-34网络进行实验,其他的因素保持不变,使用特征图的步长为4,在普通ResNet基础上增加了3个撒谎给你采样操作,以得到stride为4的特征图,接着将2DMOT15数据集划分成5个训练视频和6个验证视频,这里并没有使用大规模数据集进行训练。
DLA-34是基于ResNet-34的,取得了最佳的表现,使得ID switches从372降低到136上,说明了Multi-Layer Aggregation能够提升Re-ID的能力。
通过比较ResNet34和ResNet50,我们可以发现,使用更大的网络能够提升整体的MOTA分数,但是这个的主要提升原因在于AP的提升,而Re-ID并没有能够从更大的网络中获得性能提升,说明使用Multi-Layer Aggregation对于Re-ID性能的提升,相比于使用更加复杂的网络来说更加具有优势。
同时作者使用HRNet以及FPN来和Multi-Layer Aggregation进行对比,对于HRNet和DLA-34来说,提升的不仅仅是detection部分,同时提升了Re-ID特征提取部分。
同时对不同的backbone网络得到的Re-ID特征进行了可视化
从可视化结果来看,DLA-34确实取得了比较有区分度的Re-ID特征。
之前的工作通常使用512维度的Re-ID特征,并没有进行Ablation实验,然而,在我们的实验中发现了特征的维度实际上起着重要的作用,一般来说,为了避免过拟合,对高维的Re-ID特征的训练需要大量的训练图像,这里由于无法使用更多丰富的重识别数据集,因此,作者这里通过降低Re-ID特征维度来减少对数据的依赖。
当维度从512降低到1228时,TPR不断提高,说明了使用低维特征能够带来一定的优势,然而继续降低的话,Re-ID特征的对于person的代表能力降低,使得不同person之间的区分度降低,不过对于MOTA分数的影响较小,此外,降低Re-ID特征维度能够提升inference速度,不过需要注意的是使用低维Re-ID特征仅仅是作者在数据量不够情况下的一种权宜之计,随着训练数据的增加,特征维度之间的影响会越来越小。
我们和state-of-the-arts的比较包括one-shot 方法以及two-step 方法
one-shot方法
目前one-shot方法仅仅有两种公开的works,JDE和TrackRCNN,他们联合执行object detection以及identity feature embedding,不过在TrackRCNN中,需要额外的分割annotations用于分割任务,因此,在本文中,仅仅和JDE进行比较
为了进行公平比较,作者使用2DMOT15-train和MOT16-test用于验证,结果验证了anchor-free方法相对于以往anchor-based方法的有效性。两种方法的推理速度接近视频速率,FairMOT方法更快
two-step 方法
分别在2DMOT15,MOT16,MOT17以及MOT20上报告我们的结果,我们的方法在所有online trackers中rank first。并且我们在速度上要远超于目前two-step的state-of-arts的方法。
作者从研究以前方法不能达到两步方法可比结果开始,从中发现使用anchor是导致object detection和Re-ID性能退化的原因,因为大量anchors可能对应着一个目标的不同parts,从而估计相同的identity导致网络训练中存在着ambiguities问题。作者基于anchor-free框架提出了一种简单方法,并达到了state-of-arts的水平。
通常采用两个分开的模型:
- detection model 用于定位图像中的感兴趣bounding boxes
- association model首先提取每一个bounding box的Re-Identification(Re-ID),然后基于特征以及特定的度量方式将其links到某一条已知的tracks。
目前State-of-art使用两个分开的模型存在的问题
不能以视频速率执行推理,因为两个网络不共享特征
Two-Step MOT方法
方法思路
首先,使用CNNdetectors来localize图像中所有感兴趣的目标。
接着根据bboxes对图像进行crop,并将crop下来的bounding boxes输入到identity embedding network用于extract Re-ID特征,然后将boxes link到一起从而形成multiple tracks,
在进行box link的时候,首先根据Re-ID特征以及IoU计算一个cost matrix,接着使用Kalman Filter以及Hungarian algorithm(匈牙利算法)来完成link任务。一些少数的工作中使用更加复杂的更加复杂的关联策略:比如group models和RNNs
Two-Step方法的优势
分成两个任务,可以为每一个任务选择一个最合适的模型,不需要做出妥协,并且可以根据the 预测bounding boxes来对图像进行crop和resize,这有助于处理目标的尺度变化问题。
Two-Step方法劣势
目标检测和re-identification通常需要大量的计算,两个任务之间并没有共享,导致inference速率较低。
one-shot MOT的目标在于通过在object detection和re-identification通过共享most of the computation来减少inference时间从而同时实现object detection以及identity embedding(Re-ID features)
one-shot方法存在的问题是:one-shot方法的tracking accuracy 通常lower than two-step方法,作者发现这是因为所学的Re-ID特征不是最优的,这样会导致a large number of ID switches,然后作者更深一步地分析了原因:发现在anchors处提取的embedding features和object centers是不对齐(not aligned)的,导致了严重的ambiguities。