JDE简述

引言

  多目标跟踪目的是预测视频内多个物体的运动轨迹,这个问题的主要策略是先检测后跟踪,将其分为两个步骤:Step1:检测,对单视频帧目标进行定位;Step1:数据关联,分配检测到的物体并连接到现有轨迹。这意味着系统至少需要两个计算密集型组件: detector 和embedding (re-ID) model。为了方便起见,本文将这些方法称为“分离的检测和嵌入”方法(Separate Detection and Embedding (SDE)。因此,总推理时间大致是两个分量的总和,并且将随着目标数量的增加而增加,这就给建立实时多目标跟踪系统带来了挑战。
  为了节省时间,一个可行的想法是将检测器和嵌入模型集成到单个网络中,也就是这两个任务可以共享同一组低级特征,并且避免了重复计算。联合检测器和嵌入学习的一种选择是采用Faster R-CNN,具体来说,第一阶段使用RPN网络,与Faster R-CNN保持相同,并输出检测到的边界框;第二阶段,Fast R-CNN 通过用度量学习监督取代分类监督来转化为嵌入学习模型。尽管节省了一些计算,但由于采用了两阶段设计,因此该方法的速度仍然受到限制,并且通常以不到10FPS的速度运行,这远远低于了实时要求。此外,第二阶段的运行时间也像SDE方法一样随着目标数量的增加而增加。
  本文致力于提高MOT系统的效率。 本文介绍了一种早期尝试,它可以在单一深度网络中共同学习检测器和嵌入模型(JDE)。也就是说,所提出的JDE使用单个网络来同时输出检测结果和检测到的box的相应外观嵌入。相比之下,SDE方法和两阶段方法分别由重新采样的像素(包围框)和特征映射来表征。边界框和特征映射都被输入到一个单独的re-ID模型中进行外观特征提取。图1简要说明了SDE方法、两阶段方法和提出的JDE之间的区别。
JDE简述_第1张图片
  为了构建一个高效,准确的联合学习框架,本文有意设计以下几个基础方面:训练数据,网络结构,学习目标,优化策略和验证指标。
  ①训练数据:
  首先,作者收集了六个关于行人检测和人员搜索的公开可用数据集,以形成统一的大规模多标签数据集。在这个统一的数据集中,所有行人边界框都被标记,并且一部分行人身份被标记。
  ②网络结构:
  其次,选择特征金字塔网络(FPN)作为基础框架,并讨论哪种损失函数是网络学习最佳的嵌入方法。
  ③学习目标:
  然后,将训练过程建模为具有anchor分类,框回归和嵌入学习的多任务学习问题。为了平衡每个任务的重要性,采用了与任务相关的不确定性来动态加权异构损失。
  ④验证指标:
  最后,采用以下评估指标:平均精度(AP)用于评估检测器的性能;一定误报率(FAR)下的正样本通过率(TAR)来评估嵌入的质量;总体MOT准确性由CLEAR指标评估,尤其是MOTA指标。

相关工作

  多目标跟踪的最新进展可分为以下几个方面:
  ①将关联问题建模为图上某种形式的优化问题;
  ②通过端到端的神经网络对关联过程进行建模;
  ③寻求通过检测进行跟踪之外新的跟踪模式。

方法

JDE简述_第2张图片
  如图2所示,JDE采用了FPN的结构,输入视频帧首先通过主干网络进行前向传递,以获得三个尺度的特征映射,即分别具有1/32、1/16和1/8下采样率的尺度,然后,将最小尺寸的特征图(语义上的最强特征图)上采样(变得和上一级一样大),与第二小的特征图通过skip connection进行融合,对其他比例的特征图也是同样操作。最后,在所有三个尺度上将预测头加到融合特征图上。预测头由几个堆叠的卷积层组成,并输出大小为(6A + D)×H×W的密集预测图,其中A是分配给该尺度的anchor模板的数量,D是嵌入的维数。密集预测图分为三个部分:
  1)尺寸为2A×H×W的检测框分类结果;
  2)尺寸为4A×H×W的检测框回归系数;
  3)尺寸D×H×W的密集嵌入映射。
  JDE的目标是在一个前向通道中同时输出目标的位置和外观嵌入。第一个目标要求模型准确地检测目标。第二个目标要求外观嵌入具有以下属性:连续帧中同一标识的观测之间的距离应小于不同标识之间的距离,距离度量可以是欧氏距离或余弦距离。从技术上讲,如果这两个目标都得到满足,即使是一个简单的关联策略,例如匈牙利算法,也会产生良好的跟踪结果。
  针对第一个目标要求,JDE第一个检测分支类似于标准RPN,这里做出了两个修改。首先,根据数量,比例和长宽比重新设计锚,以适应目标。根据共同的先验,所有锚点的长宽比均设置为1:3,锚点模板的数量设置为12,使得每个尺度的A = 4,锚点的尺度(宽度)范围为11-512。其次,用于前景/背景分配的双重阈值选择适当的值很重要。通过可视化,我们确定IOU> 0.5大致确保了是前景,这与通用对象检测中的通用设置一致。另一方面,IOU <0.4的框应被视为背景,而不是一般情况下的0.3。我们的初步实验表明,这些阈值可有效抑制虚假误报,这种警报通常发生在重度遮挡下。
  检测的学习目标具有两个损失函数,即前景/背景分类损失Lα和边界框回归损失Lβ。 Lα被公式化为交叉熵损失,Lβ被公式化为smooth-L1损失。回归目标的编码方式与Faster R-CNN相同。
  第二个目标是度量学习问题,即学习一个嵌入空间,其中相同身份的实例彼此接近,而不同身份的实例相距甚远。为了实现这一目标,一个有效的解决方案是使用triplet loss(《Facenet: A unified embedding for face recognition and clustering.》)。
在这里插入图片描述
  Triplet loss训练可能出现不稳定和收敛缓慢的情况,为了解决这些问题,《Improved deep metric learning with multi-class n-pair loss objective》建议在triplet loss 的平滑上边界进行优化。
在这里插入图片描述
  这种平滑上边界的损失函数也可以写作:
在这里插入图片描述
  这种形式和交叉熵损失函数很像:
在这里插入图片描述
  本文选择交叉熵损失作为嵌入学习的目标。
  JDE中每个预测头的学习目标可以建模为多任务学习问题,联合目标可以写成每个尺度和每个分量的加权线性损失和:
在这里插入图片描述
  关联算法不是本文的重点,本文只是介绍一种简单而快速的关联策略,与JDE结合使用。对于给定的视频,JDE模型处理每个帧并输出bboxes和相应的appearance embedding,因此,我们计算观测值的embedding和先前存在的轨迹池的embedding之间的affinity矩阵。使用匈牙利算法将观测值分配给tracklets;卡尔曼滤波用于平滑轨迹并预测先前轨迹在当前帧中的位置。如果分配的观测值在空间上与预测位置相距太远,则该分配将被拒绝。然后tracklet的embedding更新如下:
在这里插入图片描述
  如果没有任何观测值分给tracklet,则该tracklet标记为丢失,如果丢失的时间大于给定的阈值,则该tracklet将从池中删除,或者在分配步骤中重新找到。

实验

  在小数据集上执行实验可能会导致有偏差的结果,并且当将相同的算法应用于大规模数据集时,结论可能不成立。因此,本文构建了一个大规模的训练集,将六个公开可用的行人检测、运动检测和人员搜索数据集放在一起。这些数据集可以分为两种类型:只包含边界框注释的数据集,以及同时包含边界框和标识注释的数据集。
  包含边界框注释的数据集有ETH dataset(《A mobile vision system for robust multi-person tracking.》)和CityPersons (CP) dataset(《Citypersons: A diverse dataset for pedestrian detection》)。
  同时包含边界框和标识注释的数据集有CalTech (CT)dataset(《Pedestrian detection: A benchmark.》)、MOT-16 (M16) dataset(《Mot16: A benchmark for multiobject tracking》)、CUHK-SYSU (CS) dataset(《Joint detection and identification feature learning for person search》)、PRW dataset(《Person re-identification in the wild》),联合训练集的统计数据如表1所示。
JDE简述_第3张图片
  评价指标有:检测准确性,embedding的判别能力以及整个MOT系统的跟踪性能。
  本文将DarkNet-53用作JDE中的骨干网络。用了多种数据增强技术,例如随机旋转,随机缩放和色彩抖动,以减少过拟合。最后,将增强图像调整为固定分辨率。
  ①外观嵌入学习的三个损失函数的比较。本文首先比较训练的外观嵌入与交叉熵损失,triplet损失及其上限变量的判别能力,结果如表3所示:
JDE简述_第4张图片
  ②不同损失加权策略的比较。本文实施了三种损失加权策略。第一种是损失归一化方法(Loss.Norm),其中损失由其移动平均线的倒数加权。第二个是“MGDA-UB”算法,最后一个是上一节中介绍的不确定性权重策略。如图3所示:
JDE简述_第5张图片
  ③与SDE方法的比较:以跟踪精度(MOTA)和运行时间(FPS)作为评价指标,比较结果如图4所示;
JDE简述_第6张图片
  ④与state-of-the-art的MOT模型进行比较。比较了私有检测器下的最新MOT方法,包括DeepSORT2(《Simple online and realtime tracking with a deep association metric》),RAR16wVGG(《Recurrent autoregressive networks for online multi-object tracking》),TAP(《Online multi-target tracking with tensor-based high-order graph matching》),CNNMTT(《Multi-target tracking using cnn-based features: Cnnmtt.》)和POI(《Multiple object tracking with high performance detection and appearance feature》)。比较情况如表3所示:
JDE简述_第7张图片

总结

  在之前的多目标跟踪算法中,惯用的策略就是先检测,得到视频中目标bbox,然后再考虑前后帧的匹配策略,为了更好的匹配效果,一般匹配中都会加入Re-ID。本文提出了JDE(Joint Detection and Embedding )模型,把Re-ID等同于embedding。JDE的基础检测模型,用了FPN结构,一共有三层,每一层都会接出预测头(Predicion Head),而预测头除了常规的分类和定位分支外,会加上一个embedding分支,这个分支后续用来做Re-ID。但我对于embedding还是了解不多,还有这篇文章最后还是和sort一样,利用匈牙利算法和卡尔曼滤波进行关联匹配,那么其还是先检测后匹配,和我一开始理解的检测跟踪一体化还是不一样。
  整体过程就是首先计算出所有的预测框,根据阈值删除一些预测框,利用NMS找出最优预测框,改变检测结果大小,调整框大小位置,添加新的检测器用于保存未确认目标和track,把当前跟踪track与丢失track结合起来,使用卡尔曼滤波算法预测当前位置,计算检测目标和跟踪池中的距离,匹配跟踪目标和检测目标,如果跟踪目标运动,那么继续跟踪目标,没有则将其放入跟踪列表中,根据当前帧预测下一帧,通过IOU匹配重合度最高的检测对象,如果在跟踪池中没有检测出对象,则放入丢失跟踪列表,使用前一帧处理不确定跟踪目标,如果检测出新目标,重新初始化进行跟踪,如果跟踪对象消失了好几帧,则从跟踪列表中移除,然后更新跟踪列表和丢失跟踪列表。

你可能感兴趣的:(目标跟踪,深度学习,人工智能)