NVIDIA DeepStream 是一款功能强大的 SDK,能够提供用于构建端到端视觉 AI 管线的 GPU 加速构建模块。凭借 40 多个现成插件,您可以部署具备领先 AI 推理技术、对象追踪功能,以及与常用的物联网消息代理(如 EDIS、Kafka、MQTT 等)无缝集成的全面优化的管线。
DeepStream 提供直观的 REST API,无论部署在远端还是云端,都能控制您的 AI 管线。
图 1. DeepStream SDK 工作流
最新发布的 DeepStream 7.0 是我们迄今为止最重要的版本之一,它将为您带来生成式 AI 时代的突破性功能。该版本包含大量创新功能,可加速下一代应用开发。
版本包含以下亮点:
通过 Python API 使用新的 DeepStream 库的全新开发途径
利用全新 Service Maker 来简化应用开发
增强的单视角 3D 追踪器功能
通过 DeepStream 3D 框架支持传感器融合模型 BEVFusion
支持适用于 Linux 的 Windows 子系统(WSL2)
利用 PipeTuner 来简化 AI 管线的优化工作
DeepStream 库:拓展开发者视野
在构建视觉 AI 应用时,首要任务是优化 AI 管线以获得一流的性能。无论您是经验丰富的专家还是刚刚入门的新手,都必须了解战略全局。
大体上,有两种主要方式可供选择:
现有的开箱即用框架,如 GStreamer
在您自己的框架上加速关键构建块的功能性 API
图 2. 视觉 AI 应用工作流
图 3 显示了 DeepStream 插件的结构。在其核心,每个插件都将其基本功能封装在一个库中,这个库可通过符合 GStreamer 插件规范且定义明确的接口进行访问。
这种标准化方法确保了 GStreamer 生态系统内的无缝兼容和集成。DeepStream 通过在插件之间添加零内存拷贝,实现了最先进的性能。
图 3. DeepStream 插件的高层架构
随着 DeepStream 7.0 的推出,NVIDIA 为开发者开辟了新的途径,让他们可以继续灵活地使用 GStreamer 的强大功能,或者通过直观的 Python API 去挖掘 DeepStream 库的强大性能。这种双管齐下的方法不仅拓宽了 Python 开发者使用 NVIDIA 加速功能的途径,而且还能将这些功能无缝集成到现有的 AI 框架中。
图 4. DeepStream 库
由 NVIDIA CV-CUDA、NvImageCodec 和 PyNvVideoCodec 支持的 DeepStream 库提供了一系列低层级的 GPU 加速操作,可轻松地直接替代在视觉 AI 管线预处理和后处理阶段中受 CPU 瓶颈限制的相应操作。
作为开源库,它们提供了完全的透明度和必要的工具,以实现库与库之间和库与热门深度学习框架之间的零内存拷贝交互。通过 pip 安装命令即可完成设置,这简化了整个集成过程。
DeepStream 7.0 现在支持的两种路径有各自的优势和权衡:
易于学习和集成:DeepStream 库简化了学习曲线,使您能够快速集成 Python API 并见证 GPU 加速的直接优势。一个最好的例子就是与 DeepStream 库编解码器的集成,只需编写几行代码,就能迅速看到图像或视频帧加速解码/编码的影响。
即用型解决方案:成熟的 DeepStream 插件在与 GStreamer 框架相结合后,能够为从零开始或没有现有管线框架的用户,提供一条快速上市部署的路径。这些插件内置零内存拷贝和先进的资源管理功能,是实现高效应用开发的理想选择。
图 5. DeepStream 库和插件之间的取舍
NVIDIA 计划在未来不断扩展 DeepStream 库的支持范围,并通过每次的新发布来进一步丰富开发者的体验。
DeepStream Service Maker:
简化应用开发
对于想要使用 GStreamer 的 DeepStream 开发者,我们还带来了一个好消息:GStreamer 新手的学习速度将会很快。
NVIDIA 为 DeepStream 技术套件加入了一项突破性功能——DeepStream Service Maker。这项新功能通过将 GStreamer 的复杂性抽象化,大大简化了开发流程,使每个人都能快速高效地构建面向对象的 C++ 应用。
图 6. DeepStream Service Maker 抽象层
您可以使用 DeepStream Service Maker 来快速构建管线、集成所需的插件、无缝连接这些插件以及发布应用,所有这些工作都只需几分钟时间。然后,您可以毫不费力地将这些应用打包到容器中,并通过 REST API 进行管理,从而打造一个大幅减少传统编码工作的精简工作流。
Pipeline pipeline("deepstream-test1"); pipeline.add("filesrc", "src", "location", argv[1]) .add("h264parse", "parser") .add("nvv4l2decoder", "decoder") .add("nvstreammux", "mux", "batch-size", 1, "width", 1280, "height", 720) .add("nvinfer", "infer", "config-file-path", CONFIG_FILE_PATH) .add("nvvideoconvert", "converter") .add("nvdsosd", "osd") .add(sink, "sink") .link("src", "parser", "decoder") .link({"decoder", "mux"}, {"", "sink_%u"}) .link("mux", "infer", "converter", "osd", "sink") .attach("infer", new BufferProbe("counter", new ObjectCounter)) .attach("infer", "sample_video_probe", "my probe", "src", "font-size", 20) .start() .wait();
考虑到那些不熟悉 GStreamer 的用户,DeepStream Service Maker 让开发过程变得更加直观,同时它也为经验丰富的开发者带来了新的功能,完全支持自定义插件,如果您多年来一直投入时间创建自定义解决方案,这一点至关重要。
DeepStream Service Maker 将原来数百行的复杂编码减少到几行,彻底改变了处理和管理应用开发的方式,使这项工作变得前所未有的简单和轻松。
DeepStream Service Maker 还能加速边缘环境的应用开发,最适合用来为适用于 Jetson 的 Metropolis 微服务(MMJ)开发您自己的微服务。DeepStream Service Maker 还可作为微服务轻松部署到云端,并可通过 REST-API 进行控制。
视频 1. 轻松构建、部署和控制视觉 AI 应用
使用 Service Maker 构建应用后,可将其轻松打包到容器中,然后通过直观的 REST API 进行管理和动态控制,比如添加和删除流,以及配置感兴趣区域(ROI)等。
视频 2. 使用 REST API 控制视觉 AI 应用
DeepStream Service Maker 的第一个版本支持 C++。未来的版本将支持 Python,从而扩大该工具的可访问性和多功能性。
DeepStream 单视角 3D
NVIDIA DeepStream 最新版本对单视角 3D 追踪(SV3DT)的追踪器进行了重大改进。这一先进功能仅使用一个单摄像头就能在 3D 空间内精确追踪物体,从而在 3D 世界地平面上对物体进行精确定位。
SV3DT 的第一个版本将行人建模为地平面上的圆柱体。这种方法通过将脚部定位在圆柱体的底部来保证更加精确的定位,从而实现更加清晰、明确的运动呈现,而且定位不受遮挡程度的影响。
图 7. DeepStream 单视角 3D 追踪使用单摄像头创建圆柱体和脚部位置
通过 DeepStream 3D 框架支持 BEVFusion
DeepStream 7.0 支持最令人兴奋的传感器融合 AI 模型之一——BEVFusion。DeepStream 7.0 增强了 DeepStream 3D(DS3D)框架,并增加了可与摄像头输入融合的激光雷达和雷达输入。NVIDIA 正在致力于提供下一代环境感知解决方案。
通过以源代码形式提供的底层库精简了与各种传感器的集成,从而简化了对不同传感器厂商的支持。
通过与 DS3D 框架集成,BEVFusion 提供了一整套提高功能性和易用性的功能:
轻松实现可视化:在屏幕上渲染和旋转激光雷达或 3D 数据,将激光雷达数据投影到图像中,并从多个视角显示 3D 边界框。
支持消息代理: 默认与消息代理集成,以便快速高效地与其他子系统集成。
传感器同步:强大的多传感器数据(包括激光雷达、雷达和摄像头)同步功能,支持文件输入和实时流。该功能可适应不同的帧率并管理帧丢失,这对于现实世界应用的适应性来说至关重要。
对齐过滤器:根据不同传感器的内在和外在参数进行数据对齐,实现适合各种传感器数据对齐的精准定制。
定制 3D 数据预处理:支持激光雷达和雷达数据的定制预处理需求,提高处理精度和灵活性。
通用数据地图管理:通过键值系统管理传感器和张量数据的综合阵列,实现数据监督和操作的精简化。
凭借这些功能,带有 BEVFusion 的 DeepStream 7.0 站在了 3D AI 开发的最前沿,为可从边缘部署到云端的传感器融合技术带来了全新的可能性。
图 8. 通过 BEVFusion 和 DS3D 框架实现应用的传感器融合
支持适用于 Linux 的Windows 子系统
现在可以使用适用于 Linux 的 Windows 子系统(WSL2)在 Windows 系统上开发 DeepStream 应用。该更新是一项重大进步,也是在以 Windows 为标准的 IT 批准系统上进行开发的客户经常提出的一项要求。
通过在 WSL2 上集成 DeepStream,您无需远程访问 Linux 系统,就可以在一个系统上实现工作流的简化。这项新功能可让您无需进行复杂的双系统设置就能使用 DeepStream 的强大功能,从而简化开发流程并提高生产力。
DeepStream 对 WSL2 的支持,为直接在 Windows 上开发高级应用提供了所需的灵活性和便利性。您既能享受到与 Windows 的轻松兼容,又能同时受益于 DeepStream 的强大功能。
图 9. WSL2 架构上的 DeepStream SDK
PipeTuner 1.0:简化 AI 管线优化
PipeTuner 1.0 是一款全新的开发者工具,有望彻底改变 AI 管线的调整方式。AI 服务通常包含大量用于推理和追踪的参数,因此寻找能够最大程度提高特定用例准确性的最佳设置是一个复杂而关键的过程。
传统的手动调整需要对每个管线模块有深入的了解,这在广泛、高维的参数空间中变得不切实际,即便有数据集和用于准确性分析的基准实况标签的支持也是如此。
PipeTuner 就是为应对这些挑战而设计的。PipeTuner 能够高效探索参数空间并自动识别最佳参数,根据用户提供的数据集实现最高的关键性能指标(KPI)。最重要的是,PipeTuner 简化了这一流程,使用户无需掌握管线及其参数的技术知识。
PipeTuner 1.0 目前处于开发者预览阶段。
图 10. PipeTuner 工作流
通过集成 PipeTuner,您可以加快产品上市时间,并为每个部署地点量身定制 DeepStream 管线参数,确保在各种场景下都能实现最佳性能。让每个人在所有用例和场景中都能获得有效且先进的 AI 管线优化,这是朝着这一目标所迈出的重要一步。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !