Reference graphs

This section provides details about the sample graphs for the DeepStream extensions. Most of these sample graphs are equivalents of the sample apps released as part of the DeepStreamSDK and demonstrate how to port/convert various portions of the “C/C++” based DeepStream applications into graphs and custom components/extensions.

Installing the reference graphs

Download reference graphs:

https://developer.nvidia.com/deepstream-getting-started

Install reference graphs:

sudo dpkg -i deepstream-reference-graphs-6.0.deb

Graphs are installed to:

/opt/nvidia/deepstream/deepstream-6.0/reference_graphs

deepstream-test1

Simplest example of using DeepStream for object detection. Demonstrates decoding video from a file, performing object detection and overlaying bounding boxes on the frames.

Graph Files

  • deepstream-test1.yaml – The main graph file

  • parameters.yaml – File containing parameters for the various components in the graph

  • README - Contains detailed graph description and execution instructions

  • ds_test1_container_builder_dgpu.yaml - Configuration file for building application specific container for dGPU platform

  • ds_test1_container_builder_jetson.yaml - Configuration file for building application specific container for Jetson platform


Path - /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-test1

Graph

Reference graph

Sample Output

Sample output

deepstream-test2

Builds on top of deepstream-test1 and demonstrates object tracking and cascaded inferencing.

Graph Files

  • deepstream-test2.yaml – The main graph file

  • parameters.yaml – File containing parameters for the various components in the graph

  • README - Contains detailed graph description and execution instructions

  • ds_test2_container_builder_dgpu.yaml - Configuration file for building application specific container for dGPU platform

  • ds_test2_container_builder_jetson.yaml - Configuration file for building application specific container for Jetson platform


Path - /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-test2

Graph

Reference graph for deepstream-test2

Sample Output

sample output for deepstream-test2

deepstream-test3

Builds on top of deepstream-test1 to demonstrate use of multiple sources in the pipeline.

Graph Files

  • deepstream-test3.yaml – The main graph file

  • parameters.yaml – File containing parameters for the various components in the graph

  • README - Contains detailed graph description and execution instructions

  • ds_test3_container_builder_dgpu.yaml - Configuration file for building application specific container for dGPU platform

  • ds_test3_container_builder_jetson.yaml - Configuration file for building application specific container for Jetson platform


Path - /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-test3

Graph

Graph for deepstream-test3

Sample Output

sample output for deepstream-test3

deepstream-test4

Builds on top of deepstream-test1 to demonstrate how to send the metadata generated by the DeepStream components to the cloud using messaging components.

Graph Files

  • deepstream-test4.yaml – The main graph file

  • parameters.yaml – File containing parameters for the various components in the graph

  • README - Contains detailed graph description and execution instructions

  • ds_test4_container_builder_dgpu.yaml - Configuration file for building application specific container for dGPU platform

  • ds_test4_container_builder_jetson.yaml - Configuration file for building application specific container for Jetson platform


Path - /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-test4

Note

A small note on what minimum parameter changes are needed to run the graph on any system

Graph

Graph for deepstream-test4

Sample Output

Following is the snapshot from output video. However, the app also sends messages over kafka which can be viewed using the console consumer utility in the kakfa package or a similar alternative.

sample output for deepstream-test4

deepstream-test5

DeepStream reference application which demonstrates device-to-cloud and cloud-to-device messaging, Smart Record and model on-the-fly update.

Graph

Graph for deepstream-test5

Sample Output

sample output for deepstream-test5

deepstream-runtime-src-add-del

Demonstrates how sources can be dynamically added/removed at runtime. Also, demonstrates the use of action/signal components.

Graph Files

  • deepstream-runtime-src-add-del.yaml – The main graph file

  • parameters.yaml – File containing parameters for the various components in the graph

  • README - Contains detailed graph description and execution instructions

  • ds_runtime_src_add_del_container_builder_dgpu.yaml - Configuration file for building application specific container for dGPU platform

  • ds_runtime_src_add_del_container_builder_jetson.yaml - Configuration file for building application specific container for Jetson platform


Path - /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-runtime-src-add-del

Graph

runtime-src-add-del graph

Sample Output

sample output for runtime-src-add-del

deepstream-template-plugin

Demonstrates the usage of configuration components used as configuration providers for other components. These graphs are meant to run only on DGPU platforms since the DeepStream template plugins are available only on DGPU platforms.

Graph Files

  • deepstream-videotemplate.yaml – Graph demonstrating usage of DS video template plugin and a configuration provider for the plugin

  • deepstream-audiotemplate.yaml – Graph demonstrating usage of DS audio template plugin and a configuration provider for the plugin

  • ds_audiotemplate_plugin_container_builder_dgpu.yaml, ds_videotemplate_plugin_container_builder_dgpu.yaml - Configuration file for building application specific container for dGPU platform

  • ds_audiotemplate_plugin_container_builder_jetson.yaml, ds_audiotemplate_plugin_container_builder_jetson.yaml - Configuration file for building application specific container for Jetson platform

  • README - Contains detailed graph description and execution instructions


Path - /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-template-plugin

Graph

Graph for deepstream-audio-template Graph for deepstream-video-template

Sample Output

The sample output consists of the input video scaled by “scale-factor” mentioned in parameters of NvDsSampleVideoTemplateLib component in the graph

The sample output consists of the addition of noise specified by “noise-factor” mentioned in parameters of NvDsSampleAudioTemplateLib component in the graph to the input audio.

deepstream-app

DeepStream reference application, showing a wide variety of features such as kitti dump, performance measurement, handling tiler events. Two graphs corresponding to the two sample configurations in the DeepStreamSDK are provided.

Graph Files

  • source30_1080p_dec_infer-resnet_tiled_display_int8.yaml – Graph file for 30 file inputs + Primary Detector + Tiled Output

  • source30_1080p_dec_infer-resnet_tiled_display_int8.parameters.yaml – File with parameters for various components in the above graph

  • source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.yaml – Graph file for 4 file inputs + Primary Detector + Tracker + 3 x Secondary Classifiers + Tiled Output

  • source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.parameters.yaml – File with parameters for various components in the above graph

  • README - Contains detailed graph description and execution instructions

  • ds_app_container_builder_dgpu.yaml - Configuration file for building application specific container for dGPU platform

  • ds_app_container_builder_jetson.yaml - Configuration file for building application specific container for Jetson platform


Path - /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-app

Graph for deepstream-source30 sample output for deepstream-source30 Graph for source4 sample output for source4

deepstream-audio

Demonstrates audio classification using DeepStream

Graph files

  • deepstream-audio.yaml – The main graph file

  • parameters.yaml – File containing parameters for the various components in the graph

  • README - Contains detailed graph description and execution instructions

  • ds_audio_container_builder_dgpu.yaml - Configuration file for building application specific container for dGPU platform

  • ds_audio_container_builder_jetson.yaml - Configuration file for building application specific container for Jetson platform


Path - /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-audio

Graph

Graph for deepstream audio

Sample Output

Since this is an audio only app, the graph outputs audio classification results in a textual form on the terminal.

sample output for deepstream audio

deepstream-360d

Perception graph for the DeepStream 360d smart parking application (https://github.com/NVIDIA-AI-IOT/deepstream_360_d_smart_parking_application). Demonstrates usage of the components developed for the smart parking application to detect and track movement of vehicles in aisles and occupied and vacant spots in a parking garage. The graph has been developed for DGPU only.

Graph and related files

  • deepstream-360d.yaml – The main graph file

  • deepstream-360d.parameters.yaml – File containing parameters for the various components in the graph

  • config_dewarper.txt, nvaisle_2M.csv , nvspot_2M.csv – Configuration files for the components used in the graph

  • README - Contains detailed graph description and execution instructions

  • ds_360d_container_builder_dgpu.yaml - Configuration file for building application specific container for dGPU platform


Path - /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-360d

Graph

Graph for deepstream 360

Sample Output

sample output for deepstream 360

deepstream-triton

Demonstrates usage of triton server in a simple DeepStream pipeline along with the use of NVIDIA Graph Container Builder for creating usecase based containers. The graph shows object detection using SSD Inception V2 Tensorflow model via the Triton server. For DGPU, the graph must be executed inside the container built using the container builder, since Triton is available only in docker format. For Jetson, the graph can be run directly on the device.

Graph and related files

  • deepstream-triton.yaml – The main graph file

  • deepstream-triton.parameters.dgpu_container.yaml – File containing parameters for executing the graph on DGPU

  • deepstream-triton.parameters.jetson.yaml – File containing parameters for executing the graph on Jetson

  • ds_triton_container_builder_cfg_dgpu.yaml – Container Builder configuration file for building a container for the graph

  • README - Contains detailed graph description and execution instructions

  • ds_triton_container_builder_cfg_dgpu.yaml - Configuration file for building application specific container for dGPU platform

  • ds_triton_container_builder_cfg_jetson.yaml - Configuration file for building application specific container for Jetson platform


Path - /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-triton

Graph

Graph for deepstream-triton

Sample Output

sample output for deepstream-triton

deepstream-camera

Demonstrates usage of a camera source in a simple DeepStream pipeline

Graph and related files

  • deepstream-camera.yaml – The main graph file

  • v4l2-usb-camera.parameters.yaml - Parameters file for using V4L2 USB camera. Works on both x86 and jetson

  • argus-csi-camera.parameters.yaml - Parameters file for using CSI camera using NVIDIA Argus API. Works on jetson only

  • README - Contains detailed graph description and execution instructions

  • ds_camera_container_builder_dgpu.yaml - Configuration file for building application specific container for dGPU platform

  • ds_camera_container_builder_jetson.yaml - Configuration file for building application specific container for Jetson platform


Path - /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-camera

Graph

Graph for deepstream-camera

Sample Output

sample output for deepstream-camera

deepstream-action-recognition

Demonstrates usage of NvDsPreProcess component to do pre-processing outside the NvDsInferVideo component. In this sample, it is used to demonstrate temporal batching and pre-processing required by the NVIDIA TAO Action Recognition models.

Graph and related files

  • deepstream-action-recognition.yaml – The main graph file

  • parameters.yaml - File containing parameters for the various components in the graph

  • resources.yaml - List of resources required to execute the graph. This is required when using remote graph execution

  • README - Contains detailed graph description and execution instructions

  • ds_action_recognition_container_builder_dgpu.yaml - Configuration file for building application specific container for dGPU platform

  • ds_action_recognition_container_builder_jetson.yaml - Configuration file for building application specific container for Jetson platform

  • config_preprocess_3d_custom.txt - NvDsPreProcess component configuration file for the 3D Action Recogntion model

  • config_preprocess_2d_custom.txt - NvDsPreProcess component configuration file for the 2D Action Recogntion model


Path - /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-action-recognition

Graph

Graph for deepstream-action-recognition

Sample Output

sample output for deepstream-action-recognition

deepstream-subgraph

Demonstrates usage of subgraphs with DS components.

Graph and related files

  • main_graph.yaml – The main graph file

  • inference_subgraph.yaml - Inference subgraph used by thr main graph

  • resources.yaml - List of resources required to execute the graph. This is required when using remote graph execution

  • README - Contains detailed graph description and execution instructions

  • ds_subgraph_container_builder_dgpu.yaml - Configuration file for building application specific container for dGPU platform

  • ds_subgraph_container_builder_jetson.yaml - Configuration file for building application specific container for Jetson platform


Path - /opt/nvidia/deepstream/deepstream-6.0/reference_graphs/deepstream-subgraph

Graph

Main graph

Graph for deepstream-subgraph

Inference Subgraph

Graph for deepstream-subgraph

Sample Output

sample output for deepstream-subgraph