论文解读:DeepSort(目标跟踪)
本文来自公众号“AI大道理”
——————
论文原文:
https://arxiv.org/abs/1703.07402
SORT是一个比较简单的算法,用FrRCNN做探测,卡尔曼滤波和匈牙利算法做跟踪。缺点:
-
线性恒速运动模型可能并不精确,未考虑相机的非线性运动。
-
未考虑同一目标再次出现的重识别(Re-ID)问题。
deepSort就是在SORT的基础上进行改进,有效地减少了身份切换的数量,缓解了重识别问题。
0、摘要
简单在线实时跟踪(SORT)是一种实用的多目标跟踪方法,专注于简单有效的算法。在本文中,我们集成了外观信息来提高SORT的性能。由于这种扩展,我们能够在更长的遮挡时间内跟踪对象,有效地减少了身份切换的数量。本着原始框架的精神,我们将大部分计算复杂性置于离线预训练阶段,在那里我们在大规模的人员重新识别数据集上学习深度关联度量。在线申请过程中,我们使用视觉外观空间中的最近邻居查询。实验评估表明,我们的扩展将身份切换的数量减少了45%,在高帧率下实现了整体竞争性能。
(AI大道理:对sort进行优化了,优化后id切换数量减少了45%,这是很不错的进步。主要就是训练了一个神经网络来提取特征进行检测框内的特征相似度比较,从而判断是不是同一个目标)
1、介绍
由于物体检测的最新进展,通过检测进行跟踪已成为多物体跟踪的主要范式。在这种范式中,对象轨迹通常出现在同时处理整个批次的全局优化问题中。例如,流量网络公式和概率图形模型已经成为这种类型的流行框架。然而,由于批处理,这些方法不适用于每个时间步长都必须有目标身份的在线场景。更传统的方法是多假设跟踪(MHT)和联合概率数据关联滤波器(PDAF)。这些方法在逐帧的基础上执行数据关联。在JPDAFa中,单一状态假设是通过根据个体测量的关联可能性对其进行加权而产生的。在MHTall中,可能的假设被跟踪,但修剪方案必须用于计算的可伸缩性。这两种方法最近都在通过检测进行跟踪的过程中被重新审视场景,并显示出有希望的结果。然而,这些方法的性能伴随着计算和实现复杂性的增加。
简单在线实时跟踪(SORT)是一个简单得多的框架,它使用匈牙利方法在图像空间和逐帧数据关联中执行卡尔曼滤波,该方法具有测量边界框重叠的关联度量。这种简单的方法在高帧速率下实现了良好的性能。在MOT挑战数据集中,具有最先进的人员检测器的SORT在标准检测中的平均排名高于MHT。这不仅强调了对象检测器性能对整体跟踪结果的影响,而且从从业者的角度来看也是一个重要的见解。
SORT在跟踪精度和准确性方面实现了总体良好的性能,同时返回了相对较高数量的身份切换。这是因为所采用的关联度量只有在状态估计不确定性较低时才是准确的。因此,SORT在通过遮挡进行跟踪方面存在缺陷,因为遮挡通常出现在正视相机场景中。我们通过将关联度量替换为结合运动和外观信息的更知情的度量来克服这个问题。特别是,我们应用了一种卷积神经网络(CNN),该网络已被训练用于在大规模的人员重新识别数据集上识别行人。通过集成该网络,我们提高了对未命中和遮挡的鲁棒性,同时保持了系统易于实现、高效且适用于在线场景。我们的代码和预先训练的CNN模型公开提供,以促进研究实验和实际应用程序开发。
(AI大道理:关联度量SORT是只有一个,而且是IOU距离;而deepSort则是两个距离度量,是马氏距离和图像特征相似度余弦距离的融合。)
2、使用深度关联度量的SORT
我们采用具有递归卡尔曼滤波和逐帧数据关联的传统单假设跟踪方法。在下一节中,我们将更详细地描述该系统的核心组件。
2.1 航迹处理和状态估计
航迹处理和卡尔曼滤波框架与原始公式基本相同。我们假设一个非常一般的跟踪场景,其中摄像机未校准,并且我们没有可用的自我运动信息。虽然这些情况对过滤框架提出了挑战,但这是最近多目标跟踪基准中考虑的最常见的设置。因此,我们的跟踪场景被定义在八维状态空间(u,v,γ,h,x`,y`,γ`,h`)上,该空间包含边界框中心位置(u,v),纵横比 γ,高度h,以及它们在图像坐标中各自的速度。我们使用具有恒速运动和线性观测模型的标准卡尔曼滤波器,其中我们将边界坐标(u,v,γ,h)作为对象的直接观测值状态。
(AI大道理:SORT是七维的, (u,v,s,r,u`,v`,s`),u 和 v 代表目标中心的水平和垂直像素位置,而比例 s 和 r 分别代表目标边界框的比例(面积)和纵横比。纵横比被认为是常数。)
对于每个轨道k,我们计算自上次成功测量关联ak以来的帧数。该计数器在卡尔曼滤波器预测期间递增,并且当轨道已经与测量相关联时重置为0。超过预定义的最大年龄Amax的轨迹被视为已离开场景,并从轨迹集中删除。对于不能与现有轨道相关联的每个检测,启动新的轨道假设。这些新曲目在前三帧中被归类为暂定曲目。在这段时间里,我们希望在每个时间步骤都能成功地进行测量关联。在前三帧内未成功关联到测量的轨迹将被删除。
(AI大道理:之前SORT是一帧没有关联的数据就放弃这个轨迹,deepSort是3帧内的连续匹配被视为轨迹,而不是马上形成轨迹,Amax内都没有检测到才放弃这个轨迹,认为目标在视野内消失了。这样可以增加遮挡带来的跟踪鲁棒性。)为什么新轨迹要连续三帧命中才确认?检测的输入存在误检,轨迹的产生必须要更严格的条件。
2.2 分配问题
解决预测的卡尔曼状态和新到达的测量值之间的关联的传统方法是建立分配问题,该问题可以使用匈牙利算法来解决。在这个问题公式中,我们通过结合两个适当的度量来整合运动和外观信息。为了结合运动信息,我们使用预测的卡尔曼状态和新到达的测量值之间的(平方)马氏距离:
其中我们用(yi,Si)表示第i个轨迹分布到测量空间中的投影,用dj表示第j个检测框。Mahalanobis距离通过测量检测框距离平均轨道位置的标准偏差来考虑状态估计的不确定性。此外,使用该度量,可以通过在根据逆χ2分布计算的95%置信区间下对Mahalanobis距离取阈值来排除不太可能的关联。我们用一个指标来表示这个决定:
如果第 I 个轨道和第 j 个检测之间的关联是容许的,则该值为 1。对于我们的四维测量空间,相应的马氏阈值是 t(1) = 9.4877。
虽然当运动不确定性较低时,Mahalanobis 距离是合适的关联度量,但是在我们的图像空间问题公式中,从卡尔曼滤波框架获得的预测状态分布仅提供了对象位置的粗略估计。特别是,未说明的相机运动会在图像平面中引入快速位移,使得马氏距离成为用于跟踪遮挡的相当不完善的度量。因此,我们将第二个度量整合到分配问题中。
(AI大道理:马氏距离在运动稳定的时候,比如匀速运动的时候较为有效,因为此时卡尔曼滤波的预测可能较为准确。一旦有一些加速情况,马氏距离就不太有效了,因此引入了另外一个度量,deepSort使用了马氏距离和外观特征相似度两个度量方式)
对于每个检测框dj,我们计算具有||rj||=1的外观描述符rj。此外,我们为每个轨道k保留最后Lk=100个相关联的外观描述符的库
。然后,我们的第二度量测量外观空间中第i个轨道和第j个检测之间的最小余弦距离:(AI大道理:每个轨迹保持了历史上的100个信息,就是100帧检测目标的信息)
(AI大道理:两个向量夹角的余弦值就是余弦相似度,就是计算两个向量的点积,余弦距离就是1-余弦相似度)同样,我们引入一个二进制变量来表示根据这个度量关联是否是可接受的:
并且我们在单独的训练数据集上找到了该指标的合适阈值。在实践中,我们应用预先训练的 CNN 来计算检测框外观描述符。第 2.4 节描述了该网络的架构。
结合起来,这两种度量通过服务于分配问题的不同方面而相互补充。一方面,Mahalanobis 距离提供了关于基于运动的可能物体位置的信息,这对于短期预测特别有用。另一方面,余弦距离考虑了外观信息,当运动不太容易辨别时,这些信息对于在长期遮挡后恢复身份特别有用。为了构建关联问题,我们使用加权和来组合这两个指标:
其中,如果关联在两个度量的选通区域内,则我们称之为可容许关联:
每个度量对组合关联成本的影响可以通过超参数 λ 来控制。在我们的实验中,我们发现当有大量的摄像机运动时,设置 λ = 0 是一个合理的选择。在此设置中,关联成本项中仅使用外观信息。然而,Mahalanobis 门仍然用于根据卡尔曼滤波器所涉及的可能的目标位置来忽略不可行的分配。
(AI大道理:设置 λ = 0意味着没有利用上马氏距离,而是完全依靠外观相似度距离)
2.3. 匹配级联
我们引入一个级联来解决一系列子问题,而不是在全局分配问题中解决测量到航迹的关联。为了推动这种方法,考虑以下情况:当物体被遮挡较长时间时,随后的卡尔曼滤波器预测增加了与物体位置相关的不确定性。因此,概率质量在状态空间中展开,并且观察可能性变得不太突出。直观地说,关联度量应该通过增加测量到航迹的距离来说明概率质量的这种分布。与直觉相反,当两个轨迹竞争相同的检测时,Mahalanobis 距离有利于更大的不确定性,因为它有效地减少了任何检测的标准偏差到投影轨迹均值的距离。这是一种不希望的行为,因为它会导致磁道碎片增加和磁道不稳定。因此,我们引入了一个匹配级联,优先考虑更频繁出现的对象,以编码我们在关联似然中的概率分布概念。
清单1概述了我们的匹配算法。作为输入,我们提供轨迹T和检测D指数的集合以及最大年龄Amax。在第1行和第2行中,我们计算了关联成本矩阵和可容许关联的矩阵。然后,我们在轨道年龄n上迭代,以解决年龄增加的轨道的线性分配问题。在第6行中,我们选择在最后n帧中没有与检测相关联的轨道Tn的子集。在第7行中,我们求解Tn中的轨道与不匹配检测U之间的线性as signment。在第8行和第9行中,更新匹配和不匹配检测的集合,我们在第11行中完成后返回该集合。请注意,这种匹配级联优先考虑年龄较小的轨迹,即最近看到的轨迹。
(AI大道理:从最近的看到最远的Amax,叫级联匹配;而Amax中所有的tracks一起看就是全局的优化。从missing age=0的轨迹(即每一帧都匹配上,没有丢失过的)到missing age=30的轨迹(即丢失轨迹的最大时间30帧)挨个的和检测结果进行匹配。也就是说,对于没有丢失过的轨迹赋予优先匹配的权利,而丢失的最久的轨迹最后匹配。)
这里丢失30帧了还给机会匹配,实在是仁慈!
在最后的匹配阶段,我们在年龄n=1的未确认和不匹配轨道集上运行原始SORT算法中提出的IOU并集关联上的交集。这有助于解决突然的外观变化,例如,由于静态场景几何体的部分遮挡,并提高对错误初始化的鲁棒性。
2.4. 深度外观描述符
通过使用简单的最近邻查询而无需额外的度量学习,我们的方法的成功应用需要在实际的在线跟踪应用之前离线训练具有良好辨别能力的特征嵌入。为此,我们使用了一个CNN,该CNN已在大规模的人员重新识别数据集上进行了训练,该数据集包含1261名行人的1100000多张图像,非常适合在人员密集的环境中进行深度度量学习。
我们网络的CNN架构如表1所示。总之,我们使用了一个宽残差网络,其具有两个卷积层和六个残差块。在密集层10中计算维度128的全局特征图。最后一批和`2规范化将特征投影到单位超球面上,以与我们的余弦外观度量兼容。总的来说,该网络有2800864个参数,在Nvidia GeForce GTX 1050 mo bile GPU上,一次32个边界框的前向传递大约需要30毫秒。因此,只要有现代GPU可用,该网络就非常适合在线跟踪。虽然我们的训练过程的细节不在本文的范围内,但我们在GitHub repository 1中提供了一个预训练的模型,以及一个可用于生成特征的脚本。
(AI大道理:这是一个resnet特征提取网络,输出维度128来表示提取出来的特征,利用特征求余弦相似度作为距离度量进行数据关联的依据。)
3、实验
我们在MOT16基准上评估跟踪器的性能。该基准评估了七个具有挑战性的测试序列的跟踪性能,包括带有移动摄像机的正面视图场景以及自上而下的监控设置。作为我们跟踪器的输入,我们依赖于Yu等人提供的检测。他们在一组公共和私人数据集上训练了一个更快的RCNN,以提供卓越的性能。为了进行公平的比较,我们对相同的检测重新运行了SORT。
使用λ=0和Amax=30帧对测试序列进行评估。检测已被阈值化为0.3的置信分数。我们方法的其余参数已经在基准提供的单独训练序列上找到。
评价根据以下指标进行:
•多目标跟踪准确性(MOTA):从假阳性、假阴性和身份切换的角度总结总体跟踪准确性。
•多目标跟踪精度(MOTP):根据地面实况和报告位置之间的边界框重叠,总结总体跟踪精度。
•大部分跟踪(MT):在其寿命的至少80%内具有相同标签的地面实况跟踪的百分比。
•大部分丢失(ML):在其寿命的20%以下被跟踪的地面实况轨迹的百分比。
•身份开关(ID):地面实况轨道的报告身份发生变化的次数。
•碎片化(FM):一首曲目因缺失检测而中断的次数。
我们的评估结果如表2所示。我们的自适应成功地减少了身份开关的数量。与SORT相比,ID开关从1423个减少到781个。这大约减少了45%。同时,由于通过遮挡和未命中来保持对象身份,轨迹碎片略有增加。我们还看到,大部分被追踪的物体数量显著增加,大部分丢失的物体数量减少。总的来说,由于外观信息的整合,我们通过更长的遮挡成功地保持了身份。这也可以从我们在补充材料中提供的跟踪输出的定性分析中看出。我们的跟踪器的示例输出如图1所示。
我们的方法也是其他在线跟踪框架的有力竞争对手。特别是,在所有在线方法中,我们的方法返回的身份切换次数最少,同时保持了有竞争力的MOTA分数、跟踪片段和假阴性。报告的跟踪准确性主要受到大量误报的影响。考虑到它们对MOTA分数的总体影响,对检测应用更大的置信阈值可能会大大提高我们算法的报告性能。然而,对跟踪输出的视觉检查表明,这些假阳性大多是由静态场景几何结构下的零星检测器响应产生的。由于我们相对较大的最大允许轨迹年龄,这些轨迹更常见于物体轨迹。同时,我们没有观察到轨道在假警报之间频繁跳跃。相反,跟踪器通常在报告的对象位置生成相对稳定、静止的轨迹。我们的实现以大约20赫兹的频率运行,大约一半的时间花在了特征生成上。因此,在给定现代GPU的情况下,该系统保持计算效率并实时运行。
4、结论
我们提出了SORT的扩展,该扩展通过预先训练的关联度量合并了外观信息。由于这一扩展,我们能够在更长的遮挡时间内进行跟踪,使SORT成为最先进的在线跟踪算法的有力竞争对手。然而,该算法仍然易于实现并实时运行。
5、总结
Deep Association Metric其实就是在大型行人重识别网络上学习的一个行人鉴别网络。目的是区分出不同的行人。
很类似于典型的行人重识别网络。输出行人图片,输出一组向量,通过比对两个向量之间的距离,来判断两副输入图片是否是同一个行人。
——————
浅谈则止,细致入微AI大道理
扫描下方“AI大道理”,选择“关注”公众号—————————————————————
—————————————————————
公众号《AI大道理》征稿函mp.weixin.qq.com/s?__biz=MzU5NTg2MzIxMw==&mid=2247489802&idx=1&sn=228c18ad3a11e731e8f325821c184a82&chksm=fe6a2ac8c91da3dec311bcde280ad7ee760c0c3e08795604e0f221ff23c89c43a86c6355390f&scene=21#wechat_redirect
|
留言吧mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit&action=edit&type=77&appmsgid=100015443&isMul=1&replaceScene=0&isSend=0&isFreePublish=0&token=1875983482&lang=zh_CN
萍水相逢逢萍水,浮萍之水水浮萍!