计算机视觉/视频分析

采用 NVIDIA DeepStream SDK 6.2 的先进实时多对象跟踪器

当你在一段时间内观察某件事时,你可以找到能够进行预测的趋势或模式。例如,通过预测,你可以主动提醒自己采取适当的行动。

更具体地说,当你观察移动物体时,轨迹是理解目标物体行为的最重要方法之一,通过它你可以获得可操作的见解(视频 1 )。

视频 1 。猎豹追逐猎物(资料来源:Adobe)

当猎物距离较远时,其较长期的运动模式对猎豹计划游戏更为重要。随着它离猎物越来越近,在做出预测时,猎物的短期运动模式更为重要。猎豹的视觉系统锁定猎物,并一直跟踪它,直到游戏结束。

生成物体的轨迹需要随着时间的推移识别同一物体,即使在视觉外观或运动动力学发生突然变化的情况下也是如此。然而,当涉及部分或完全闭塞时,要做到这一点变得越来越困难。即使是捕食者或拥有强大视觉系统的人类,在极其具有挑战性的情况下,也经常会失去对目标的跟踪,在这种情况下,附近会有长时间的遮挡或视觉上引人注目的物体(图 1 )。

图 1 。东京涩谷十字路口(资料来源:Adobe)

物体轨迹也是许多视觉人工智能应用的关键推动者,例如用于结账队列分析或商店布局优化和制造检查的店内购物者行为分析。

这个NVIDIA DeepStream SDK提供 GPU – 加速多对象跟踪器( MOT )。最近DeepStream SDK 6.2发布后,多对象跟踪器增加了显著的改进,有效地解决了具有挑战性的遮挡问题。他们通过利用基于深度神经网络的重新识别( ReID )模型进行目标匹配和关联来实现这一点。

NvDCF 公司现在可以配置为使用 ReID 模型来在可能经历长时间遮挡或错过检测的较长时间段内改善同一对象的关联。 NvDCF 仍然基于用于鲁棒和高效短期跟踪的判别相关滤波器( DCF )方法。现在,它还配备了神经网络驱动的长期目标重新关联,从而在多目标跟踪的效率、准确性和鲁棒性之间取得最终平衡。

Nv 深度排序使用从使用 NVIDIA TensorRT 执行的 ReID 模型中提取的深度特征来执行用于跨视频帧跟踪的目标关联。它使您能够使用自定义 ReID 模型,以便您可以使用自己的模型进行多对象跟踪。

NvSORT 公司是 NVIDIA 增强的简单在线和实时跟踪器的实现 (SORT) 其使用卡尔曼滤波器进行状态估计,并基于来自检测器的目标边界框使用数据关联算法进行目标关联。 NvSORT 使用级联数据关联算法进行更稳健的目标匹配,这是对原始 SORT 的增强。

得益于 DeepStream SDK 中的统一跟踪器架构,增强的级联数据关联算法也用于所有其他类型的 MOT : NvDCF 和 NvDeepSORT 。统一跟踪器架构使您能够通过NvMultiObjectTracker库,根据选择的跟踪器类型启用和禁用单个模块。您也可以使用NvDsTracker构建自定义跟踪器。

表 1 总结了 DeepStream 6.2 中提供的多对象跟踪器组合。

跟踪器类型 描述
NvSORT 公司 一个轻量级的、仅限 CPU 的实现,但由于其增强的数据关联,仍然具有竞争力的准确性。
Nv 深度排序 使您能够使用公共 ReID 模型,或在 NvSORT 之上使用自己的模型( BYOM )进行稳健的目标关联。
NvDCF 公司 通过以深思熟虑的方式将传统机器学习( DCF )和深度学习( ReID )相结合,产生最佳的准确性和鲁棒性。
允许跳过帧进行推理(检测间隔> 0 ),同时仍然跟踪每一帧中的对象,从而以高精度提高整体管道性能。
表 1 。 DeepStream SDK 6.2 中提供的多对象跟踪器

行人追踪

现在是时候使用这些对象跟踪器在一些有趣的场景中生成对象的轨迹,并查看它们的外观了。

首先,我们展示了一个行人跟踪用例。我们使用了PeopleNet v2.6具有不同类型的物体跟踪器的探测器。检测器配置参数和跟踪器参数都针对 PeopleNet v2.6 进行了调整。有关详细信息,请参阅DeepStream 6.2 Object Tracker documentation.

在视频 2 中,仅 PeopleNet 、 NvSORT 、 NvDeepSORT 和 NvDCF 的实时感知结果以顺时针方向显示,用于并排比较边界框为了更容易识别,不同人的( bbox )用不同的颜色绘制,并且只有当场景中存在相应的对象时,才会显示颜色编码的轨迹。视频是以 x0.5 的速度拍摄的,以便于比较,但实际数据是实时生成的。

bbox 顶部的标签(例如,[21]: 80 (0.24)) 显示个人 ID (例如,21) 跟踪年龄(例如,80) 和跟踪置信度(例如,0.24) 分别为。检测器配置参数针对每种跟踪器类型进行不同配置,以获得更好的跟踪精度。

视频 2. 室内大堂的行人追踪

当使用相同的检测模型时,并排的视觉比较使您能够获得不同对象跟踪器类型的行为和质量的定性见解。 NvDCF 跟踪器具有最高的精度,因此我们在视频 3 中更仔细地显示了其跟踪结果。

视频 3 。 NvDCF 跟踪器在完全遮挡的情况下跟踪行人

这个场景的中心有一个大柱子,这会导致后面的人长时间被完全遮挡。对于任何物体检测或跟踪系统来说,这都是一个特别具有挑战性的场景。一些检测错误包括部分或双重检测和遗漏检测(图 2 ),根据背景和物理环境的不同,可能会非常频繁地发生。

Four snapshots show a bounding box that's too large, a bbox with two people, and missed detection in groups of three (one standing, one sitting).
图 2 :样本检测错误:有两个人的边界框、遗漏检测和部分检测

然而,由于新引入的基于 ReID 的目标重新关联, NvDCF 跟踪器可以成功跟踪大多数人(视频 4 ),即使他们在柱子后面经历了如此完全的遮挡。它不仅在许多帧之后重新关联大支柱之前和之后的相同对象,而且还恢复了由支柱引起的遗漏检测(假阴性)。

一个更具挑战性的场景是,除了这种环境遮挡之外,还有许多其他目标的遮挡(视频 4 )。这种遮挡产生不同程度的部分遮挡,其中检测到的目标边界框的大小和纵横比在短时间内显著变化。这给目标匹配和跟踪中的关联带来了挑战。

视频 4 。 NvDCF 跟踪器在完全和部分闭塞情况下对行人进行跟踪

然而,尽管存在这些挑战,您可以看到 NvDCF 跟踪器在大多数情况下只需几个 ID 开关即可执行稳健的跟踪。在目标离开场景之后,目标跟踪被配置为立即终止。视频 4 中离开场景的一些目标在重新进入后被分配了不同的 ID ,这是意料之中的。

仔细观察主题 ObjectID [3],如图 3 和视频 4 所示。在整个行程中,它多次经历严重的完全和部分闭塞,但从一开始一直被跟踪,直到它离开现场。

Four snapshots show a person with a white shirt and tracking label, the same person in a group of three heading away from the camera; the same person behind another; and the same person heading toward the camera with two others.
图 3 。视频 4 中的四张快照,照片中的人穿着标有对象 ID 的白衬衫[3]

视频 5 显示了跟踪器内部使用的目标模板,其中提取了特征,以及同一目标的相关性响应图。紫色的“ x ”标记显示附近的目标位置,而黄色的“+”标记显示当前目标位置。

视频 5 。(左)跟踪器使用的图像模板;(右)目标周围的相关性响应

这些结果是使用相对简单的基于 ResNet-10 的 ReID 模型生成的。为了获得更好的结果,我们鼓励您尝试您选择的更高级的自定义 ReID 模型。

DeepStream 6.2 中的 NvDCF 跟踪器是一款最先进的多目标跟踪器,在精度和性能之间取得了很大的平衡。查看MOT17 Challenge排行榜上,学术界和工业界都在积极提交许多跟踪器。 NvDCF 跟踪器,显示为NvMOT _ DSv62 型在 MOT17 排行榜上,它是实时生成输出的在线跟踪器中的顶级跟踪器之一。

车辆跟踪

对于车辆跟踪用例,我们使用TrafficCamNet带有 DeepStream 多目标跟踪器的探测器。我们使用了一个典型的车辆交通监控系统的场景,该系统俯瞰着一个繁忙的十字路口。有大小灯杆和交通信号杆,造成大量遮挡。相对较浅的摄像机有利位置更加剧了遮挡问题,这会导致其他车辆的许多遮挡。道路上的植被增加了场景的复杂性。

由于交通杆和树木的存在,车辆会发生部分和完全遮挡,从而导致大量的漏检和错误检测。您可以在并排视频中看到不同类型的对象跟踪器如何处理这些具有挑战性的情况(视频 6 )。视频是以 x0.4 的速度拍摄的,但实际数据是实时生成的。

视频 6 。繁忙十字路口的车辆跟踪

在视频的左上角,显示了 TrafficCamNet 检测器的对象框,您可能会注意到检测噪音。其中包括检测到的 bbox 中的抖动、在单个 bbox 中捕获多个对象的双重检测、由于遮挡而导致的部分检测等等。

当车辆在交通杆后发生阻塞时,这些检测误差和噪声会变得更加严重。要了解 DeepStream 多对象跟踪器如何处理这些噪声检测,请参阅视频 6 ,并在视频 7 中更仔细地检查 NvDCF 跟踪器的跟踪结果。

视频 7 . NvDCF 跟踪器的车辆跟踪

总结

我们鼓励您下载DeepStream SDK 6.2并尝试一下,为您的用例享受强健高效的多对象跟踪器!有关多对象跟踪器基本原理的更多信息,请参阅NVIDIA DeepStream Technical Deep Dive: Multi-Object Tracker视频

标签