视觉遮挡不再是难题:NVIDIA DeepStream单视图3D跟踪技术来帮忙

科技   2024-05-10 14:00   江苏  

自动驾驶、智能安防、机器人导航等众多领域,视觉感知技术的准确性至关重要。然而,在实际应用中,物体遮挡问题却是一个常见的挑战,它可能导致感知系统出现误判或漏判,从而影响整个系统的可靠性和安全性。为了解决这一问题,NVIDIA DeepStream 引入了一种先进的单视图3D追踪技术,以有效地缓解遮挡带来的影响。

视觉感知中的透视和投射

在我们的真实世界里,通过相机看到的物体移动可能会显得有些奇怪或不稳定。这是因为相机只能展示三维世界的二维画面。以交通监控摄像头为例,这些摄像头通常覆盖很大的区域,所以远处的车和近处的车移动看起来会很不一样。

在录像中远处的车看起来很小,移动得也慢。但当车靠近摄像头并转弯时,它们的移动会突然改变。这些变化使得我们很难从二维的画面中预测车接下来会移动到哪个位置。跟踪物体就是要不断地估计物体的状态,并识别它们。这通常涉及到建立物体移动的模型,并进行预测,以减少测量中的误差。从给出的例子中可以看出,在真实的三维空间里预测和估计物体的状态,会比在二维的画面中更准确。这是因为物体实际上是在三维空间中移动的。

使用 NVIDIA DeepStream 进行单视图 3D 跟踪

NVIDIA DeepStream是一个基于 GStreamer 的完整流分析工具包,它可以处理和分析视频、音频和图像。最近,DeepStream 6.4版本增加了一个叫做单视图3D跟踪(SV3DT)的新功能。这个功能很厉害,它只需要一个相机的视角,就能估计出3D世界中物体的状态。

这个功能是怎么工作的呢?它会把相机拍到的2D图像转换成3D的图像。比如说,如果我们看到一个行人在走路,SV3DT就能估算出这个行人在真实世界中的位置,就像我们在现实生活中看到他一样。这个功能甚至可以把行人想象成一个站在地上的圆柱体,圆柱体的底部中心就代表行人的脚的位置。

每个圆柱形模型的底部中心表示每个行人在 3D 世界地平面上的位置(用绿点标记)

这个功能的好处是,即使行人被其他东西挡住了一部分,它也能准确地找到行人的脚在哪里。这在现实应用中是一个很大的挑战。

举个例子,如果一个人在商店的狭窄过道里购物,摄像头可能只能看到他的上半身。这种情况下,要确定他的脚在哪里就很难。但是,SV3DT可以利用3D人体模型的信息,假设摄像头是安装在头顶上的,来估算出行人的脚的位置。

SV3DT 有助于跟踪零售购物者的准确足部位置,即使有遮挡


使用边界框的底部中心作为对象位置的代理会在轨迹估计中引入很大程度的误差。即使使用相机校准信息将 2D 点转换为 3D 点,尤其是当相机透视和旋转较大时,也是如此。

DeepStream SDK 中多对象跟踪器模块中的 SV3DT 算法通过利用 3D 人体建模信息解决了这个问题,假设摄像头安装在头顶上方。在智能空间中部署的大多数大型摄像机网络系统中,通常都是这种情况。有了这个假设,在估计相应的 3D 人体模型位置时,可以使用头部作为锚点。上图显示,SV3DT 算法可以成功找到匹配的 3D 人体模型位置,即使人被严重遮挡。

下图显示了如何在合成数据集中稳健地跟踪每个行人的脚部位置,即使下半身的大部分被架子等大型物体遮挡也是如此

使用合成数据集对严重粒子遮挡进行SV3DT行人位置跟踪


尽管如此,便利店中人们的 2D 和 3D 脚部位置(用绿点表示)还是被准确而稳健地跟踪。这提高了其他分析的准确性,例如队列长度监控和占用地图,仅举几例。

需要说明的是,这个功能现在还在初级阶段,目前只支持站立的人。但是,NVIDIA计划在未来改进这个功能,让它能支持更多类型的物体和姿势。如果你对这个功能有兴趣,可以试试看,并在DeepStream的论坛上给出你的反馈。这个功能可能会为很多实际应用带来可能性,比如监控商店里的人群流动情况,或者制作占用地图等。

DeepStream SV3DT 使用范例

一个示例 DeepStream SV3DT 用例演示了如何在本文中介绍的零售商商店视频上启用单视图 3D 跟踪,并从管道中保存 3D 元数据。用户可以从数据中可视化凸起的船体和脚部位置(如上图所示)。README 还介绍了如何在自定义视频上运行此算法。

可以访问: 

github.com/NVIDIA-AI-IOT/deepstream_reference_apps/tree/master/deepstream-tracker-3d

了解更多信息





GPUS开发者
在这里,你可以及时了解NVIDIA GPU的行业资讯、最新进展、应用场景和各项功能。还有一些工具、技巧和教程,帮助你利用GPU打造未来的科技。参与GPU世界举办的精彩活动,体验人工智能的未来生活。
 最新文章