本次笔记整理自NVIDIA 8月20日在线研讨会,原讲座标题:DEEPSTREAM SDK – ACCELERATING REAL-TIME AI BASED VIDEO AND IMAGE ANALYTICS
演讲人:
目录:
我们已经整理了第一点和第二点:
NVIDIA Deepstream 4.0笔记(一):加速基于实时AI的视频和图像分析
接下来的几篇我们从几个实际的案例来讲解如何构建Deepstream
我们已经讲了第三点中的Smart Retail
NVIDIA Deepstream 4.0笔记(二):智能零售场景应用
今天我们讲解智能交通系统
使用大量相机的另一个地方是城市。您需要分析数以千计的相机。从这些相机中获取洞察力可以帮助减少我们城市的交通拥堵,并使我们的道路更安全。道路上的异常可以立即被警报机构检测到。此外,由于带宽限制,将数TB的视频数据传输到云可能是不可行的。因此,您需要一种分析边缘像素的解决方案,并仅将重要元数据传输到云或分析服务器以获得进一步的见解。右边是智能城市的解决方案,它可以实现边缘感知,而且只需要元数据到云端,DeepStream及其消息代理插件,提供从边缘设备无缝连接到云的能力。
NVmsgconv和nvmsgbroker插件允许感知图通过消息缓存连接到分析服务器或云。它接收输入元数据并创建通过此支持的协议发送的消息。首先,消息Converter插件很少解析基本元数据格式并生成schema。schema可以是deepsteam中的预定义模式之一,也可以完全自定义。有效负载(payload)数据采用JSON格式。消息代理插件使用其中一个定义的协议将此有效负载从消息转换器发送到服务器。很少有参考应用程序可以帮助您开始使用消息代理在外部与云或服务器进行通信。
让我们深入研究Deepstream 4.0中可用的不同协议。NVIDIA意识到连接到云服务对于IOT应用程序来说非常重要。在Deepstream3.0中有提供Kafka协议, 4.0后重新添加对特定于框架的客户端(如Microsoft Azure lOT)的支持,这是使用MQTT协议,为Deepstream应用程序提供自动框功能,以将消息发布到Azure lOT Central。
NVIDIA支持的第三个协议是AMQP。
请参阅插件菜单中有关消息代理的完整章节。
这是一个智能交通系统的应用程序。在感知pipline里,像素在边缘设备内部进行转换,然后,分析工作流将获取此元数据并创建可搜索的分析,并显示在Web浏览器上以进行可视化。
在Trajectory 处理部分中,使用道路网络和摄像机校准将图像坐标映射到地理坐标。摄像机校准在分析引擎外部提供。 ROI(感兴趣的区域)将重点关注分析只有在路上的汽车。 道路网络还可以帮助计算路段的速度。实现了几种异常检测。一些是基于规则的,一些是来自LSTM模型。规则可能是超速违规或意外停止。基于规则可能是加速违规或意外停止。 基于LSTM的,可能是汽车驾驶方向错误。 它查看序列的顺序,任何偏离标准的东西都被归类为异常。但搜索索引器可以搜索任何事件或异常。您将在演示中看到整个Pipline。相机上的元数据机器被发送到VMS。这用于记录视图或搜索任何流。最后,可以使用Web浏览器访问所有信息。
让我们探索分析应用程序的体系结构。分析的部署可以在云或Kubernetes集群中进行。Kafka消息代理从边缘设备读取消息并将其发送到Apache spark引擎和Logstash。Apache spark将分析流数据并构建汽车轨迹同时检测异常情况。用于ETL的Logstash处理原始数据并将其发送到搜索索引器。搜索索引器使用弹性搜索实现。PMS将记录来自摄像机的实时流以播放异常并将其显示在屏幕上。此API将显示在给定道路之间行驶的汽车的速度数。Kibana用于创建此分析仪表板,从而为浏览器提供易于使用的界面。
我们系统性地看一下DEMO视频