0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NVIDIA多摄像头追踪工作流的应用架构

NVIDIA英伟达企业解决方案 来源:NVIDIA英伟达企业解决方案 2024-09-06 14:23 次阅读

为提高安全性并优化运营,仓库、工厂、体育场、机场等大型区域通常会有数百个摄像头进行监控。多摄像头追踪指的是通过这些摄像头追踪对象,并精确测量其活动,以此实现对空间的有效监控和管理。

例如,零售店可以使用多摄像头追踪了解顾客如何在过道中穿行,通过改进店铺布局,为顾客提供更好的购物体验;仓库可以通过监控设备、材料和人员的流动,来提高安全性、加快交付速度和降低成本;机场可以通过追踪人流来加强安保和提升旅行体验。

但落实多摄像头追踪系统可能具有一定的挑战性。

第一,要匹配多个摄像头从不同角度和视野所拍摄的对象,需要有经过数月精准训练的先进算法AI 模型,尤其是基准真相训练数据集非常稀缺。数据集的标记工作需要由一个人或一小群人对来自众多摄像头的所有数据流进行审查,以保证识别与追踪的一致性,这就延迟了 AI 模型的训练。

第二,多摄像头实时追踪需要建立专门的实时数据流、多流融合、行为分析和异常检测模块,实现亚秒级的延迟和高吞吐量。

第三,要扩展到工厂、机场等更大的空间,就必须采用分布式计算和云原生架构来处理成千上万个摄像头和对象。

因此,我们发布了全新的多摄像头追踪参考工作流,推动新一代视觉 AI 的发展,使其能够测量并帮助管理大型空间的基础设施和运营。

NVIDIA 多摄像头追踪

NVIDIA 多摄像头追踪是一个可自定义的工作流。您可以放心地从这里开始,无需从头启动开发工作,这将节省您数月的开发时间。

该工作流还提供一条经过验证的生产路径,并且包含在真实和合成数据集上预训练的高级 AI 模型,您可以根据自己的用例对这些模型进行自定义。该流程也已包含实时视频流模块。

基础层:通过融合多摄像头视频,为对象创建全局 ID 及其全局和局部坐标的生产就绪功能。

分析层:唯一对象计数和本地轨迹。

可视化和 UI:作为进一步开发基础的示例热图、直方图和路径。

借助该工作流的这些组件,您就可以对业务逻辑进行编码,并构建端到端视觉 AI 应用,实现对空间的优化与管理。

无需支付额外费用,只需基础设施和工具许可证即可。此外,您还能通过 NVIDIA AI Enterprise 获得专家支持以及多摄像头追踪工作流的最新产品更新。

开始使用多摄像头追踪工作流

如要开始使用,请参见多摄像头追踪快速入门指南,了解如何在本地开发或云中部署该参考工作流。

有关仿真和微调用例的更多信息,请参见从仿真到部署的全套方法

在以下章节中,我们将引导您了解该工作流的应用架构,以及开发、配置和部署工作流的各个步骤。

端到端多摄像头追踪工作流

wKgaombaoAyAVCnZAAYgKvWxEtE865.png

图 1. 从仿真到部署的多摄像头追踪工作流

多摄像头追踪参考工作流(图 1)从媒体管理微服务获取实时或录制的数据流,并在多摄像头视图中输出对象的行为和全局 ID。行为可定义为对象在任何给定时间的位置、方向、速度或轨迹。

对象元数据(如边界框、追踪 ID 和带有时间戳的行为数据等)存储在 Elasticsearch 索引中,行为数据也经过排序并存储在 Milvus 向量数据库中。工作流结束时会运行一项网络 UI 微服务,使您能够生成行为的可视化图,并点击任何对象查找其在任何时刻的位置(时间戳)。可通过网络 API 微服务从 ELK 或 Milvus 获取数据。

在视频 1 中,右侧窗格显示了叠加对象全局 ID 及其行为的建筑地图。左侧的摄像头视图显示对象的当前位置。在该窗口中,您可以使用对象的全局 ID 对其进行查询,查看其在特定时间段内的位置。例如,如果用全局 id-2 查询对象,就可以获得与该对象 ID 相关的元数据。

基础模块

该应用由多个 NVIDIA Metropolis 微服务构建而成:

媒体管理

感知

多摄像头融合

行为分析

网络 API

网络 UI

数据流分发和路由(SDR)

它还包含第三方微服务:

消息代理(Kafka)

Elasticsearch Logstash Kibana 堆栈(ELK)

矢量数据库(Milvus)

使用了多个 NVIDIA Metropolis 工具:

摄像机校准工具

Pipetuner 自动参数追踪工具

使用了以下感知模型:

人物检测和重新识别嵌入

从仿真到部署的全套方法

我们将探讨开发这些高级 AI 功能的全套方法,从使用数字孪生进行仿真和合成数据生成开始,一直到部署到云端用于推理为止。

仿真和训练

想要构建最为高效、准确的 AI 工作流,就必须使用先进的 NVIDIA 技术,比如使用以下工具创建 3D 数字孪生、生成合成数据和简化模型开发:

NVIDIA Omniverse:建立真实世界环境的 3D 数字副本、定位虚拟摄像头以捕获各种合成数据、生成基准真相注释,并在实际部署前验证应用。

NVIDIA Isaac Sim:使用 Omni.Replicator.Agent 仿真智能体,包括人和机器人,以简化从场景中生成合成数据。如需了解更多信息,请参见使用 NVIDIA Metropolis 微服务将多摄像头追踪工作流部署到公有云(视频)

NVIDIA TAO 套件:同时使用真实数据与合成数据,简化训练并优化模型,通过量化和剪枝提高推理性能。

这些工具可共同加强 AI 模型的训练、验证和优化,保证其在真实世界应用中发挥高性能。

构建和部署多摄像头追踪工作流

针对多摄像头追踪应用,NVIDIA 提供了多种构建和部署应用程序的选项。

使用 docker-compose 进行快速部署

现在,任何人都可以开始使用多摄像头追踪应用。NVIDIA 提供了一些在默认设置下就可以使用的示例视频流,这些视频流可以在 nvstreamer 微服务中进行配置。

然后,您可以配置这些 RTSP 流,或将真实摄像头 RTSP 端点添加到 VST 中。除了这些流之外,NVIDIA 还提供了使用 deepstream-app 生成的感知元数据样本,供任何人检查多摄像头数据流。您可以按以下方式部署整个端到端工作流:

$dockercompose-ffoundational/mdx-foundational.yml-fmtmc-app/mdx-mtmc-app.yml--profilee2eup-d--pullalways--build--force-recreate

这里的 mdx-foundational.yaml 文件是一个 docker-compose 文件,包含 Elasticsearch、Kafka 等基本服务。mdx-mtmc-app.yaml 文件包含感知、媒体管理、行为分析等微服务。

如要试用带有现成感知数据的多摄像头应用,请运行带有播放配置文件参数的 docker compose 命令:

$dockercompose-ffoundational/mdx-foundational.yml-fmtmc-app/mdx-mtmc-app.yml--profileplaybackup-d--pullalways--build--force-recreate

使用 Helm 图表在 Kubernetes 的生产环境中进行部署

如要在 Kubernetes 中部署多摄像头追踪应用,首先要创建一个 Kubernetes 服务器。详细信息参见软硬件前提条件。这些应用资源位于 NGC 中。

下文假定您已设置了 Kubernetes 服务器并拥有 NGC 团队访问权限

下载部署包:

ngcregistryresourcedownload-version"nfgnkvuikvjm/mdx-v2-0/metropolis-apps-k8s-deployment:-"

该部署包具有存储、监控服务等基础服务和应用 helm 配置的 Helm values.yaml 文件。

Values 文件是应用的配置文件,您可以在其中定义特定服务的映像、服务副本数量、服务类型、端口、入口、卷、存储等。

该应用 helm 配置为每项微服务提供一个 Values 文件,如感知(wdm-deepstream-mtmc-values.yaml)和多摄像头融合(mtmc-app-override-values.yaml)等。

更多信息,请参见 Values 文件。

部署基础服务

helminstallmdx-foundation-sys-svcs--waithttps://helm.ngc.nvidia.com/nfgnkvuikvjm/mdx-v2-0/charts/mdx-foundation-sys-svcs-v1.3.tgz--username='$oauthtoken'--password=YOUR_API_KEY-fapplication-helm-configs/foundational-sys/foundational-sys-monitoring-override-values.yaml

这里的 foundational-sys-monitoring-override-values.yaml 文件被 override values.yaml 文件取代,您可以在其中定义任何经过更新的应用设置,例如为 Grafana UI 添加密码等。

部署微服务

除感知微服务外,每个微服务 pod 都可以共享 GPU。GPU 共享通过 NVIDIA_VISIBLE_DEVICES 启用。每个微服务都有一个用于自定义各项配置的 override value.yaml 文件。我们将在后面讨论自定义问题。

与基础服务类似,您可以单独部署每项微服务。例如,如要部署多摄像头融合微服务运行,请使用以下代码:

helminstallmdx-mtmc-apphttps://helm.ngc.nvidia.com/nfgnkvuikvjm/mdx-v2-0/charts/mdx-mtmc-app-1.0.37.tgz--username='$oauthtoken'--password=-fapplication-helm-configs/MTMC/mtmc-app-override-values.yaml

关于如何部署其他微服务的更多信息,请参见用户指南。

访问多摄像头追踪 UI

在完成部署后,您可以访问多摄像头追踪用户界面。

为了在多摄像头视图中有效追踪对象、最大程度地减少遮挡和提高空间理解能力,NVIDIA 在多摄像头融合和行为分析微服务中采用了摄像头校准技术,其中包括提供示例视频流以及 calibration.json 文件和建筑地图图像。calibration.json 文件包含图像坐标和全局坐标,这些坐标用于将每个摄像头的视图与通用的自上而下的地图视图对齐。

使用一键式部署脚本在云端部署

为了将 Metropolis 应用部署到云端,NVIDIA 向 Microsoft Azure、Google Cloud Platform、亚马逊科技(AWS)等多家云服务提供商(CSP)提供了一键式脚本。更多信息,参见使用 NVIDIA Metropolis 微服务将多摄像头追踪工作流部署到公有云(视频)。

以及 NVIDIA Metropolis 用户指南中的云设置专题

根据您的用例进行配置

如果您已经遵循了所有的构建和部署说明,那么现在您就可以在随版本一起打包的示例数据流上,运行多摄像头追踪工作流,并生成结果的可视化图。

为了根据您的用例扩展应用,NVIDIA 在每个微服务级别和工具中都提供了一些配置选项。可在 override-values.yaml 中添加配置级自定义。

helminstallvst-apphttps://helm.ngc.nvidia.com/rxczgrvsg8nx//charts/-.tgz--username='$oauthtoken'--password=-fapplication-helm-configs/MTMC/override-values.yaml

在媒体管理微服务中使用视频存储套件配置摄像头‍

您可以在这项微服务中设置您的视频流配置。在有实时摄像头的情况下,可以使用视频存储套件(VST)。VST 提供多种配置,您可以根据自己的需要进行设置:

vst_config.json:
  notifications:
    enable_notification: true
    use_message_broker: "kafka"
  security:
   use_https: false
   use_http_digest_authentication: false
vst_storage.json:
   total_video_storage_size_MB: 100000

现在,您可以使用这些 override-values.yaml 更新来部署微服务:

访问 VST 仪表盘:http://IP_address:30000

添加摄像头

将经过微调的模型和自定义追踪器整合到感知微服务中

感知微服务提供多种配置选项,例如多摄像头追踪应用带有用于检测人物的默认模型。如果您有自定义模型且必须更新模型参数,可以更新模型配置文件。

感知微服务基于 NVIDIA DeepStream。NVIDIA DeepStream 提供了多种类型的追踪器,来追踪单个摄像头视图内的对象。您可以选择任何一种追踪器并更新配置。

典型的感知微服务管线包含一个检测器和一个多对象追踪器,每个检测器和追踪器的配置文件都列有大量参数。由于需要针对不同的应用来手动调整这些参数,会使达到最佳的准确性具有一定的挑战性,因此 NVIDIA 提供 pipe tuner 工具来帮助您获得最佳参数,并在特定用例中达到最佳的准确性。

使用摄像头校准套件创建校准文件

您必须为新添加的摄像头流创建 calibration.json 文件,才能使用多摄像头融合和行为分析 (Multi-Camera Fusion and Behaviour Analytics) 微服务。为了实现高效、可扩展的摄像头校准,NVIDIA 提供了基于 UI 的摄像头校准套件。

监控和记录

NVIDIA 在多摄像头追踪应用中,将 Kibana 控制面板与基础服务整合到一起,以便您对应用进行监控和可视化。

打开 Kibana 控制面板。

wKgZombaoF2AXoWtAAKFvM4Ax2M238.png

图 2. 使用 Kibana 面板通过

时间戳监控多摄像头追踪对象

从左上方可以看到,在给定的输入流中总共检测到 34 个对象。但在 34 个对象中,只有 6 个唯一人物。图像底部是多摄像头追踪工作流直方图。

立刻开始使用该工作流

多摄像头追踪参考工作流现已全面推出开发者预览版。立刻开始使用快速入门指南,并按照分步说明下载工作流构件,然后就可以在您的专用系统环境或云环境中部署该工作流。

如要使用覆盖整个视觉 AI 生命周期(从仿真到微调和部署)的 NVIDIA 工具自定义和进一步构建该工作流,请参见 Metropolis 多摄像头仿真到部署快速入门指南。

尝试该工作流并通过开发者论坛或您的 NVIDIA 企业支持团队给出您的反馈意见。

我们迫不及待地想看到您使用多摄像头追踪所构建出的流程,如何将物理空间的安全性与实用性提升到新的水平!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4793

    浏览量

    102419
  • 摄像头
    +关注

    关注

    59

    文章

    4748

    浏览量

    94356
  • AI
    AI
    +关注

    关注

    87

    文章

    28818

    浏览量

    266155

原文标题:借助多摄像头追踪工作流优化大型空间内的流程

文章出处:【微信号:NVIDIA-Enterprise,微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    android摄像头同时预览

    `本人用荣品的开发板开发了多个摄像头同时预览硬件平台:RP6818软件平台:Android5.1.1摄像头:2个USB摄像头,1个并口摄像头先上图开发板原来自带了并口
    发表于 01-18 14:55

    谁能做OV7670摄像头基于STM32F103,追踪红光?

    谁能做OV7670摄像头基于STM32F103,追踪红光?这个是装在小车上的,我现在就差摄像头一直没弄出来了。
    发表于 11-12 18:48

    安防摄像头的过保护

    ,分配给摄像头负载。无论是开关电源还是火牛电源供电,都是一个公用电源的多路供电系统,这是目前普遍采用的方法。 而在这种供电系统中,会存在一个致命的问题,那就是当其中某个摄像头负载有短路或过问题出现
    发表于 12-29 14:10

    如何在i.MX8M Plus上为13MP摄像头启用双摄像头

    只能支持一个 4K@30fps 。 首先,让我们了解双摄像头设置中的管道如何使用 i.MX8M Plus 工作。来自两个摄像头(在本例中为 13MP 模块)的数据通过 MIPI C
    发表于 05-05 08:34

    ESP32如何传输摄像头视频码

    ESP32本身如何传输摄像头视频码?看到社区diy视频,esp32本身可以使用的IO就不多,如何可以连接摄像头呢?
    发表于 10-17 06:35

    基于分组-分类的工作流活动实例调度

    引入活动实例使得工作流的处理更加灵活,但引发了同步调度和数据共享冲突等问题。该文给出工作流活动实例的灵活定义和分类,提出基于“分组-分类”的工作
    发表于 04-02 08:45 9次下载

    网格环境中基于移动Agent的工作流架构研究

    传统的工作流架构有很多弱点,比如架构严重降低了系统性能,在动态环境中缺少灵活性。本文提出了一个集成了Web Services,网格,工作流和移动代理技术的分布式
    发表于 08-18 08:31 17次下载

    摄像头工作原理

    摄像头工作原理 摄像头主要有镜头、CCD图像传感器、预中放、AGC、A/D、同步信号发生器、CCD驱动器、图像信号
    发表于 08-02 09:40 2.7w次阅读

    轻量级工作流引擎架构设计

    为了克服传统工作流管理系统的不足,设计了工作流管理型系统的原型体系结构,搭建了轻量级工作流引擎的核心架构,详细地介绍了轻量级工作流引擎各个组
    发表于 04-12 16:15 0次下载
    轻量级<b class='flag-5'>工作流</b>引擎<b class='flag-5'>架构</b>设计

    基于MVC架构的轻量级工作流引擎设计

    为克服传统工作流引擎的不足,设计了基于MVC架构的轻量级工作流引擎设计
    发表于 05-24 15:23 0次下载
    基于MVC<b class='flag-5'>架构</b>的轻量级<b class='flag-5'>工作流</b>引擎设计

    基于DirectShow的摄像头视频采集

    灰色。网上有种解决方法是逆序打开摄像头,结果两个窗口是可以采集到视频信息,但是竟然是同一个摄像头的视频信息,无奈的只能使用DirectShow采集摄像头视频信息。 先看看什么是Dir
    发表于 02-08 03:24 3201次阅读

    如何在NVIDIA Jetson平台创建摄像头管道

      在本文中,我将展示如何在 NVIDIA Jetson 平台上高效地实现这些常见任务。具体来说,我介绍了 jetmulticam ,一个易于使用的 Python 软件包,用于创建摄像头管道。我在一个带有环绕
    的头像 发表于 04-28 09:15 2291次阅读

    NVIDIA Studio技术如何加速创意工作流

    编辑注:本文是 NVIDIA Studio 创意加速系列的一部分,该系列旨在介绍一些特邀艺术家、提供创意提示和技巧,并展示 NVIDIA Studio 技术如何加速创意工作流
    的头像 发表于 08-12 11:21 917次阅读

    全新 NVIDIA RTX Enterprise 驱动程序支持最新的 RTX 6000 Ada 架构 GPU,助力改进图形工作流

    ,还是数据分析,专业工作流的复杂性、交互性和协作性正日益增大。专业人员正在使用强大的 NVIDIA RTX GPU 以应对其专业工作流,并且 NVIDIA RTX Enterprise
    的头像 发表于 12-27 21:15 1081次阅读

    摄像头工作原理

    电子发烧友网站提供《摄像头工作原理.rar》资料免费下载
    发表于 10-20 16:46 4次下载
    <b class='flag-5'>摄像头</b><b class='flag-5'>工作</b>原理