gpu - 用于 nvidia gpu 的 gstreamer 自定义插件

标签 gpu gstreamer nvidia

我想开发一个gstreamer插件,可以使用显卡GPU(NVIDIA RTX2xxx)提供的加速。目标是拥有一个快速的 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 驱动程序 440 或更高版本、CUDA 10.2,TensorRT 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 上进行了优化,包括解码和预处理。您始终可以仅与 opencv 一起运行 Gstreamer,根据我的经验,这不是一个有效的实现。

构建自定义解析器: 解析器需要将原始张量数据从推理转换为检测到的对象周围边界框的 (x,y) 位置。这种后处理算法将根据检测架构而有所不同。 如果使用 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运气。

关于gpu - 用于 nvidia gpu 的 gstreamer 自定义插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62853161/

相关文章:

python - python Tensorflow工作簿执行后取消分配内存

cuda - 何时调用 cudaDeviceSynchronize?

macos - 不要自动切换到更高端的独立GPU

gpu - 如何在 Pytorch 中修复 "RuntimeError: CUDA error: device-side assert triggered"

CUDA:如何运行 Mark Harris 的 NVIDIA 论文中描述的求和并行归约代码?

c++ - Gstreamer H264 管道滞后

c - 调用 clFinish() 时 OpenCL 无效命令队列

java - 从 gstreamer 管道捕获图像

Gstreamer : transcoding Matroska video to mp4

linux - CUDA 设备似乎被阻止