点击查看系列文章目录
0 背景
近日,NV 发布了 deepstream6.0,有不少新功能,本文对新功能进行一个介绍与尝鲜,后续也会对我比较感兴趣的一些功能进行详细介绍与测试。
1 安装方法
安装方法与之前的大同小异,需要注意的是环境依赖性,在 jetson 上需要将 jetpack 更新到 4.6,如果你现在是 4.4 及以上版本的 jetpack,可以使用《NVIDIA Jetson之OTA远程升级Jetpack》中的方法升级,否则需要使用 NVIDIA SDK Manger 工具刷机,或者烧写 SD 卡。
安装方法参考《DeepStream4.0系列之环境配置安装》与《DeepStream5.0系列之环境安装》,我这里在 jetson 设备上进行安装测试,在官网下载压缩包
然后拷贝到 jetson 上,解压安装
sudo tar -jxvf deepstream_sdk_v6.0.0_jetson.tbz2 -C /
cd /opt/nvidia/deepstream/deepstream-6.0/
sudo ./install.sh
安装后之后运行指令验证一下,可以看到安装成功
nvidia@nvidia:~$ deepstream-app --version-all
deepstream-app version 6.0.0
DeepStreamSDK 6.0.0
CUDA Driver Version: 10.2
CUDA Runtime Version: 10.2
TensorRT Version: 8.0
cuDNN Version: 8.2
libNVWarp360 Version: 2.0.1d3
2 更新内容
官方介绍 6.0 有以下内容更新
- Graph Composer:图生成器,即使用 UI 界面进行拖拽式搭建 pipeline,可以通过容器快速搭建。
- 动作识别:使用新的预处理插件(nvdspreprocess)创建pipeline,来识别场景中的动作,可以指定感兴趣区域以及同时处理的帧数
- 音视频同步:应用于广播和网络会议场景
- 自动语音识别 ASR:新插件可以对输入的音频数据进行识别,然后转化为文本输出
- python 版本的源码更新
- Tracker 跟踪器相关更新:性能提升、容易集成、支持 DeepSORT 跟踪算法
- 全新的 REDIS 支持,在 5.1 版本中是 alpha 版本
- 在 NVIDIA IOT GitHub 提供新的示例,包括 ASR、动作识别、姿态估计、情绪识别、手势识别等
在发行文档中介绍了改版本新增的插件有 4 个:
- gst-nvdspreprocess 插件:可以对输入流进行前处理,配置 ROI 区域
- gst-nvdsasr 插件:基于 NVIDIA Riva SDK 开发的自动语音识别插件
- gst-nvds_text_to_speech 插件:基于 NVIDIA Riva SDK 开发的文本转语音插件
- gst-nvdsudpsrc 插件:用于支持 Mellanox NIC
以及一些新的示例,具体后续会展开
3 未解决问题
- V4L2 编解码器最多支持 1024 路(解码 + 编码)
- 在 jetson 设备上,gst-dsexample 示例中的 config_infer_primary.txt 配置文件中的 detected-min-w 和 detected-min-h 必须要比 32 大
- kafka 不能自动重连,需要手动重启
- 在 jetson 设备上,无法通过 SSH 连接进行 X11 桌面转发,即不能远程显示
- deepstream 中的模型宽度需要是 4 的倍数,高度需要是 2 的倍数
- Triton 目前只支持单张 GPU 上推理,需要在模型中进行指定
- 一些模型的输出结果与 TAO 中推理结果不同,原因是缩放算法存在区别
- 动态修改分辨率支持不太好
- OTA 模式只支持相同的网络进行更新
- gstreamer 的 sink 元件发送 QOS 事件会导致内存泄漏,为了避免这个问题,需要在 sink 中设置 qos=0
- objectDetector_FasterRCNN 示例仅能在默认 tensorrt 插件下运行
- 对于 TAO 工具中的模型,需要编译 OSS 模块
- 在 T4 平台上使用 480.63.01 版本的驱动时,会有 2% 到 4% 的性能下降,解决方法是使用 465+ 的其它版本驱动
- 在 NX 和 AGX 上的 DLA 性能要比 5.1 版本的低一些,原因是一些新的层运行在 DLA 上 ,来解放更多 GPU(DLA 要比 GPU 弱)
- 在 nano TX1 TX2 上运行 deepstream-app 时,会看到很多警告:A lot of buffers are being dropped,可以使用性能最好的 tracker 进行跟踪,比如 ll-config-file= config_tracker_NvDCF_max_perf.yml
- YoloV3,faster rcnn,ssd,dssd 与 5.1 版本相比速度慢一些,因为 TAO3.0 的模型要比之前版本的重
- deepstream 不支持在 16GB 版本的 NX进行安装,因为 jetpack 已经几乎占满了 16 GB 内存,建议采用 32GB 的 SD 卡
- Rivermax SDK 不是 deepstream 的组成部分,因此出现下边的警告时可以忽略:GStreamer-WARNING **: 11:38:46.882: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer1.0/deepstream/libnvdsgst_udp.so': librivermax.so.0: cannot open shared object file: No such file or directory
- 在 deepstream triton docker 中,与 GstVideoAggregator 相关的警告都可以忽略