练习 - 修改 DeepStream 示例应用程序
现在,你已运行 DeepStream 示例应用程序,可以修改示例以获得不同的行为。
我们首先在文本编辑器中查看示例配置的结构。 我们将复制上一部分中使用的示例配置,并查看可以更改的一些设置。 运行以下命令:
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。
请注意,各个配置部分及其对整个应用程序的作用。 这些部分用括号 (
[]
) 表示。 例如[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
然后,进行以下更改。 (请注意对
rows
、columns
、type
、uri
和num-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
使用以下命令运行更改的配置:
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 应用程序?
后续步骤
为了完成本模块并赢得奖杯,请完成最后的知识检查。