英伟达® DeepStream软件开发工具包(SDK)是一个用于构建智能视频分析(IVA)管道的加速人工智能框架。DeepStream 可运行在 NVIDIA T4、NVIDIA Ampere 和 NVIDIA® Jetson™ Nano、NVIDIA® Jetson AGX Xavier™、NVIDIA® Jetson Xavier NX™、 NVIDIA® Jetson™ TX1 和 TX2。

1. 安装 Jetson

在安装 DeepStream SDK 之前,本节介绍如何准备 Jetson。

1.1. 安装 Jetson SDK 组件

从下面链接安装 NVIDIA SDK 管理器: https://developer.nvidia.com/embedded/jetpack,您将使用此安装JetPack 4.5.1 GA(对应于L4T 32.5.1版本)。

  • NVIDIA SDK 管理器是一个图形化的应用程序,它可以闪烁并安装JetPack包。
  • 闪烁过程大约需要10-30分钟,具体取决于主机系统。

如果您使用的是 Jetson Nano 或 Jetson Xavier NX developer kit,则可以从下载 SD 卡映像https://developer.nvidia.com/embedded/jetpack。这些内容与 CUDA、TensorRT 和 cuDNN 一起打包发布。

1.2. 安装依赖项

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

$ sudo apt install \
libssl1.0.0 \
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=2.11-1

安装 librdkafka (为消息代理启用Kafka协议适配器)

  1. 从 github 上下载 librdkafka 库:
$ git clone https://github.com/edenhill/librdkafka.git
  1. 配置、构建库
$ cd librdkafka
$ git reset --hard 7101c2310341ab3f4675fc565f64f0967e135a6a
./configure
$ make
$ sudo make install
  1. 将生成的库复制到deepstream目录:
$ sudo mkdir -p /opt/nvidia/deepstream/deepstream-5.1/lib
$ sudo cp /usr/local/lib/librdkafka* /opt/nvidia/deepstream/deepstream-5.1/lib

1.3. 安装 DeepStream SDK

  • Method 1: 利用 SDK Manager 管理安装

Select DeepStreamSDK from the Additional SDKs section along with JP 4.5.1 software components for installation.

  • Method 2: Using the DeepStream tar package

Download the DeepStream 5.1 Jetson tar package deepstream_sdk_v5.1.0_jetson.tbz2, to the Jetson device.
Enter the following commands to extract and install the DeepStream SDK:

$ sudo tar -xvf deepstream_sdk_v5.1.0_jetson.tbz2 -C /
$ cd /opt/nvidia/deepstream/deepstream-5.1
$ sudo ./install.sh
$ sudo ldconfig
实测,方法2有效。所需的安装文件 deepstream_sdk_v5.1.0_jetson.tbz2 参加下面说明中的 Download .tar 下载连接。
DeepStream 的官网下载地址:https://developer.nvidia.com/deepstream-getting-started

DeepLearning4J怎么用GPU_入门

  • Download .tar: deepstream_sdk_v5.1.0_jetson.tbz2
  • Download .deb: deepstream-5.1_5.1.0-1_arm64.deb
  • for Edge
  • Method 3: Using the DeepStream Debian package

Download the DeepStream 5.1 Jetson Debian package deepstream-5.1_5.1.0-1_arm64.deb, to the Jetson device. Then enter the command:

可按照上面说明中的 Download .deb 下载安装包。但是在安装的时候出现了错误,说是缺少依赖项。

The following packages have unmet dependencies:
 deepstream-5.1 : Depends: libnvvpi1 (>= 1.0.13) but it is not installable

既然方法2简单好用,就不折腾了。

  • Method 4: Using the apt-server
  1. Open the apt source configuration file in a text editor, using a command similar to $ sudo vi /etc/apt/sources.list.d/nvidia-l4t-apt-source.list
  2. Change the repository name and download URL in the deb commands shown below: deb https://repo.download.nvidia.com/jetson/common r32.5 main
  3. Save and close the source configuration file.
  4. Enter the commands:
$ sudo apt update
$ sudo apt install deepstream-5.1
  • Method 5: Use Docker container DeepStream docker containers are available on NGC. See the Docker Containers section to learn about developing and deploying DeepStream using docker containers.

实测,方法4、5都不成功,郁闷!好在有一种方法能正常工作。

1.4. 运行 deepstream-app (参考应用程序)

查看安装情况
安装完成后,输入deepstream-app --version-all 来查看安装的版本,得到输出如下:

$ deepstream-app --version-all
deepstream-app version 5.1.0
DeepStreamSDK 5.1.0
CUDA Driver Version: 10.2
CUDA Runtime Version: 10.2
TensorRT Version: 7.1
cuDNN Version: 8.0
libNVWarp360 Version: 2.0.1d3

接下来我们可以体验一下参考应用程序:

  1. 转到 samples 目录。我的机器上安装到了 /opt/nvidia/deepstream/deepstream-5.1/samples
  2. 输入以下命令:
$ deepstream-app -c <path_to_config_file>

其中,<path_to_config_file>是其中一个参考应用程序的配置文件,可以在 configs/deepstream-app 找到。可以在软件包目录找到可用的文件清单。

可以在 /opt/nvidia/deepstream/deepstream-5.1/samples 文件夹找到配置文件。例如:/opt/nvidia/deepstream/deepstream-5.1/samples/configs/deepstream-app/config_infer_primary.txt。输入下面的命令可以查看应用程序用法:

$ deepstream-app --help

保存 TensorRT Engine/Plan 文件, 执行下面的命令::

$ sudo deepstream-app -c <path_to_config_file>

  1. To show labels in 2D Tiled display view, expand the source of interest with mouse left-click on the source. To return to the tiled display, right-click anywhere in the window.
  2. Keyboard selection of source is also supported. On the console where application is running, press the z key followed by the desired row index (0 to 9), then the column index (0 to 9) to expand the source. To restore 2D Tiled display view, press z again.

2. 运行在无 X server 环境下

SDK 提供的默认配置文件将基于 EGL 的 nveglglessink 作为默认渲染器(由[sink]组中的type=2表示)。渲染器需要一个正在运行的X服务器,如果没有,则会失败。在缺少X服务器的情况下,DeepStream 参考应用程序提供了通过 RTSP 流传输输出的替代功能。这可以通过在配置文件中添加RTSP out sink 组来启用。有关示例,请参阅 source30_1080p_dec_infer-resnet_tiled_display_int8.txt 文件中的 [sink2] 组。不要忘记通过为相应的接收器组设置 enable=0 来禁用 nveglessink 渲染器。

3. 平台和操作系统兼容性

下表提供了有关当前和早期版本的 DeepStream 中平台和操作系统兼容性的信息。

DeepLearning4J怎么用GPU_Triton_02

4. DeepStream Triton 推断服务器使用指南

Triton 推理服务器共享库作为 Jetson 上 DeepStream 的一部分预先安装。安装 Triton 推断服务器无需额外步骤。对于这两个平台,要运行示例,请遵循自述文件中运行 Triton 推断服务器示例部分的步骤,位置为:/opt/nvidia/deepstream/deepstream-5.1


参考资料: