Quick Start Guide
NVIDIA® DeepStream Software Development Kit (SDK) is an accelerated AI framework to build intelligent video analytics (IVA) pipelines. DeepStream runs on NVIDIA® T4 and platforms such as NVIDIA® Jetson™ Nano, NVIDIA® Jetson AGX Xavier™, NVIDIA® Jetson Xavier NX™, NVIDIA® Jetson™ TX1 and TX2.
Jetson Setup
This section explains how to prepare a Jetson device before installing the DeepStream SDK.
To install Jetson SDK components
• Download NVIDIA SDK Manager, which you will use to install JetPack 4.4 Developer Preview (DP) (corresponding to L4T 32.4.2 release) from:
https://developer.nvidia.com/embedded/jetpack
NVIDIA SDK Manager is a graphical application which flashes and installs the JetPack packages.
The flashing procedure takes approximately 10-30 minutes, depending on the host system.
To install additional packages
• Enter the following command to install the prerequisite packages for installing the DeepStream SDK:
$ sudo apt install \
libssl1.0.0 \
libgstreamer1.0-0 \
gstreamer1.0-tools \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
libgstrtspserver-1.0-0 \
libjansson4=2.11-1
To install librdkafka
Install librdkafka by running apt-get on the Jetson device:
$ apt-get install librdkafka1=0.11.3-1build1
To install latest NVIDIA V4L2 GStreamer plugin
1. Open the apt source configuration file in a text editor, for example:
$ sudo vi /etc/apt/sources.list.d/nvidia-l4t-apt-source.list
2. Change the repository name and download URL in the deb commands as below.
deb https://repo.download.nvidia.com/jetson/common r32.4 main
deb https://repo.download.nvidia.com/jetson/<platform> r32.4 main
Where <platform> identifies the platform’s processor:
• t186 for Jetson TX2 series
• t194 for Jetson AGX Xavier series or Jetson Xavier NX
• t210 for Jetson Nano or Jetson TX1
If your platform is Jetson Xavier NX, for example:
• deb https://repo.download.nvidia.com/jetson/common r32.4 main
• deb https://repo.download.nvidia.com/jetson/t194 r32.4 main
3. Save and close the source configuration file.
4. Enter the commands:
$ sudo apt update
$ sudo apt install --reinstall nvidia-l4t-gstreamer
If apt prompts you to choose a configuration file, reply Y for yes (to use the NVIDIA updated version of the file).
Note: | This step of updating NVIDIA V4L2 GStreamer plugin should be performed after flashing Jetson OS from SDK Manager. |
To install the DeepStream SDK
• Method 1: Using SDK Manager
Select DeepStreamSDK from the “Additional SDKs” section along with JP 4.4 software components for installation.
• Method 2: Using the DeepStream tar package
1. Download the DeepStream 5.0 Jetson tar package, deepstream_sdk_v5.0.0_jetson.tbz2, to the Jetson device.
2. Enter this command to extract and install DeepStream SDK:
$ sudo tar -xvpf deepstream_sdk_v5.0.0_jetson.tbz2 -C /
$ cd /opt/nvidia/deepstream/deepstream-5.0
$ sudo ./install.sh
$ sudo ldconfig
• Method 3: Using the DeepStream Debian package
Download the DeepStream 5.0 Jetson Debian package, deepstream-5.0_5.0.0-1_arm64.deb, to the Jetson device. Then enter the command:
$ sudo apt-get install ./deepstream-5.0_5.0.0-1_arm64.deb
Note: | If you install the DeepStream SDK Debian package using the dpkg command, you must install these packages first, then install the DeepStream deb package: • libgstrtspserver-1.0-0 • libgstreamer-plugins-base1.0-dev |
To boost the clocks
After you have installed DeepStream SDK, run these commands on the Jetson device to boost the clocks:
$ sudo nvpmodel -m 0
$ sudo jetson_clocks
To run deepstream-app (the reference application)
1. Navigate to the samples directory on the development kit.
2. Enter this command to run the reference application:
$ deepstream-app -c <path_to_config_file>
Where
<path_to_config_file> is the pathname of one of the reference application’s configuration files, found in
configs/deepstream-app/. See
Package Contents for a list of the available files.
Note: | You can find sample configuration files under /opt/nvidia/deepstream/deepstream-5.0/samples directory. Enter this command to see application usage: $ deepstream-app --help |
To show labels in 2D Tiled display view you can expand the source of interest with mouse left-click the source. To return to the tiled display, right-click anywhere in the window.
Keyboard selection of source is also supported. On the console where application is running, press the ‘z’ key followed by the desired row index (0 to 9), then the column index (0 to 9) to expand the source. To restore 2D Tiled display view, press ‘z’ again.
To run precompiled sample applications
1. Navigate to the to the chosen application directory inside sources/apps/sample_apps.
2. Follow the directory’s README file to run the application.
Note: | If the application encounters errors and cannot create Gst elements, remove the GStreamer cache, then try again. To remove the GStreamer cache, enter this command: $ rm ${HOME}/.cache/gstreamer-1.0/registry.aarch64.bin When the application is run for a model which does not have an existing engine file, it may take up to a few minutes depending on the platform and the model for the engine file to be generated and application to start playing. For later runs, these generated engine files can be reused for faster loading. |
dGPU Setup
This section explains how to prepare an Ubuntu x86_64 system with NVIDIA dGPU devices before installing the DeepStream SDK.
Note: | This document uses the term dGPU (“discrete GPU”) to refer to NVIDIA GPU expansion card products such as NVIDIA® Tesla® T4 and P4, NVIDIA® GeForce® GTX 1080, and NVIDIA® GeForce® RTX 2080. This version of DeepStream SDK runs on specific dGPU products on x86_64 platforms supported by NVIDIA driver 440+ and NVIDIA® TensorRT™ 7.0 and later versions. |
You must install the following components:
• Ubuntu 18.04
• GStreamer 1.14.1
• NVIDIA driver 440+
• CUDA 10.2
• TensorRT 7.0 or later
To remove all previous DeepStream installations
To remove all previous DeepStream 3.0 or prior installations, enter the command:
$ sudo rm -rf /usr/local/deepstream /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstnv* /usr/bin/deepstream* /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libnvdsgst*
/usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream*
/opt/nvidia/deepstream/deepstream*
$ sudo rm -rf /usr/lib/x86_64-linux-gnu/libv41/plugins/libcuvidv4l2_plugin.so
To remove DeepStream 4.0 or later installations:
1. Open the uninstall.sh file which will be present in /opt/nvidia/deepstream/deepstream/
2. Set PREV_DS_VER as 4.0
3. Run the following script as sudo: ./uninstall.sh
To install packages
• Enter the following command to install the necessary packages before installing the DeepStream SDK:
$ sudo apt install \
libssl1.0.0 \
libgstreamer1.0-0 \
gstreamer1.0-tools \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
libgstrtspserver-1.0-0 \
libjansson4
To install CUDA Toolkit 10.2
• Download and install CUDA Toolkit 10.2 from NVIDIA Developer at:
To install TensorRT 7.0
• Download and install TensorRT 7.0 from the NVIDIA Developer Center:
To install librdkafka (to enable Kafka protocol adaptor for message broker)
1. Clone the librdkafka repository from GitHub:
$ git clone https://github.com/edenhill/librdkafka.git
2. Configure and build the library:
$ cd librdkafka
$ git reset --hard 7101c2310341ab3f4675fc565f64f0967e135a6a
./configure
$ make
$ sudo make install
3. Copy the generated libraries to the deepstream directory:
$ sudo mkdir -p /opt/nvidia/deepstream/deepstream-4.0/lib
$ sudo cp /usr/local/lib/librdkafka* /opt/nvidia/deepstream/deepstream-4.0/lib
To install the DeepStream SDK
• Method 1: Using the DeepStream Debian package
Download the DeepStream 5.0 dGPU Debian package, deepstream-5.0_5.0.0-1_amd64.deb, then enter the command:
$ sudo apt-get install ./deepstream-5.0_5.0.0-1_amd64.deb
• Method 2: Using the DeepStream tar package
1. Navigate to the location to which the DeepStream package was downloaded and extract and install the DeepStream SDK:
$ sudo tar -xvpf deepstream_sdk_v5.0.0_x86_64.tbz2 -C /
$ cd /opt/nvidia/deepstream/deepstream-5.0/
$ sudo ./install.sh
$ sudo ldconfig
To run the deepstream-app (the reference application)
• Go to the samples directory and enter this command:
$ deepstream-app -c <path_to_config_file>
Where
<path_to_config_file> is the pathname of one of the reference application’s configuration files, found in
configs/deepstream-app. See
Package Contents for a list of the available files.
Note: | You can find sample configuration files under /opt/nvidia/deepstream/deepstream-5.0/samples directory. Enter this command to see application usage: $ deepstream-app --help |
To show labels in 2D tiled display view, expand the source of interest with a mouse left-click on the source. To return to the tiled display, right-click anywhere in the window.
Keyboard selection of source is also supported. On the console where application is running, press the ‘z’ key followed by the desired row index (0 to 9), then the column index (0 to 9) to expand the source. To restore the 2D Tiled display view, press ‘z’ again.
To run precompiled sample applications
1. Navigate to the chosen application directory inside sources/apps/sample_apps.
2. Follow that directory’s README file to run the application.
Note: | If the application encounters errors and cannot create Gst elements, remove the GStreamer cache, then try again. To remove the GStreamer cache, enter this command: $ rm ${HOME}/.cache/gstreamer-1.0/registry.x86_64.bin When the application is run for a model which does not have an existing engine file, it may take up to a few minutes depending on the platform and the model for the engine file to be generated and application to start playing. For later runs, these generated engine files can be reused for faster loading. |
DeepStream Triton Inference Server Usage Guidelines
dGPU:
1. Pull the DeepStream Triton Inference Server docker
docker pull nvcr.io/nvidia/deepstream:5.0.0-20.04-triton
2. Start the docker
docker run --gpus all -it --rm -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY nvcr.io/nvidia/deepstream:5.0.0-20.04-triton
Jetson:
The Triton Inference Server shared libraries come pre-installed as part of DeepStream on Jetson. No extra steps are required for installing the Triton Inference Server.
For both the platforms, to run the samples follow the steps in the “Running the Triton Inference Server samples” section of the README at: /opt/nvidia/deepstream/deepstream-5.0
Configuration File Usage Guidelines
Number of streams your platform can process is dependent on its capability. See
Package Contents to find a suitable configuration file for your platform.
Expected Output for the DeepStream Reference Application (deepstream-app)
The image below shows the expected output:
Package Contents
The DeepStream SDK package includes the following archives. These archives contain plugins, libraries, applications and source code.
The sources directory is located at /opt/nvidia/deepstream/deepstream-5.0/sources for Debian installation (on Jetson or dGPU) and for installation by SDK Manager. For tar packages the source files are in the extracted deepstream package.
DeepStream Python bindings and sample applications are available as a separate package. More information and documentation can be found at
https://github.com/NVIDIA-AI-IOT/deepstream_python_apps.
Plugin and Library Source Details
The following table describes the contents of the sources directory except for the reference test applications, which are listed separately below.
Plugin or library | Path inside sources directory | Description |
---|
DsExample GStreamer plugin | gst-plugins/gst-dsexample | Template plugin for integrating custom algorithms into DeepStream SDK graph. |
GStreamer Gst-nvmsgconv plugin | gst-plugins/gst-nvmsgconv | Source code for the GStreamer Gst-nvmsgconv plugin for converting metadata to schema format. |
GStreamer Gst-nvmsgbroker plugin | gst-plugins/gst-nvmsgbroker | Source code for the GStreamer Gst-nvmsgbroker plugin for sending data to the server. |
GStreamer Gst-nvinfer plugin | gst-plugins/gst-nvinfer | Source code for the GStreamer Gst-nvinfer plugin for inference. |
NvDsInfer library | libs/nvdsinfer | Source code for the NvDsInfer library, used by the Gst-nvinfer GStreamer plugin. |
NvMsgConv library | libs/nvmsgsconv | Source code for the NvMsgConv library, required by the Gst-nvmsgconv GStreamer plugin. |
Kafka protocol adapter | libs/kafka_protocol_adapter | Protocol adapter for Kafka. |
nvdsinfer_customparser | libs/nvdsinfer_customparser | Custom model output parsing example for detectors and classifiers. |
Gst-v4l2 | See the note below * | Source code for v4l2 codecs. |
* Gst-v4l2 sources are not present in DeepStream package. To download, follow these steps: 2. In the “Search filter” field, enter “L4T sources.” 3. Select the appropriate item for L4T Release 32.4.2. 4. Download the file and un-tar it, yielding a .tbz2 file. 5. Expand the .tbz2 file. Gst-v4l2 source files are in gst-nvvideo4linux2_src.tbz2. |
Sample Application Source Details
The following table shows the location of the sample test applications.
Reference test application | Path inside sources directory | Description |
---|
Simple test application 1 | apps/sample_apps/deepstream-test1 | Simple example of how to use DeepStream elements for a single H.264 stream: filesrc→ decode→ nvstreammux→ nvinfer (primary detector)→ nvdsosd→ renderer. |
Simple test application 2 | apps/sample_apps/deepstream-test2 | Simple example of how to use DeepStream elements for a single H.264 stream: filesrc→ decode→ nvstreammux→ nvinfer (primary detector)→ nvtracker→ nvinfer (secondary classifier)→ nvdsosd → renderer. |
Simple test application 3 | apps/sample_apps/deepstream-test3 | Builds on deepstream-test1 (simple test application 1) to demonstrate how to: • Use multiple sources in the pipeline • Use a uridecodebin to accept any type of input (e.g. RTSP/File), any GStreamer supported container format, and any codec • Configure Gst-nvstreammux to generate a batch of frames and infer on it for better resource utilization • Extract the stream metadata, which contains useful information about the frames in the batched buffer |
Simple test application 4 | apps/sample_apps/deepstream-test4 | Builds on deepstream-test1 for a single H.264 stream: filesrc, decode, nvstreammux, nvinfer, nvdsosd, renderer to demonstrate how to: • Use the Gst-nvmsgconv and Gst-nvmsgbroker plugins in the pipeline • Create NVDS_META_EVENT_MSG type metadata and attach it to the buffer • Use NVDS_META_EVENT_MSG for different types of objects, e.g. vehicle and person • Implement “copy” and “free” functions for use if metadata is extended through the extMsg field |
Simple test application 5 | apps/sample_apps/deepstream-test5 | Builds on top of deepstream-app. Demonstrates: • Use of Gst-nvmsgconv and Gst-nvmsgbroker plugins in the pipeline for multistream • How to configure Gst-nvmsgbroker plugin from the config file as a sink plugin (for KAFKA, Azure, etc.) • How to handle the RTCP sender reports from RTSP servers or cameras and translate the Gst Buffer PTS to a UTC timestamp. For more details refer the RTCP Sender Report callback function test5_rtcp_sender_report_callback() registration and usage in deepstream_test5_app_main.c. GStreamer callback registration with rtpmanager element’s “handle-sync” signal is documented in apps-common/src/deepstream_source_bin.c. |
AMQP protocol test application | libs/amqp_protocol_adaptor | Application to test AMQP protocol. |
Azure MQTT test application | libs/azure_protocol_adaptor | Test application to show Azure IoT device2edge messaging and device2cloud messaging using MQTT. |
DeepStream reference application | apps/sample_apps/deepstream-app | Source code for the DeepStream reference application. |
UFF SSD detector | sources/objectDetector_SSD | Configuration files and custom library implementation for the SSD detector model. |
Faster RCNN detector | sources/objectDetector_FasterRCNN | Configuration files and custom library implementation for the FasterRCNN model. |
Yolo detector | sources/objectDetector_Yolo | Configuration files and custom library implementation for the Yolo models, currently Yolo v2, v2 tiny, v3, and v3 tiny. |
Dewarper example | apps/sample_apps/deepstream-dewarper-test | Demonstrates dewarper functionality for single or multiple 360-degree camera streams. Reads camera calibration parameters from a CSV file and renders aisle and spot surfaces on the display. |
Optical flow example | apps/sample_apps/deepstream-nvof-test | Demonstrates optical flow functionality for single or multiple streams. This example uses two GStreamer plugins (Gst-nvof and Gst-nvofvisual). The Gst-nvof element generates the MV (motion vector) data and attaches it as user metadata. The Gst-nvofvisual element visualizes the MV data using a predefined color wheel matrix. |
Custom meta data example | apps/sample_apps/deepstream-user-metadata-test | Demonstrates how to add custom or user-specific metadata to any component of DeepStream. The test code attaches a 16-byte array filled with user data to the chosen component. The data is retrieved in another component. |
MJPEG and JPEG decoder and inferencing example | apps/sample_apps/deepstream-image-decode-test | Builds on deepstream-test3 to demonstrate image decoding instead of video. This example uses a custom decode bin so the MJPEG codec can be used as input. |
Image/Video segmentation example | apps/sample_apps/deepstream-segmentation-test | Demonstrates segmentation of multi-stream video or images using a semantic or industrial neural network and rendering output to a display. |
Handling metadata before Gst-nvstreammux | apps/sample_apps/deepstream-gst-metadata-test | Demonstrates how to set metadata before the Gst-nvstreammux plugin in the DeepStream pipeline, and how to access it after Gst-nvstreammux. |
Gst-nvinfer tensor meta flow example | apps/sample_apps/deepstream-infer-tensor-meta-app | Demonstrates how to flow and access nvinfer tensor output as metadata. |
Performance demo | apps/sample_apps/deepstream-perf-demo | Performs single channel cascaded inferencing and object tracking sequentially on all streams in a directory. |
Analytics example | apps/sample_apps/deepstream-nvdsanalytics-test | Demonstrates batched analytics like ROI filtering, Line crossing, direction detection and overcrowding |
OpenCV example | apps/sample_apps/deepstream-opencv-test | Demonstrates the use of OpenCV in dsexample plugin |
Image as Metadata example | Apps/sample_apps / deepstream-image-meta-test | Demonstrates how to attach encoded image as meta data and save the images in jpeg format. |
Appsrc and Appsink example | apps/sample_apps/deepstream-appsrc-test | Demonstrates AppSrc and AppSink usage for consuming and giving data from non DeepStream code respectively. |
Python Sample Application Source Details
The following table shows the location of the Python sample applications under
https://github.com/NVIDIA-AI-IOT/deepstream_python_apps Reference test application | Path inside the GitHub repo | Description |
---|
Simple test application 1 | apps/deepstream-test1 | Simple example of how to use DeepStream elements for a single H.264 stream: filesrc→ decode→ nvstreammux→ nvinfer (primary detector)→ nvdsosd→ renderer. |
Simple test application 2 | apps/deepstream-test2 | Simple example of how to use DeepStream elements for a single H.264 stream: filesrc→ decode→ nvstreammux→ nvinfer (primary detector)→ nvtracker→ nvinfer (secondary classifier)→ nvdsosd → renderer. |
Simple test application 3 | apps/deepstream-test3 | Builds on deepstream-test1 (simple test application 1) to demonstrate how to: • Use multiple sources in the pipeline • Use a uridecodebin to accept any type of input (e.g. RTSP/File), any GStreamer supported container format, and any codec • Configure Gst-nvstreammux to generate a batch of frames and infer on it for better resource utilization • Extract the stream metadata, which contains useful information about the frames in the batched buffer |
Simple test application 4 | apps/deepstream-test4 | Builds on deepstream-test1 for a single H.264 stream: filesrc, decode, nvstreammux, nvinfer, nvdsosd, renderer to demonstrate how to: • Use the Gst-nvmsgconv and Gst-nvmsgbroker plugins in the pipeline • Create NVDS_META_EVENT_MSG type metadata and attach it to the buffer • Use NVDS_META_EVENT_MSG for different types of objects, e.g. vehicle and person • Implement “copy” and “free” functions for use if metadata is extended through the extMsg field |
Reference test application | Path inside the GitHub repo | Description |
---|
USB camera source application | apps/deepstream-test1-usbcam | Simple test application 1 modified to process a single stream from a USB camera. |
RTSP output application | apps/deepstream-test1-rtsp-out | Simple test application 1 modified to output visualization stream over RTSP. |
Image data access application | apps/deepstream-imagedata-multistream | Builds on simple test application 3 to demonstrate how to: • Access decoded frames as NumPy arrays in the pipeline • Check detection confidence of detected objects (DBSCAN or NMS clustering required) • Use OpenCV to annotate the frames and save them to file |
SSD detector output parser application | apps/deepstream-ssd-parser | Demonstrates how to perform custom post-processing for inference output from Triton Inference Server • Use SSD model on Triton Inference Server for object detection • Enable custom post-processing and raw tensor export for Triton Inference Server via configuration file settings • Access inference output tensors in the pipeline for post-processing in Python • Add detected objects to the metadata • Output the OSD visualization to MP4 file |
Contents of the package:
• samples: Directory containing sample configuration files, streams, and models to run the sample applications.
• samples/configs/deepstream-app: Configuration files for the reference application:
• source30_1080p_resnet_dec_infer_tiled_display_int8.txt: Demonstrates 30 stream decodes with primary inferencing. (For dGPU and Jetson AGX Xavier platforms only.)
• source4_1080p_resnet_dec_infer_tiled_display_int8.txt: Demonstrates four stream decodes with primary inferencing, object tracking, and three different secondary classifiers. (For dGPU and Jetson AGX Xavier platforms only.)
• source4_1080p_resnet_dec_infer_tracker_sgie_tiled_display_int8_gpu1.txt: Demonstrates four stream decodes with primary inferencing, object tracking, and three different secondary classifiers on GPU 1 (for systems that have multiple GPU cards). For dGPU platforms only.
• config_infer_primary.txt: Configures a nvinfer element as primary detector.
• config_infer_secondary_carcolor.txt, config_infer_secondary_carmake.txt, config_infer_secondary_vehicletypes.txt: Configure a nvinfer element as secondary classifier.
• iou_config.txt: Configures a low-level IOU (Intersection over Union) tracker.
• tracker_config.yml: Configures the NvDCF tracker.
• source1_usb_dec_infer_resnet_int8.txt: Demonstrates one USB camera as input.
• source1_csi_dec_infer_resnet_int8.txt: Demonstrates one CSI camera as input; for Jetson only.
• source2_csi_usb_dec_infer_resnet_int8.txt: Demonstrates one CSI camera and one USB camera as inputs; for Jetson only.
• source6_csi_dec_infer_resnet_int8.txt: Demonstrates six CSI cameras as inputs; for Jetson only.
• source8_1080p_dec_infer-resnet_tracker_tiled_display_fp16_nano.txt: Demonstrates 8 Decode + Infer + Tracker; for Jetson Nano only.
• source8_1080p_dec_infer-resnet_tracker_tiled_display_fp16_tx1.txt: Demonstrates 8 Decode + Infer + Tracker; for Jetson TX1 only.
• source12_1080p_dec_infer-resnet_tracker_tiled_display_fp16_tx2.txt: Demonstrates 12 Decode + Infer + Tracker; for Jetson TX2 only.
• samples/configs/deepstream-app-trtis: Configuration files for the reference application for inferencing using Triton Inference Server
• source30_1080p_dec_infer-resnet_tiled_display_int8.txt (30 Decode + Infer)
• source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt (4 Decode + Infer + SGIE + Tracker)
• source1_primary_classifier.txt (Single source + full frame classification)
Note: | Other classification models can be used by changing the nvinferserver config file in the [*-gie] group of application config file. |
• source1_primary_detector.txt (Single source + object detection using ssd)
• Configuration files for "nvinferserver" element in `configs/deepstream-app-trtis/`
• config_infer_plan_engine_primary.txt (Primary Object Detector)
• config_infer_secondary_plan_engine_carcolor.txt (Secondary Car Color Classifier)
• config_infer_secondary_plan_engine_carmake.txt (Secondary Car Make Classifier)
• config_infer_secondary_plan_engine_vehicletypes.txt (Secondary Vehicle Type Classifier)
• config_infer_primary_classifier_densenet_onnx.txt (DenseNet-121 v1.2 classifier)
• config_infer_primary_classifier_inception_graphdef_postprocessInTrtis.txt (Tensorflow Inception v3 classifier - Post processing in Triton)
• config_infer_primary_classifier_inception_graphdef_postprocessInDS.txt (Tensorflow Inception v3 classifier - Post processing in DeepStream)
• config_infer_primary_detector_ssd_inception_v2_coco_2018_01_28.txt (TensorFlow SSD Inception V2 Object Detector)
• Nvidia Transfer Learning Toolkit (TLT) pretrained Models:
samples/configs/tlt_pretrained_models: Reference application configuration files for the pre-trained models provided by Nvidia Transfer Learning Toolkit (TLT)
• deepstream_app_source1_dashcamnet_vehiclemakenet_vehicletypenet.txt (Demonstrates object detection using DashCamNet model with VehicleMakeNet and VehicleTypeNet as secondary classification models on one source)
• deepstream_app_source1_faceirnet.txt (Demonstrates face detection for IR camera using FaceDetectIR object detection model on one source)
• deepstream_app_source1_peoplenet.txt (Demonstrates object detection using PeopleNet object detection model on one source)
• deepstream_app_source1_trafficcamnet.txt (Demonstrates object detection using TrafficCamNet object detection model on one source)
• nvinfer element configuration files and label files in `configs/ tlt_pretrained_models
• config_infer_primary_dashcamnet.txt, labels_dashcamnet.txt (DashCamNet – Resnet18 based object detection model for Vehicle, Bicycle, Person, Roadsign)
• config_infer_secondary_vehiclemakenet.txt, labels_vehiclemakenet.txt (VehicleMakeNet – Resnet18 based classification model for make of the vehicle)
• config_infer_secondary_vehicletypenet.txt, labels_vehicletypenet.txt (VehicleTypeNet – Resnet18 based classification model for type of the vehicle)
• config_infer_primary_faceirnet.txt, labels_faceirnet.txt (FaceIRNet – Resnet18 based face detection model for IR images)
• config_infer_primary_peoplenet.txt, labels_peoplenet.txt (PeopleNet – Resnet18 based object detection model for Person, Bag, Face)
• config_infer_primary_trafficcamnet.txt, labels_trafficnet.txt (TrafficCamNet – Resnet18 based object detection model for Vehicle, Bicycle, Person, Roadsign for traffic camera viewpoint)
• samples: Directory containing sample configuration files, models, and streams to run the sample applications.
• samples/streams: The following streams are provided with the DeepStream SDK:
Stream | Type of Stream |
---|
sample_1080p_h264.mp4 | H264 containerized stream |
---|
sample_1080p_h265.mp4 | H265 containerized stream |
---|
sample_720p.h264 | H264 elementary stream |
---|
sample_720p.jpg | JPEG image |
---|
sample_720p.mjpeg | MJPEG stream |
---|
sample_cam6.mp4 | H264 containerized stream (360D camera stream) |
---|
sample_industrial.jpg | JPEG image |
---|
• samples/models: The following sample models are provided with the SDK:
DeepStream Reference Application |
---|
Model | Model Type | Number of Classes | Resolution |
---|
Primary Detector | Resnet10 | 4 | 640 × 368 |
Secondary Car Color Classifier | Resnet18 | 12 | 224 × 224 |
Secondary Car Make Classifier | Resnet18 | 6 | 224 × 224 |
Secondary Vehicle Type Classifier | Resnet18 | 20 | 224 × 224 |
Segmentation example |
Model | Model Type | Number of Classes | Resolution |
Industrial | Resnet18 + UNet | 1 | 512 x 512 |
Semantic | Resnet18 + UNet | 4 | 512 x 512 |
Scripts included along with package:
• samples/ prepare_classification_test_video.sh: Downloads Imagenet test images and creates a video out of it to test with Classification models like Tensorflow Inception, ONNX DenseNet etc.
• samples/ prepare_ds_trtis_model_repo.sh: Prepare the Model repository for Triton Inference Server
1. Creates engine files for Caffe and UFF based models provided as part of SDK.
2. Downloads Model files for ONNX DenseNet , SSD Inception V2 Coco, Inception v3.
For additional information on the above models, refer to:
Inception V3 - https://github.com/tensorflow/models/tree/master/research/slim
• uninstall.sh: Used to clean up previous DS installation.