练习 - 修改 DeepStream 示例应用程序

已完成

现在,你已运行 DeepStream 示例应用程序,可以修改示例以获得不同的行为。

  1. 我们首先在文本编辑器中查看示例配置的结构。 我们将复制上一部分中使用的示例配置,并查看可以更改的一些设置。 运行以下命令:

    cd /opt/nvidia/deepstream/deepstream-6.0/samples/configs/deepstream-app
    sudo cp source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt
    sudo vi source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt
    

    注意

    下面是在编辑 source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt 文件时使用 vi 的一些提示:

    • 按下 i 键,将编辑器置于“插入模式”。 然后,你将能够进行更改。
    • 按下 Esc 退出“插入模式”,并返回到“正常模式”。
    • 要保存并退出,请输入 :x 然后按 Enter。
    • 保存文件,输入 :w 然后按 Enter。
    • 若要关闭 vi,请输入 :quit,然后按 Enter。
  2. 请注意,各个配置部分及其对整个应用程序的作用。 这些部分用括号 ([]) 表示。 例如 [application][tiled-display][source0[sink0]DeepStream SDK 文档的配置组部分详细介绍了这些部分。

    例如,要将输入更改为使用 RTSP 视频流而不是本地视频文件,请更改 [tiled-display][source0]

    [tiled-display]
    enable=1
    rows=2
    columns=2
    width=1280
    height=720
    gpu-id=0
    #(0): nvbuf-mem-default - Default memory allocated, specific to particular platform
    #(1): nvbuf-mem-cuda-pinned - Allocate Pinned/Host cuda memory, applicable for Tesla
    #(2): nvbuf-mem-cuda-device - Allocate Device cuda memory, applicable for Tesla
    #(3): nvbuf-mem-cuda-unified - Allocate Unified cuda memory, applicable for Tesla
    #(4): nvbuf-mem-surface-array - Allocate Surface Array memory, applicable for Jetson
    nvbuf-memory-type=0
    
    [source0]
    enable=1
    #Type - 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP
    type=3
    uri=file://../../streams/sample_1080p_h264.mp4
    num-sources=4
    #drop-frame-interval=2
    gpu-id=0
    # (0): memtype_device   - Memory type Device
    # (1): memtype_pinned   - Memory type Host Pinned
    # (2): memtype_unified  - Memory type Unified
    cudadec-memtype=0
    

    然后,进行以下更改。 (请注意对 rowscolumnstypeurinum-sources 字段的更改。)

    [tiled-display]
    enable=1
    rows=1
    columns=1
    width=1280
    height=720
    gpu-id=0
    #(0): nvbuf-mem-default - Default memory allocated, specific to particular platform
    #(1): nvbuf-mem-cuda-pinned - Allocate Pinned/Host cuda memory, applicable for Tesla
    #(2): nvbuf-mem-cuda-device - Allocate Device cuda memory, applicable for Tesla
    #(3): nvbuf-mem-cuda-unified - Allocate Unified cuda memory, applicable for Tesla
    #(4): nvbuf-mem-surface-array - Allocate Surface Array memory, applicable for Jetson
    nvbuf-memory-type=0
    
    [source0]
    enable=1
    #Type - 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP
    type=4
    uri=rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov
    num-sources=1
    #drop-frame-interval=2
    gpu-id=0
    # (0): memtype_device   - Memory type Device
    # (1): memtype_pinned   - Memory type Host Pinned
    # (2): memtype_unified  - Memory type Unified
    cudadec-memtype=0
    
    
  3. 使用以下命令运行更改的配置:

    cd /opt/nvidia/deepstream/deepstream-6.0/samples/configs/deepstream-app
    deepstream-app -c source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_modified.txt
    

尝试此服务

查看 DeepStream SDK 中包含的各种示例配置。 你会如何更改这些示例来创建智能家居安全系统? 假设具有多个 RTSP 相机,它们通过唯一的 RTSP 终结点提供源。 能否创建使用这些实时视频流作为输入并应用推理来检测人和车辆的 DeepStream 应用程序?

后续步骤

为了完成本模块并赢得奖杯,请完成最后的知识检查。