• 4.NVIDIA Deepstream开发指南中文版--C和C++示例应用程序源详细信息


    NVIDIA Deepstream C和C++示例应用程序源详细信息

    在这里插入图片描述

    DeepStream SDK 包包括包含插件、库、应用程序和源代码的档案。 对于 Debian 安装(在 Jetson 或 dGPU 上)和 SDK Manager 安装,源目录位于 /opt/nvidia/deepstream/deepstream-6.1/sources。 对于 tar 包,源文件位于提取的 deepstream 包中。 DeepStream Python 绑定和示例应用程序可作为单独的包提供。 有关更多信息,请参阅 https://github.com/NVIDIA-AI-IOT/deepstream_python_apps。

    使用 Graph Composer 创建的 DeepStream 图列在参考图部分下。 有关详细信息,请参阅 Graph Composer 简介

    Sample source details

    参考测试应用

    源目录中的路径

    描述

    Sample test application 1

    apps/sample_apps/deepstream-test1

    如何将 DeepStream 元素用于单个 H.264 流的示例:filesrc → decode → nvstreammux → nvinfer(primary detector) → nvdsosd → renderer。 这个应用程序使用 resnet10.caffemodel 进行检测。

    Sample test application 2

    apps/sample_apps/deepstream-test2

    如何将 DeepStream 元素用于单个 H.264 流的示例: filesrc → decode → nvstreammux → nvinfer (primary detector) → nvtracker → nvinfer (secondary classifier) → nvdsosd → renderer. 这个应用程序使用 resnet10.caffemodel 进行检测和 3 个分类器模型(即 Car Color、Make 和 Model).

    Sample test application 3

    apps/sample_apps/deepstream-test3

    基于 deepstream-test1(简单测试应用程序 1)构建,演示如何:

    • 在流程中使用多个来源。

    • 使用 uridecodebin 接受任何类型的输入(例如 RTSP/文件)、任何 GStreamer 支持的容器格式和任何编解码器。

    • 配置 Gst-nvstreammux 以生成一批帧并对其进行推断以更好地利用资源。

    • 提取流元数据,其中包含有关批处理缓冲区中帧的有用信息。

    这个应用程序使用 resnet10.caffemodel 进行检测。

    Sample test application 4

    apps/sample_apps/­deepstream-test4

    基于 deepstream-test1 构建单个 H.264 流:filesrc、decode、nvstreammux、nvinfer、nvdsosd、renderer 以演示如何:

    • 在流程中使用 Gst-nvmsgconv 和 Gst-nvmsgbroker 插件。

    • 创建 NVDS_META_EVENT_MSG 类型元数据并将其附加到缓冲区。

    • 将 NVDS_META_EVENT_MSG 用于不同类型的对象,例如 车辆和人。

    • 如果元数据通过 extMsg 字段扩展,则实现“复制”和“释放”功能以供使用。

    这个应用程序使用 resnet10.caffemodel 进行检测。

    Sample test application 5

    apps/sample_apps/­deepstream-test5

    构建在 deepstream-app 之上。 证明:

    • 在多流流程中使用 Gst-nvmsgconv 和 Gst-nvmsgbroker 插件。

    • 如何将配置文件中的 Gst-nvmsgbroker 插件配置为接收器插件(用于 KAFKA、Azure 等)。

    • 如何处理来自 RTSP 服务器或摄像头的 RTCP 发送方报告,并将 Gst Buffer PTS 转换为 UTC 时间戳。

    有关详细信息,请参阅 deepstream_test5_app_main.c 中的 RTCP Sender Report 回调函数 test5_rtcp_sender_report_callback() 注册和使用。 使用 rtpmanager 元素的“handle-sync”信号注册 GStreamer 回调记录在 apps-common/src/deepstream_source_bin.c 中。

    这个应用程序使用 resnet10.caffemodel 进行检测。

    AMQP protocol test application

    libs/amqp_­protocol_adaptor

    用于测试 AMQP 协议的应用程序。 这个应用程序使用 resnet10.caffemodel 进行检测。

    Azure MQTT test application

    libs/azure_protocol_adaptor

    测试应用程序以使用 MQTT 显示 Azure IoT device2edge 消息传递和 device2cloud 消息传递。 这个应用程序使用 resnet10.caffemodel 进行检测。

    DeepStream reference application

    apps/sample_apps/­deepstream-app

    DeepStream 参考应用程序的源代码。 这个应用程序使用 resnet10.caffemodel 进行检测和 3 个分类器模型(即 Car Color、Make 和 Model)。

    UFF SSD detector

    sources/objectDetector_SSD

    SSD 检测器模型的配置文件和自定义库实现。

    Faster RCNN detector

    sources/objectDetector_FasterRCNN

    FasterRCNN 模型的配置文件和自定义库实现。

    Yolo detector

    sources/objectDetector_Yolo

    Yolo 模型的配置文件和自定义库实现,目前是 Yolo v2、v2 tiny、v3 和 v3 tiny。

    Dewarper example

    apps/sample_apps/deepstream-dewarper-test

    演示单个或多个 360 度摄像机流的 dewarper 功能。 从 CSV 文件中读取相机校准参数,并在显示屏上渲染通道和光斑表面。

    Optical flow example

    apps/sample_apps/deepstream-nvof-test

    演示单个或多个流的光流功能。 此示例使用两个 GStreamer 插件(Gst-nvof 和 Gst-nvofvisual)。 Gst-nvof 元素生成 MV(运动矢量)数据并将其作为用户元数据附加。 Gst-nvofvisual 元素使用预定义的色轮矩阵可视化 MV 数据。

    Custom meta data example

    apps/sample_apps/deepstream-user-metadata-test

    演示如何将自定义或用户特定的元数据添加到 DeepStream 的任何组件。 测试代码将一个填充了用户数据的 16 字节数组附加到所选组件。 数据在另一个组件中检索。 这个应用程序使用 resnet10.caffemodel 进行检测。

    MJPEG and JPEG decoder and inferencing example

    apps/sample_apps/deepstream-image-decode-test

    建立在 deepstream-test3 上,以演示图像解码而不是视频。 此示例使用自定义解码箱,因此 MJPEG 编解码器可用作输入。 这个应用程序使用 resnet10.caffemodel 进行检测。

    Image/Video segmentation example

    apps/sample_apps/deepstream-segmentation-test

    演示使用语义或工业神经网络对多流视频或图像进行分割并将输出渲染到显示器。 此应用程序将 unet_output_graph.uff 用于工业用例,将 unetres18_v4_pruned0.65_800_data.uff 用于语义用例。

    Handling metadata before Gst-nvstreammux

    apps/sample_apps/deepstream-gst-metadata-test

    演示如何在 DeepStream 流程中的 Gst-nvstreammux 插件之前设置元数据,以及如何在 Gst-nvstreammux 之后访问它。 这个应用程序使用 resnet10.caffemodel 进行检测。

    Gst-nvinfer tensor meta flow example

    apps/sample_apps/deepstream-infer-tensor-meta-app

    演示如何将 nvinfer 张量输出作为元数据进行流动和访问。 注意:由于 OpenCV 已弃用,此二进制文件未打包。 此应用程序需要由用户编译。 这个应用程序使用 resnet10.caffemodel 进行检测和 3 个分类器模型(即 Car Color、Make 和 Model)。

    Preprocess example

    apps/sample_apps/deepstream-preprocess-test

    演示对为流配置的预处理 ROI 的推断。 这个应用程序使用 resnet10.caffemodel 进行检测。

    3D action recognition Reference app

    apps/sample_apps/deepstream-3d-action-recognition

    演示用于动作识别的基于序列批处理的 3D 或 2D 模型推理流程。 它还包括一个用于 NCSHW 时间批处理的基于序列的预处理自定义库。 在运行应用程序之前,请参阅 README 中的先决条件。 此应用程序使用 resnet18_2d_rgb_hmdb5_32.etlt 进行 2D 和 resnet18_3d_rgb_hmdb5_32.etlt 进行 3D 动作识别。

    Analytics example

    apps/sample_apps/deepstream-nvdsanalytics-test

    演示批量分析,如 ROI 过滤、线交叉、方向检测和过度拥挤。 这个应用程序使用 resnet10.caffemodel 进行检测。

    OpenCV example

    apps/sample_apps/deepstream-opencv-test

    演示在 dsexample 插件中使用 OpenCV。 需要使用 WITH_OPENCV=1 标志编译 dsexample。 这个应用程序使用 resnet10.caffemodel 进行检测。

    Image as Metadata example

    Apps/sample_apps / deepstream-image-meta-test

    演示如何将编码图像附加为元数据并将图像保存为 jpeg 格式。 这个应用程序使用 resnet10.caffemodel 进行检测。

    Appsrc and Appsink example

    apps/sample_apps/deepstream-appsrc-test

    演示 AppSrc 和 AppSink 分别用于使用和提供来自非 DeepStream 代码的数据。 这个应用程序使用 resnet10.caffemodel 进行检测。

    Transfer learning example

    apps/sample_apps/ deepstream-transfer-learning-app

    演示了一种机制,可以为置信度较低的对象保存图像,并且可以将其用于进一步训练。 这个应用程序使用 resnet10.caffemodel 进行检测。

    Mask-RCNN example

    apps/sample_apps/ deepstream-mrcnn-test

    使用 Mask-RCNN 模型演示实例分割。 注意:由于 OpenCV 已弃用,此二进制文件未打包。 此应用程序需要由用户编译。

    DeepStream Audio Reference Application

    apps/sample_apps/deepstream-audio

    演示音频分析流程的 DeepStream 参考应用程序的源代码。 这个应用程序使用 SONYC 音频模型对标签进行分类。

    Smart Record example

    apps/sample_apps/deepstream-testsr

    演示基于事件的智能记录功能。 这个应用程序使用 resnet10.caffemodel 进行检测。

    Automatic Speech Recognition

    apps/audio_apps/deepstream-asr-app

    演示自动语音识别功能。 注意:此应用程序需要 Riva ASR 服务可用。 在运行应用程序之前,请参阅 README 中的先决条件。 此应用程序的默认模型是 Jasper,其他选项是 CitriNet 和 QuartzNet。

    Text To Speech Conversion (Alpha)

    apps/audio_apps/deepstream-asr-tts-app

    演示文本到语音的转换功能以及自动语音识别。 注意:此应用程序需要 Riva TTS 和 ASR 服务可用。 在运行应用程序之前,请参阅自述文件中的先决条件。 此应用程序使用 CitriNet 模型进行 ASR 和 FastPitch,HiFi-GAN 模型用于 TTS。

    Audio+video+Text Synchronization (Alpha)

    apps/sample_apps/deepstream-avsync-app

    演示 DeepStream 流程中来自 nvdsasr 的音频、视频和文本输出的同步。 注意:此应用程序需要 Riva ASR 服务可用。 在运行应用程序之前,请参阅自述文件中的先决条件。 这个应用程序使用 Jasper 模型进行语音识别。

    DeepStream NMOS Application

    apps/sample_apps/deepstream-nmos

    此应用程序演示了如何将 DeepStream 应用程序创建为 NMOS 节点。 它使用一个库 (NvDsNmos),该库提供 API 来创建、销毁和内部管理 NMOS 节点。 NMOS 节点可以使用 AMWA IS-04 注册 API 自动发现和注册网络上的 NMOS 注册。 它还展示了如何创建各种视频和音频流程,同时运行它们并根据 NMOS 事件(例如来自 NMOS 控制器的 AMWA IS-05 连接 API 请求)重新配置它们。

    DeepStream UCX test 1

    apps/sample_apps/deepstream-ucx-test1

    演示如何使用通信插件 gst-nvdsucx 通过 RDMA 发送和接收视频数据,无需任何特殊元数据。

    DeepStream UCX test 2

    apps/sample_apps/deepstream-ucx-test2

    演示如何使用通信插件 gst-nvdsucx 通过 RDMA 发送和接收视频/元数据数据,以及通过 libnvds_video_metadata_serialization.so 库进行自定义序列化和反序列化。

    DeepStream UCX test 3

    apps/sample_apps/deepstream-ucx-test3

    演示如何使用通信插件 gst-nvdsucx 通过 libnvds_audio_metadata_serialization.so 库使用自定义音频序列化和反序列化通过 RDMA 发送和接收音频/元数据数据。

    DeepStream 3D Depth Camera Reference App

    apps/sample_apps/deepstream-3d-depth-camera

    演示如何通过 DS3D 接口和 ds3d::dataloader、ds3d::datafilter 和 ds3d::datarender 的自定义库设置深度捕获、深度渲染、3D 点云处理和 3D 点渲染流程。 在 DeepStream 3D Depth Camera App中查看更多详细信息

    注意 写入输出文件的应用程序(例如:deepstream-image-meta-test、deepstream-testsr、deepstream-transfer-learning-app)应在 sudo 权限下运行。

    组件和库细节

    下表描述了除参考测试应用程序之外的源目录的内容:

    插件和库详细信息

    插件或库

    源目录中的路径

    描述

    DsExample GStreamer plugin

    gst-plugins/gst-dsexample

    用于将自定义算法集成到 DeepStream SDK 图形中的模板插件。

    GStreamer Gst-nvmsgconv plugin

    gst-plugins/gst-nvmsgconv

    GStreamer Gst-nvmsgconv 插件的源代码,用于将元数据转换为模式格式。

    GStreamer Gst-nvmsgbroker plugin

    gst-plugins/gst-nvmsgbroker

    GStreamer Gst-nvmsgbroker 插件的源代码,用于向服务器发送数据。

    GStreamer Gst-nvdspreprocess plugin

    gst-plugins/gst-nvdspreprocess

    GStreamer Gst-nvdspreprocess 插件的源代码,用于对预定义的 ROI 进行预处理。

    GStreamer Gst-nvinfer plugin

    gst-plugins/gst-nvinfer

    用于推理的 GStreamer Gst-nvinfer 插件的源代码。

    GStreamer Gst-nvdsosd plugin

    gst-plugins/gst-nvdsosd

    GStreamer Gst-nvdsosd 插件的源代码,用于绘制 bbox、文本和其他对象。

    NvDsInfer library

    libs/nvdsinfer

    NvDsInfer 库的源代码,由 Gst-nvinfer GStreamer 插件使用。

    NvDsNmos library

    libs/nvdsnmos

    NvDsNmos 库的源代码,由 DeepStream NMOS 应用程序演示。

    NvMsgConv library

    libs/nvmsgsconv

    Gst-nvmsgconv GStreamer 插件所需的 NvMsgConv 库的源代码。

    Kafka protocol adapter

    libs/kafka_protocol_adapter

    Kafka 协议适配器。

    nvdsinfer_customparser

    libs/nvdsinfer_customparser

    检测器和分类器的自定义模型输出解析示例。

    Gst-v4l2

    See the note below 1

    v4l2 编解码器的源代码。

    Gstreamer gst-nvdsvideotemplate plugin

    gst-plugins/gst-nvdsvideotemplate

    用于实现视频自定义算法的模板插件源代码(非基于 Gstreamer)

    NvDsVideoTemplate custom library

    gst-plugins/gst-nvdsvideotemplate/customlib_impl

    自定义库源码实现视频自定义算法

    Gstreamer gst-nvdsaudiotemplate plugin

    gst-plugins/gst-nvdsaudiotemplate

    模板插件 tp 的源代码实现音频自定义算法(非基于 Gstreamer)

    NvDsVideoTemplate custom library

    gst-plugins/gst-nvdsaudiotemplate/customlib_impl

    自定义库实现音频自定义算法的源代码

    Gstreamer gst-nvdsmetautils

    gst-plugins/gst-nvdsmetautils

    Gstreamer Gst-nvdsmetainsert 和 Gst-nvdsmetaextract 插件处理元数据的源代码

    NvDsMetaUtils SEI serialization library

    gst-plugins/gst-nvdsmetautils/sei_serialization

    Gst-nvdsmetautils 插件所需的自定义元反序列化源代码以作为 SEI 数据嵌入到编码比特流中

    NvDsMetaUtils Audio serialization library

    gst-plugins/gst-nvdsmetautils/audio_metadata_serialization

    音频 NvDsFrameMeta 反序列化的源代码,Gst-nvdsmetautils 插件需要

    NvDsMetaUtils Video serialization library

    gst-plugins/gst-nvdsmetautils/video_metadata_serialization

    Video NvDsFrameMeta & 的源代码 Gst-nvdsmetautils 插件需要的 NvDsObjectMeta 反序列化/序列化

  • 相关阅读:
    通讯/服务器公司 测试|测试开发 面试真题|面经 汇总
    springboot集成swagger3+解决页面无法访问问题
    618京东到家APP-门详页反爬实战 | 京东云技术团队
    一文了解Web3.0真实社交先驱ERA
    华为孟晚舟:从最惨千金 到最强战士
    qt QLineEdit、QTextEdit 、QPlainTextEdit区别
    分类预测 | Matlab实现SO-RF蛇群算法优化随机森林多输入分类预测
    金砖技能大赛-应急响应-内存镜像分析
    【Python入门】文件内容操作
    华为OD北京研究所技术加面手撕代码实录:求最长回文子串
  • 原文地址:https://blog.csdn.net/kunhe0512/article/details/126143294