如何通过Azure 使用NV Deepstream(1)

Azure
122 0 2019-11-12

这是一个演示如何通过 Azure IoT Edge,在一个连接到Azure的NVIDIA Jetson Nano设备上使用NVIDIA Deepstream进行实时视频分析的示例。

Deepstream是一种高度优化的视频处理管道,能够运行深度神经网络。无论何时你有复杂的视频分析需求,无论是实时的还是级联的AI模型,它都是一个必备的工具。边缘物联网让你有可能在你的摄像头旁边运行这条管道,视频数据就是在这里生成的,从而降低带宽转换成本,并在互联网连接或隐私担忧较差的情况下启用。

有了这个解决方案,您可以将摄像机转换成传感器,以了解何时有可用的停车位、零售店货架上缺少的产品、太阳能电池板上的异常情况、工作人员接近危险区域等等。

要完成这个示例,您需要一个NVIDIA Jetson Nano设备。该设备功能强大,可以处理8个视频流,分辨率为1080p,每秒30帧,支持resnet10模式,并与IoT Edge兼容。如果您需要处理更多视频流,同样的代码可以用于更强大的NVIDIA Jetson设备(如TX2或Xavier),以及服务器级设备(包括NVIDIA T4或其他NVIDIA Tesla gpu)。


准备工作:

  • 你需要一个NVIDIA Jetson Nano设备,最理想的是采用DC电源(5V4A),它需要一个跳线帽在J48引脚上。有关更多细节,请参阅菜鸟手册(1):给Jetson Nano安装DC电源。另外,5V-2.5A微型usb电源可能会限制您的Deepstream应用程序的性能。

  • 要可视化的视频,你需要一个HDMI显示器和电缆连接到你的NVIDIA Jetson Nano。

  • 安装Jetson Nano基础映像:安装它的基础映像。它基于Ubuntu 18.04,已经包含了NVIDIA驱动程序版本> 418,CUDA和NVIDIA - docker。

  • 验证NVIDIA docker已经安装:运行 nvidia-docker --help——帮助验证您已经安装了NVIDIA -docker

  • 安装IoT Edge:参见 Azure IoT Edge installation instructions for Ubuntu Server 18.04。跳过安装容器运行时部分,因为我们将使用已经安装的nvidia-docker。使用手动供应选项将设备连接到IoT Hub 。

  • 在开发者的机器上安装VS Code和它的the IoT Edge extension:在开发者的机器上(通常不是你的Jetson Nano,尽管它可能是),获得VS代码及其物联网边缘扩展。配置此扩展与您的 IoT Hub

从 Azure Marketplace上配置Deepstream

我们将从在VS代码中创建一个新的物联网边缘解决方案开始,添加来自 Azure Marketplace 的Deepstream模块,并将其部署到我们的Jetson Nano中。

这里您将使用VS代码,因为Deepstream是一个SDK,通常需要进行调整或连接到自定义模块,以交付端到端解决方案。

在你的开发机上,在VS Code里面:

第一步. 创建一个新的 new IoT Edge solution

1.打开命令面板(Ctrl+Shift+P);

2.选择:Azure IoT Edge: New IoT Edge Solution;

3. 选择一个父文件夹;

4.给它起个名字;

5.选择Empty Solution(如果提示,接受安装iotedgehubdev)

第二步:将Deepstream模块添加到solution中

1.打开命令面板(Ctrl+Shift+P)

2.选择Azure IoT Edge: Add IoT Edge module

3.选择默认的部署清单(deployment.template.json)

4.选择Module from Azure Marketplace

5.它会打开一个新标签,显示Azure市场提供的所有物联网边缘模块。选择Nvidia DeapStream SDK 4.x。为Jetson计划(Jetson)选择最新的标签。

第三步:将solution部署到您的设备:

1.右键单击deployment.nano.template.json文件生成IoT Edge Deployment Manifest;

2.右键单击/config文件夹中生成的文件,为单个设备创建部署;

3. 选择你的IoT Edge device

第四步:开始监视从设备发送到云的消息

1.右键点击你的设备(左下角);

2.选择Start Monitoring内置事件端点


要等待一会(要有足够的时间让IoT Edge 下载并启动Deepstream模块,Deepstream模块的大小为1.75GB),你就可以在VS代码中通过让IoT Edge运行时看到Deepstream发送到云的消息。

这些消息是对样本视频进行深度处理并使用样本AI模型进行分析的结果,该模型检测视频中的人和车,并为找到的每个对象发送消息。