用于 nvidia gpu 的 gstreamer 自定义插件

gstreamer custom plugin for nvidia gpu

我想开发一个gstreamer插件,可以使用显卡GPU(NVIDIA RTX2xxx)提供的加速。 objective 是要有一个快速的 gstreamer 管道来处理视频流,其中包括一个自定义过滤器。

经过两天谷歌搜索,我找不到任何示例或提示。

  1. 找到的最佳替代方法之一是使用“nvivafilter”,将 cuda 模块作为参数传递。但是,没有地方解释如何安装此插件或提供示例。最糟糕的是,它似乎可能特定于 Nvidia Jetson 硬件。

  2. 另一种选择似乎是在 opencv python 脚本中使用 gstreamer。但这意味着我不知道如何影响性能的混合。

  3. 这个 gstreamer tutorial 讨论了几个库。但似乎过时了,没有提供细节。

  4. RidgeRun 似乎有类似于“nvivafilter”的东西,但没有 FOSS。

有没有人对如何进行有任何例子或建议。

我建议您从安装 DS 5.0 开始,然后浏览提供的示例和应用程序。它建立在 Gstreamer 之上。 Deepstream Instalation guide

安装很简单。您会发现构建了自定义解析器。 您将需要安装以下内容:Ubuntu 18.04GStreamer 1.14.1NVIDIA driver 440 或更高版本,CUDA 10.2TensorRT 7.0 或更高版本。

这里是一个 运行 带有 4 个流的应用程序示例。 deepstream-app -c /opt/nvidia/deepstream/deepstream-5.0/samples/configs/deepstream-app/source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt

DS 的优势在于所有视频流水线都在 GPU 上进行了优化,包括解码和预处理。你总是可以 运行 Gstreameropencv 而已,根据我的经验,这不是一个有效的实现。

构建自定义解析器: 解析器需要将原始张量数据从推理转换为检测到的对象周围边界框的 (x,y) 位置。此 post 处理算法将根据检测架构而有所不同。 如果使用 Deepstream 4.0、迁移学习工具包 1.0 和 TensorRT 6.0:按照存储库中的说明进行操作 https://github.com/NVIDIA-AI-IOT/deepstream_4.x_apps

如果使用 Deepstream 5.0、迁移学习工具包 2.0 和 TensorRT 7.0:继续遵循 https://github.com/NVIDIA-AI-IOT/deepstream_tlt_apps

中的说明

资源:

  1. 起始页:https://developer.nvidia.com/deepstream-sdk
  2. 深度下载和资源:https://developer.nvidia.com/deepstream-getting-started
  3. 快速入门手册:https://docs.nvidia.com/metropolis/deepstream/dev-guide/index.html
  4. 将 TLT 模型与 Deepstream SDK 集成:https://github.com/NVIDIA-AI-IOT/deepstream_tlt_apps
  5. Deepstream 开发博客:https://devblogs.nvidia.com/building-iva-apps-using-deepstream-5.0/
  6. 插件手册:https://docs.nvidia.com/metropolis/deepstream/plugin-manual/index.html
  7. Deepstream 5.0 发行说明:https://docs.nvidia.com/metropolis/deepstream/DeepStream_5.0_Release_Notes.pdf
  8. 迁移学习工具包 v2.0 发行说明:https://docs.nvidia.com/metropolis/TLT/tlt-release-notes/index.html
  9. 迁移学习工具包 v2.0 入门指南:https://docs.nvidia.com/metropolis/TLT/tlt-getting-started-guide/index.html
  10. 大都会文档:https://docs.nvidia.com/metropolis/
  11. TensorRT:https://developer.nvidia.com/tensorrt
  12. TensorRT 文档:https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html
  13. TensorRT 开发博客:https://devblogs.nvidia.com/speeding-up-deep-learning-inference-using-tensorrt/
  14. TensorRT 开源软件:https://github.com/NVIDIA/TensorRT
  15. https://gstreamer.freedesktop.org/documentation/base/gstbasetransform.html?gi-language=cGood运气。