英伟达® 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协议适配器)
- 从 github 上下载 librdkafka 库:
$ git clone https://github.com/edenhill/librdkafka.git
- 配置、构建库
$ cd librdkafka
$ git reset --hard 7101c2310341ab3f4675fc565f64f0967e135a6a
./configure
$ make
$ sudo make install
- 将生成的库复制到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
- 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
- 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
- Change the repository name and download URL in the deb commands shown below:
deb https://repo.download.nvidia.com/jetson/common r32.5 main
- Save and close the source configuration file.
- 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
接下来我们可以体验一下参考应用程序:
- 转到 samples 目录。我的机器上安装到了
/opt/nvidia/deepstream/deepstream-5.1/samples
。 - 输入以下命令:
$ 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>
- 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.
- 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 中平台和操作系统兼容性的信息。
4. DeepStream Triton 推断服务器使用指南
Triton 推理服务器共享库作为 Jetson 上 DeepStream 的一部分预先安装。安装 Triton 推断服务器无需额外步骤。对于这两个平台,要运行示例,请遵循自述文件中运行 Triton 推断服务器示例部分的步骤,位置为:/opt/nvidia/deepstream/deepstream-5.1
参考资料: