用于 nvidia gpu 的 gstreamer 自定义插件
gstreamer custom plugin for nvidia gpu
我想开发一个gstreamer插件,可以使用显卡GPU(NVIDIA RTX2xxx)提供的加速。 objective 是要有一个快速的 gstreamer 管道来处理视频流,其中包括一个自定义过滤器。
经过两天谷歌搜索,我找不到任何示例或提示。
找到的最佳替代方法之一是使用“nvivafilter”,将 cuda 模块作为参数传递。但是,没有地方解释如何安装此插件或提供示例。最糟糕的是,它似乎可能特定于 Nvidia Jetson 硬件。
另一种选择似乎是在 opencv python 脚本中使用 gstreamer。但这意味着我不知道如何影响性能的混合。
这个 gstreamer tutorial 讨论了几个库。但似乎过时了,没有提供细节。
RidgeRun 似乎有类似于“nvivafilter”的东西,但没有 FOSS。
有没有人对如何进行有任何例子或建议。
我建议您从安装 DS 5.0 开始,然后浏览提供的示例和应用程序。它建立在 Gstreamer 之上。 Deepstream Instalation guide
安装很简单。您会发现构建了自定义解析器。
您将需要安装以下内容:Ubuntu 18.04
、GStreamer 1.14.1
、NVIDIA driver 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 上进行了优化,包括解码和预处理。你总是可以 运行 Gstreamer
和 opencv
而已,根据我的经验,这不是一个有效的实现。
构建自定义解析器:
解析器需要将原始张量数据从推理转换为检测到的对象周围边界框的 (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
中的说明
资源:
- 起始页:https://developer.nvidia.com/deepstream-sdk
- 深度下载和资源:https://developer.nvidia.com/deepstream-getting-started
- 快速入门手册:https://docs.nvidia.com/metropolis/deepstream/dev-guide/index.html
- 将 TLT 模型与 Deepstream SDK 集成:https://github.com/NVIDIA-AI-IOT/deepstream_tlt_apps
- Deepstream 开发博客:https://devblogs.nvidia.com/building-iva-apps-using-deepstream-5.0/
- 插件手册:https://docs.nvidia.com/metropolis/deepstream/plugin-manual/index.html
- Deepstream 5.0 发行说明:https://docs.nvidia.com/metropolis/deepstream/DeepStream_5.0_Release_Notes.pdf
- 迁移学习工具包 v2.0 发行说明:https://docs.nvidia.com/metropolis/TLT/tlt-release-notes/index.html
- 迁移学习工具包 v2.0 入门指南:https://docs.nvidia.com/metropolis/TLT/tlt-getting-started-guide/index.html
- 大都会文档:https://docs.nvidia.com/metropolis/
- TensorRT:https://developer.nvidia.com/tensorrt
- TensorRT 文档:https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html
- TensorRT 开发博客:https://devblogs.nvidia.com/speeding-up-deep-learning-inference-using-tensorrt/
- TensorRT 开源软件:https://github.com/NVIDIA/TensorRT
- https://gstreamer.freedesktop.org/documentation/base/gstbasetransform.html?gi-language=cGood运气。
我想开发一个gstreamer插件,可以使用显卡GPU(NVIDIA RTX2xxx)提供的加速。 objective 是要有一个快速的 gstreamer 管道来处理视频流,其中包括一个自定义过滤器。
经过两天谷歌搜索,我找不到任何示例或提示。
找到的最佳替代方法之一是使用“nvivafilter”,将 cuda 模块作为参数传递。但是,没有地方解释如何安装此插件或提供示例。最糟糕的是,它似乎可能特定于 Nvidia Jetson 硬件。
另一种选择似乎是在 opencv python 脚本中使用 gstreamer。但这意味着我不知道如何影响性能的混合。
这个 gstreamer tutorial 讨论了几个库。但似乎过时了,没有提供细节。
RidgeRun 似乎有类似于“nvivafilter”的东西,但没有 FOSS。
有没有人对如何进行有任何例子或建议。
我建议您从安装 DS 5.0 开始,然后浏览提供的示例和应用程序。它建立在 Gstreamer 之上。 Deepstream Instalation guide
安装很简单。您会发现构建了自定义解析器。
您将需要安装以下内容:Ubuntu 18.04
、GStreamer 1.14.1
、NVIDIA driver 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 上进行了优化,包括解码和预处理。你总是可以 运行 Gstreamer
和 opencv
而已,根据我的经验,这不是一个有效的实现。
构建自定义解析器: 解析器需要将原始张量数据从推理转换为检测到的对象周围边界框的 (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
中的说明资源:
- 起始页:https://developer.nvidia.com/deepstream-sdk
- 深度下载和资源:https://developer.nvidia.com/deepstream-getting-started
- 快速入门手册:https://docs.nvidia.com/metropolis/deepstream/dev-guide/index.html
- 将 TLT 模型与 Deepstream SDK 集成:https://github.com/NVIDIA-AI-IOT/deepstream_tlt_apps
- Deepstream 开发博客:https://devblogs.nvidia.com/building-iva-apps-using-deepstream-5.0/
- 插件手册:https://docs.nvidia.com/metropolis/deepstream/plugin-manual/index.html
- Deepstream 5.0 发行说明:https://docs.nvidia.com/metropolis/deepstream/DeepStream_5.0_Release_Notes.pdf
- 迁移学习工具包 v2.0 发行说明:https://docs.nvidia.com/metropolis/TLT/tlt-release-notes/index.html
- 迁移学习工具包 v2.0 入门指南:https://docs.nvidia.com/metropolis/TLT/tlt-getting-started-guide/index.html
- 大都会文档:https://docs.nvidia.com/metropolis/
- TensorRT:https://developer.nvidia.com/tensorrt
- TensorRT 文档:https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html
- TensorRT 开发博客:https://devblogs.nvidia.com/speeding-up-deep-learning-inference-using-tensorrt/
- TensorRT 开源软件:https://github.com/NVIDIA/TensorRT
- https://gstreamer.freedesktop.org/documentation/base/gstbasetransform.html?gi-language=cGood运气。