deepstream学习笔记(一):C与python环境部署与测试

引言

NVIDIA Deepstream SDK是一个通用的Steaming分析框架,可以让你从各个传感器中构建你自己的应用。它实际上是一个建立在GStreamer之上的SDK,GStreamer是一个开源的多媒体分析框架。NVIDIA将Deepstream作为SDK,旨在加速流视频分析所需的完整堆栈。它是一个模块化的SDK,允许开发人员为智能视频分析(IVA)构建一个高效的管道。您在这里看到的是一个典型的IVA管道,由Deepstream插件构建,它支持插件使用的底层硬件、管道的每个功能,并利用硬件体系结构移动数据,而无需任何内存拷贝。

deepstream初步介绍

在这里插入图片描述
DeepStream 以 GStreamer 插件的形式提供构建块,可用于构建高效的视频分析管道。有超过 20 个插件为各种任务进行了硬件加速。

  • 流数据可以通过 RTSP 通过网络或来自本地文件系统或直接来自摄像机。使用 CPU 捕获流。一旦帧进入内存,它们就会被发送到使用 NVDEC 加速器进行解码。用于解码的插件称为Gst-nvvideo4linux2
  • 解码后,有一个可选的图像预处理步骤,可以在推理之前对输入图像进行预处理。预处理可以是图像去扭曲或色彩空间转换。Gst-nvdewarper插件可以对鱼眼或 360 度相机的图像进行反扭曲。gst-nvvideoconvert插件可以对帧进行颜色格式转换。这些插件使用 GPU 或 VIC(视觉图像合成器)。
  • 下一步是批处理帧以获得最佳推理性能。批处理是使用Gst-nvstreammux插件完成的。
  • 对帧进行批处理后,将其发送以进行推理。推理可以使用 NVIDIA 的推理加速器运行时 TensorRT 完成,也可以使用 Triton 推理服务器在 TensorFlow 或PyTorch等本机框架中完成。本机 TensorRT 推理是使用Gst-nvinfer插件执行的,使用 Triton 的推理是使用Gst-nvinferserver插件完成的。推理可以为 Jetson AGX Xavier 和 Xavier NX 使用 GPU 或 DLA(深度学习加速器)。
  • 在推理之后,下一步可能涉及跟踪对象。SDK 中有几个内置的参考跟踪器,从高性能到高精度。使用Gst-nvtracker插件执行对象跟踪。
  • 为了创建可视化工件,例如边界框、分割掩码、标签,有一个名为Gst-nvdsosd的可视化插件。
  • 最后,为了输出结果,DeepStream 提供了各种选项:使用屏幕上的边界框渲染输出、将输出保存到本地磁盘、通过 RTSP 流式传输或仅将元数据发送到云端。为了将元数据发送到云端,DeepStream 使用Gst-nvmsgconv和Gst-nvmsgbroker插件。Gst-nvmsgconv将元数据转换为模式有效负载,Gst-nvmsgbroker建立与云的连接并发送遥测数据。有几种内置的代理协议,例如 Kafka、MQTT、AMQP 和 Azure IoT。可以创建自定义代理适配器。

deepstream安装过程

deepstream部署的方式与openvino差不多,它也提供了镜像,但需要前置条件,需要安装nvidia-docker,安装参考:docker学习笔记(9):nvidia-docker安装、部署与使用 下面从宿主机与docker两种方式介绍:

宿主机环境

输入以下命令以安装必备软件包:

$ sudo apt install \
libssl1.1 \
libgstreamer1.0-0 \
gstreamer1.0-tools \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
libgstrtspserver-1.0-0 \
libjansson4 \
libyaml-cpp-dev

然后安装 librdkafka(为消息代理启用 Kafka 协议适配器,不知道是否是可选参数,但应该没有额外标示,还是需要安装的):

"""1. 从 GitHub克隆librdkafka存储库:"""
$ git clone https://github.com/edenhill/librdkafka.git

"""2. 配置和构建库:"""
$ cd librdkafka
# $ git reset --hard 7101c2310341ab3f4675fc565f64f0967e135a6a  # 可选可不选,我安装并没有进行回退,没有啥问题,而且kafka主要存在deepstream-test5的例程
./configure
$ make
$ sudo make install

"""将生成的库复制到deepstream目录:"""
$ sudo mkdir -p /opt/nvidia/deepstream/deepstream-6.1/lib
$ sudo cp /usr/local/lib/librdkafka* /opt/nvidia/deepstream/deepstream-6.1/lib

安装完必要依赖后,可以直接从官网中下载Deepstream SDK包:https://developer.nvidia.com/deepstream-getting-started
在这里插入图片描述

方便定义过程说明阿亮完全不同过程定义的部分结果说明,当前是

$  sudo tar -xvf deepstream_sdk_v6.1.0_jetson.tbz2 -C /
$ cd /opt/nvidia/deepstream/deepstream-6.1
$ sudo ./install.sh
$ sudo ldconfig

docker镜像

这里如果装了nvidia-docker的话,直接一句命令就能省略上述所有步骤,直接从nvidia仓库中拉取相关版本的镜像,如下表:

Docker Containers for dGPU

Container

Container 拉取命令

base docker (仅包含运行时库和GStreamer插件。可以用作为DeepStream应用程序构建自定义Docker的基础)

docker pull nvcr.io/nvidia/deepstream:6.1-base

devel docker (包含整个SDK以及用于构建DeepStream应用程序和graph composer的开发环境)

docker pull nvcr.io/nvidia/deepstream:6.1-devel

Triton推理服务器docker与Triton推理服务器和依赖项一起安装,以及用于构建DeepStream应用程序的开发环境

docker pull nvcr.io/nvidia/deepstream:6.1-triton

安装了DeepStream-test5-app并删除了所有其他参考应用程序的DeepStream IoT docker

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

submarineas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值