deepsort:论文翻译

AI浩 AI浩     2023-03-04     544

关键词:

文章目录


论文链接:https://arxiv.org/pdf/1703.07402.pdf

摘要

简单在线实时跟踪(SORT)是一种实用的多目标跟踪方法,专注于简单、有效的算法。在本文中,我们集成外观信息来提高SORT算法的性能。由于这一扩展,我们能够通过较长时间的遮挡跟踪对象,有效地减少了身份开关的数量。在原始框架的精神下,我们将大量的计算复杂性放在离线预训练阶段,在这个阶段我们学习了大规模人员再识别数据集上的深度关联度量。在在线应用过程中,我们使用可视化外观空间中的最近邻居查询建立测量到跟踪的关联。实验评估表明,我们的扩展将身份开关的数量减少了45%,在高帧速率下实现了整体竞争性能。

索引术语-计算机视觉,多目标跟踪,数据关联

1、简介

随着目标检测技术的发展,基于检测的跟踪已成为多目标跟踪领域的主流。在这个范例中,对象轨迹通常是在一个全局优化问题中发现的,该问题一次处理整个视频批次。例如,流网络公式[1,2,3]和概率图形模型[4,5,6,7]已经成为这种类型的流行框架。但是,由于批处理的原因,这些方法不适用于在线场景,因为每个时间步骤都必须有一个目标标识。更传统的方法是多假设跟踪(MHT)[8]和联合概率数据关联过滤器(JPDAF)[9]。这些方法在逐帧的基础上执行数据关联。在JPDAF中,单个状态假设是通过对单个测量值的关联可能性进行加权而生成的。在MHT中,所有可能的假设都被跟踪,但为了计算的可处理性,必须应用修剪方案。这两种方法最近在检测跟踪场景中被重新使用[10,11],并显示出有前途的结果。然而,这些方法的性能增加了计算和实现的复杂性。

简单在线和实时跟踪(SORT)[12]是一个更简单的框架,它在图像空间中执行卡尔曼滤波,使用匈牙利方法进行逐帧数据关联,并使用关联度量来测量边界框重叠。这种简单的方法在高帧速率下获得了良好的性能。在MOT挑战数据集[13]上,具有最先进的人员检测器[14]的SORT在标准检测上的平均排名高于MHT。这不仅强调了目标检测器性能对整体跟踪结果的影响,而且从从业者的角度来看也是一个重要的见解。

虽然在跟踪精度和准确性方面实现了良好的总体性能,但SORT返回了相对较高的身份切换数量。这是因为所采用的关联度量只在状态估计不确定性较低时才准确。因此,SORT在通过遮挡进行跟踪方面存在缺陷,因为遮挡通常出现在正面视角的相机场景中。我们通过将关联度量替换为结合了运动和外观信息的更有信息的度量来克服这个问题。特别是,我们应用了卷积神经网络(CNN),该网络经过训练,可以在大规模的人再识别数据集上识别行人。通过集成该网络,我们提高了对遗漏和遮挡的鲁棒性,同时保持系统易于实现,高效,并适用于在线场景。我们的代码和预训练的CNN模型是公开的,以促进研究实验和实际应用开发。

2、利用深度关联度量进行排序

我们采用传统的单假设跟踪方法,递归卡尔曼滤波和逐帧数据关联。在下一节中,我们将更详细地描述该系统的核心组件。

2.1、轨迹处理和状态估计

轨迹处理和卡尔曼滤波框架与[12]中的原始公式基本相同。我们假设一个非常一般的跟踪场景,摄像机是未校准的,我们没有可用的自我运动信息。虽然这些情况对过滤框架构成了挑战,但它是最近多对象跟踪基准测试[15]中考虑的最常见的设置。因此,我们的跟踪场景是在八维状态空间 ( u , v , γ , h , x ˙ , y ˙ , γ ˙ , h ˙ ) (u, v, \\gamma, h, \\dotx, \\doty, \\dot\\gamma, \\doth) (u,v,γ,h,x˙,y˙,γ˙,h˙),包含边界框中心位置 ( u , v ) (u, v) (u,v),长宽比 γ \\gamma γ,高度h,以及它们在图像坐标中的速度。我们使用一个标准的卡尔曼滤波器与恒速度运动和线性观测模型,其中我们取边界坐标 ( u , v , γ , h ) (u, v, \\gamma, h) (u,v,γ,h)作为对物体状态的直接观察。

对于每个轨道k,我们计算自上次成功测量关联ak以来的帧数。该计数器在卡尔曼滤波预测期间递增,并在跟踪与测量相关联时重置为0。超过预定最大Amax时间的轨迹被认为已经离开场景并从轨迹集中删除。对于每一个不能与现有轨迹相关联的检测,都会启动新的轨迹假设。这些新的跟踪被归类为初步在前三帧。在此期间,我们希望在每个时间步都有一个成功的度量关联。在前三帧内未成功关联到测量的轨道将被删除。

为了整合运动信息,我们使用预测卡尔曼状态和新到达的测量值之间的(平方)马氏距离:
d ( 1 ) ( i , j ) = ( d j − y i ) T S i − 1 ( d j − y i ) (1) d^(1)(i, j)=\\left(\\boldsymbold_j-\\boldsymboly_i\\right)^\\mathrmT \\boldsymbolS_i^-1\\left(\\boldsymbold_j-\\boldsymboly_i\\right) \\tag1 d(1)(i,j)=(djyi)TSi1(djyi)(1)
其中,我们用 ( y i , S i ) (\\boldsymboly_i,\\boldsymbolS_i) (yi,Si)表示第i个轨道分布到测量空间的投影,用 d j \\boldsymbold_j dj表示第j个检测框。马氏距离通过测量检测距离平均轨迹位置有多少个标准差来考虑状态估计的不确定性。此外,使用这一指标,可以通过在反向χ2分布计算的95%置信区间对马氏距离进行阈值,从而排除不太可能的关联。我们用一个指标来表示这个决定
b i , j ( 1 ) = 1 [ d ( 1 ) ( i , j ) ≤ t ( 1 ) ] (2) b_i, j^(1)=\\mathbb1\\left[d^(1)(i, j) \\leq t^(1)\\right] \\tag2 bi,j(1)=1[d(1)(i,j)t(1)](2)

如果第i个轨道和第j个检测之间的关联是可接受的,则计算为1。对于我们的四维测量空间,相应的马氏阈值是 t ( 1 ) t^(1) t(1) = 9.4877。

当运动不确定性较低时,马氏距离是一个合适的关联度量,在我们的图像空间问题公式中,从卡尔曼滤波框架中获得的预测状态分布仅提供了物体位置的粗略估计。特别是,未解释的摄像机运动可以在图像平面中引入快速位移,使得马氏距离成为通过遮挡跟踪的一个相当不知情的度量。因此,我们将第二个度量集成到分配问题中。对于每个边界框检测 d j \\boldsymbold_j dj,我们用 ∥ r j ∥ = 1 \\left\\|\\boldsymbolr_j\\right\\|=1 rj=1计算一个外观描述符 r j \\boldsymbolr_j rj。此外,我们为每个轨道k保留最后 L k = 100 L_k=100 Lk=100个相关外观描述符的图库 R k = r k ( i ) k = 1 L k \\mathcalR_k= \\left\\\\boldsymbolr_k^(i)\\right\\_k=1^L_k Rk=rk(i)k=1Lk。然后,我们的第二个指标测量外观空间中第i个轨道和第j个检测之间的最小余弦距离:
d ( 2 ) ( i , j ) = min ⁡ 1 − r j T r k ( i ) ∣ r k ( i ) ∈ R i . (3) d^(2)(i, j)=\\min \\left\\1-\\boldsymbolr_j^\\mathrmT \\boldsymbolr_k^(i) \\mid \\boldsymbolr_k^(i) \\in \\mathcalR_i\\right\\ . \\tag3 d(2)(i,j)=min1rjTrk(i)rk(i)Ri.(3)

再次,我们引入了一个二元变量来表示根据这个度量是否允许关联
b i , j ( 2 ) = 1 [ d ( 2 ) ( i , j ) ≤ t ( 2 ) ] (4) b_i, j^(2)=\\mathbb1\\left[d^(2)(i, j) \\leq t^(2)\\right] \\tag4 bi,j(2)=1[d(2)(i,j)t(2)](4)
我们在一个单独的训练数据集中为这个指标找到一个合适的阈值。在实践中,我们应用预先训练好的CNN来计算边界框外观描述符。该网络的结构将在2.4节中描述。

结合起来,这两个度量标准通过服务于分配问题的不同方面而相互补充。一方面,马氏距离提供了基于运动的可能物体位置的信息,这对短期预测特别有用。另一方面,余弦距离考虑的外观信息是特别有用的恢复身份后,长期咬合,当运动的区别不大。为了构建关联问题,我们使用加权和将两个指标结合起来
c i , j = λ d ( 1 ) ( i , j ) + ( 1 − λ ) d ( 2 ) ( i , j ) (5) c_i, j=\\lambda d^(1)(i, j)+(1-\\lambda) d^(2)(i, j) \\tag5 ci,j=λd(1)(i,j)+(1λ)d(2)(i,j)(5)

我们称一个关联为可接受的,如果它在两个指标的门控区域内:
b i , j = ∏ m = 1 2 b i , j ( m ) . (6) b_i, j=\\prod_m=1^2 b_i, j^(m) . \\tag6 bi,j=m=12bi,j(m).(6)

通过超参数λ可以控制各指标对组合关联成本的影响。在我们的实验中,我们发现当有大量的相机运动时,设置λ = 0是一个合理的选择。在此设置中,关联成本项中只使用外观信息。然而,马氏门仍然被用来忽略基于卡尔曼滤波器推断的可能目标位置的不可行分配。

2.3、匹配的级联

本文引入了一个级联来解决一系列子问题,而不是在全局分配问题中解决测量到跟踪的关联。为了激励这种方法,考虑以下

sort+deepsort

SORT+DeepSORT1.简介1.1评价指标1.2SORT功能1.3DeepSORT功能1.4实现方案2.卡尔曼滤波(KalmanFilter:运动预测)3.匈牙利算法(HungarianAlgorithm:数据关联)3.1分配问题(AssignmentProblem)3.2匈牙利算法(又 查看详情

自定义ava数据集及训练与测试完整版时空动作/行为视频数据集制作yolov5,deepsort,viammaction,slowfast(代码片段)

前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至2022年4月底。我已经将这篇博客的内容写为论文,上传至arxiv:https://arxiv.org/pdf/2204.10160.pdf欢迎大家指出我论文中的问题,特别是语法与用词问题在github上&#... 查看详情

多目标跟踪算法|deepsort(代码片段)

前言本文分享多目标跟踪算法的经典算法DeepSort,它是一个两阶段的算法,达到实时跟踪效果,曾被应用于工业开发。DeepSort是基于Sort目标跟踪进行的改进,它引入深度学习模型,在实时目标跟踪过程中,... 查看详情

多目标跟踪c++实现支持deepsort和bytetrack(代码片段)

多目标跟踪C++实现支持deepsort和bytetrackflyfish文章目录多目标跟踪C++实现支持deepsort和bytetrack前言deepsortv1.21使用方法deepsortv1.1版本更新说明依赖的库文件下载使用方法1onnxruntime2模型配置3主函数扩展方式前言代码采用C&#... 查看详情

用c++部署yolov5+deepsort+tensorrt实现目标跟踪(代码片段)

...掘金创作之路。​一、参考资料Jetson系列——基于yolov5和deepsort的多目标头部识别,跟踪,使用tensorrt和c++加速二、相关介绍2.1重要说明==该项目能部署在Jetson系列的产品,也能部署在X86服务器中。==2.2项目结构.├──assets│└─... 查看详情

视频实时行为检测——基于yolov5+deepsort+slowfast算法(代码片段)

...、核心功能设计二、核心实现步骤1.yolov5实现目标检测2.deepsort实现目标跟踪3.slowfast动作识别三、核心代码解析1.参数2.主函数3.将结果保存成视频总结前言前段时间打算做一个目标行为检测的项目,翻阅了大量资料,也借... 查看详情

视频实时行为检测——基于yolov5+deepsort+slowfast算法(代码片段)

...、核心功能设计二、核心实现步骤1.yolov5实现目标检测2.deepsort实现目标跟踪3.slowfast动作识别三、核心代码解析1.参数2.主函数3.将结果保存成视频总结前言前段时间打算做一个目标行为检测的项目,翻阅了大量资料,也借... 查看详情

深度学习和目标检测系列教程21-300:deepsorts测试小车经过的时间和速度(代码片段)

@Author:RunsendeepDeepSortDeepSort是一种用于跟踪目标的模型,为每个目标分配ID,为每一个不同的类别分配label。在DeepSort中,过程如下。使用YOLO计算边界框(检测)使用Sort(卡尔曼滤波器)和ReID... 查看详情

目标跟踪实战deepsort+yolov5(上)

文章目录前言算法简介sort算法deepsort项目结构前言今天的主要目的还是快速上手目标跟踪,先前的话我是简单说了一下卡尔曼滤波,然后由于博客的问题,没有说完。本来是想做一个系列的,但是很难整理,... 查看详情

yoloyolov5+deepsort实现mot评估(开源数据集+自定义数据集)(代码片段)

引言YOLOv5+DeepSort实现目标跟踪,并利用MOTChallengeEvalKit实现多目标跟踪结果的评估。YOLOv5+DeepSort实现目标跟踪可以参考笔者的【YOLOv5】yolov5目标识别+DeepSort目标追踪实现步骤1安装MATLAB安装MATLABMATLAB是一款商业数学软... 查看详情

ubuntu部署deepsort目标跟踪算法,无人车/无人机应用(代码片段)

🍉1、算法简介DeepSort是对SimpleOnlineandRealtimeTracking(Sort)的扩展,它通过预先训练的深度关联度量来整合外观信息。使用视觉外观空间中的最近邻查询来建立测量到跟踪的关联,能够通过更长时间的遮挡来跟... 查看详情

自定义ava数据集及训练与测试完整版时空动作/行为视频数据集制作yolov5,deepsort,viammaction,slowfast(代码片段)

...裁剪4.3视频抽帧4.4整合与缩减帧4.5不整合的缩减5yolov5与deepsort安装5.1安装5.2对choose_frames_all进行检测6生成dense_propo 查看详情

deepsort会生成结果的txt文件吗

参考技术Adeepsort会生成结果的txt文件。拓展资料:这不是yolo3的问题了,这要看你常规代码能力够不够。而且你说的yolo3是代码是很泛泛的东西,因为yolo3已经有好多版本了。你要去找模型的输出结果。一般模型都有训练和预测两... 查看详情

跟踪算法-deepsort详细简介(代码片段)

目录跟踪的基本思想跟踪框与检测框卡尔曼滤波算法---预测匈牙利算法----匹配对于目标跟踪,前提是能够对单张图片中的车辆进行检测,从而知道图片中车辆的位置,根据连续的图像中目标位置的轨迹预测,从而... 查看详情

deepsort

...更稳定)策略,即基于目标检测的结果来进行目标跟踪。DeepSORT运用的就是这个策略,上面的视频是DeepSORT对人群进行跟踪的结果,每个bbox左上角的数字是用来标识某个人的唯一ID号。这里就有个问题,视频中不同时刻的同一个人... 查看详情

深度学习和目标检测系列教程21-300:deepsorts测试小车经过的时间和速度(代码片段)

@Author:RunsendeepDeepSortDeepSort是一种用于跟踪目标的模型,为每个目标分配ID,为每一个不同的类别分配label。在DeepSort中,过程如下。使用YOLO计算边界框(检测)使用Sort(卡尔曼滤波器)和ReID... 查看详情

用yolov5+deepsort,打造实时多目标跟踪模型

作者:神经三羊来源:HyperAI超神经内容概要目标跟踪作为一个非常有前景的研究方向,常常因为场景复杂导致目标跟丢的情况发生。本文按照跟踪目标数量的差异,分别介绍了单目标跟踪及多目标跟踪。关键词&#x... 查看详情

deepsort+yolo实现行人检测和轨迹追踪(代码片段)

作者|李秋键出品|AI科技大本营(ID:rgznai100)引言行人检测是近年来计算机视觉领域的研究热点,同时也是目标检测领域中的难点。其目的是识别和定位图像中存在的行人,在许多领域中都有广泛的应用。交通安全方面,... 查看详情