Skip to content

Commit

Permalink
Update to 1.1.4 release
Browse files Browse the repository at this point in the history
This release is compatible with DeepStream SDK 6.1.1

Ubuntu 20.04
Python 3.8
DeepStream SDK 6.1.1

Features:
- New app deepstream-demux-multi-in-multi-out added
- Updated deepstream_test_4.ipynb notebook
- Change binding gst_nvevent_new_stream_reset() to gst_element_send_nvevent_new_stream_reset()
- Deprecation: member "dims" of "NvDsInferLayerInfo" deprecated in favor of "inferDims"
- Deprecation: member "atttributeIndex" of "NvDsInferAttribute" deprecated in favor of "attributeIndex"
- Update to PeopleNet v2.6 for deepstream-test3 app
  • Loading branch information
nv-rpaliwal committed Aug 30, 2022
1 parent 175d711 commit f70dcc9
Show file tree
Hide file tree
Showing 37 changed files with 934 additions and 267 deletions.
6 changes: 3 additions & 3 deletions HOWTO.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ This guide provides resources for DeepStream application development in Python.
## Prerequisites

* Ubuntu 20.04
* [DeepStream SDK 6.1](https://developer.nvidia.com/deepstream-download) or later
* [DeepStream SDK 6.1.1](https://developer.nvidia.com/deepstream-download) or later
* Python 3.8
* [Gst Python](https://gstreamer.freedesktop.org/modules/gst-python.html) v1.16.2

Expand Down Expand Up @@ -46,11 +46,11 @@ Note: Compiling bindings now also generates a pip installable python wheel for t
<a name="run_samples"></a>
## Running Sample Applications

Clone the deepstream_python_apps repo under <DeepStream 6.1 ROOT>/sources:
Clone the deepstream_python_apps repo under <DeepStream 6.1.1 ROOT>/sources:
git clone https://github.com/NVIDIA-AI-IOT/deepstream_python_apps

This will create the following directory:
```<DeepStream 6.1 ROOT>/sources/deepstream_python_apps```
```<DeepStream 6.1.1 ROOT>/sources/deepstream_python_apps```

The Python apps are under the "apps" directory.
Go into each app directory and follow instructions in the README.
Expand Down
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

This repository contains Python bindings and sample applications for the [DeepStream SDK](https://developer.nvidia.com/deepstream-sdk).

SDK version supported: 6.1
SDK version supported: 6.1.1

<b>The bindings sources along with build instructions are now available under [bindings](bindings)! </b>

<b>This release comes with Operating System upgrades (from Ubuntu 18.04 to Ubuntu 20.04) for DeepStreamSDK 6.1 support. This translates to upgrade in Python version to 3.8 and [gst-python](3rdparty/gst-python/) version has also been upgraded to 1.16.2 !</b>
<b>This release comes with Operating System upgrades (from Ubuntu 18.04 to Ubuntu 20.04) for DeepStreamSDK 6.1.1 support. This translates to upgrade in Python version to 3.8 and [gst-python](3rdparty/gst-python/) version has also been upgraded to 1.16.2 !</b>

Download the latest release package complete with bindings and sample applications from the [release section](../../releases).

Expand Down Expand Up @@ -43,7 +43,7 @@ To run the sample applications or write your own, please consult the [HOW-TO Gui
We currently provide the following sample applications:
* [deepstream-test1](apps/deepstream-test1) -- 4-class object detection pipeline
* [deepstream-test2](apps/deepstream-test2) -- 4-class object detection, tracking and attribute classification pipeline
* <b>UPDATE</b> [deepstream-test3](apps/deepstream-test3) -- multi-stream pipeline performing 4-class object detection - now also supports triton inference server, no-display mode, file-loop and silent mode
* [deepstream-test3](apps/deepstream-test3) -- multi-stream pipeline performing 4-class object detection - now also supports triton inference server, no-display mode, file-loop and silent mode
* [deepstream-test4](apps/deepstream-test4) -- msgbroker for sending analytics results to the cloud
* [deepstream-imagedata-multistream](apps/deepstream-imagedata-multistream) -- multi-stream pipeline with access to image buffers
* [deepstream-ssd-parser](apps/deepstream-ssd-parser) -- SSD model inference via Triton server with output parsing in Python
Expand All @@ -55,7 +55,8 @@ We currently provide the following sample applications:
* [runtime_source_add_delete](apps/runtime_source_add_delete) -- add/delete source streams at runtime
* [deepstream-imagedata-multistream-redaction](apps/deepstream-imagedata-multistream-redaction) -- multi-stream pipeline with face detection and redaction
* [deepstream-rtsp-in-rtsp-out](apps/deepstream-rtsp-in-rtsp-out) -- multi-stream pipeline with RTSP input/output
* <b>NEW</b> [deepstream-preprocess-test](apps/deepstream-preprocess-test) -- multi-stream pipeline using nvdspreprocess plugin with custom ROIs
* [deepstream-preprocess-test](apps/deepstream-preprocess-test) -- multi-stream pipeline using nvdspreprocess plugin with custom ROIs
* <b>NEW</b> [deepstream-demux-multi-in-multi-out](apps/deepstream-demux-multi-in-multi-out) -- multi-stream pipeline using nvstreamdemux plugin to generated separate buffer outputs


Detailed application information is provided in each application's subdirectory under [apps](apps).
Expand Down
6 changes: 3 additions & 3 deletions apps/README
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ DeepStream SDK Python Bindings
================================================================================
Setup pre-requisites:
- Ubuntu 20.04
- NVIDIA DeepStream SDK 6.1
- NVIDIA DeepStream SDK 6.1.1
- Python 3.8
- Gst-python

Expand Down Expand Up @@ -52,7 +52,7 @@ Package Contents
Installing Pre-requisites:
--------------------------------------------------------------------------------

DeepStream SDK 6.1
DeepStream SDK 6.1.1
--------------------
Download and install from https://developer.nvidia.com/deepstream-download

Expand All @@ -70,7 +70,7 @@ $ sudo apt install python3-gi python3-dev python3-gst-1.0 -y
--------------------------------------------------------------------------------
Running the samples
--------------------------------------------------------------------------------
The apps are configured to work from inside the DeepStream SDK 6.1 installation.
The apps are configured to work from inside the DeepStream SDK 6.1.1 installation.

Clone the deepstream_python_apps repo under <DeepStream ROOT>/sources:
$ git clone https://github.com/NVIDIA-AI-IOT/deepstream_python_apps
Expand Down
63 changes: 63 additions & 0 deletions apps/deepstream-demux-multi-in-multi-out/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
################################################################################
# SPDX-FileCopyrightText: Copyright (c) 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
################################################################################

Prerequisites:
- DeepStreamSDK 6.1.1
- Python 3.8
- Gst-python

To run:
$ python3 deepstream_demux_multi_in_multi_out.py -i <uri1> [uri2] ... [uriN]
e.g.
$ python3 deepstream_demux_multi_in_multi_out.py -i file:///home/ubuntu/video1.mp4 file:///home/ubuntu/video2.mp4
$ python3 deepstream_demux_multi_in_multi_out.py -i rtsp://127.0.0.1/video1 rtsp://127.0.0.1/video2

This document describes the sample deepstream_demux_multi_in_multi_out application.

This sample builds on top of the deepstream-test3 sample to demonstrate how to:

* Uses multiple sources in the pipeline.
* The pipeline uses `nvstreamdemux` to split batches and output separate buffer/streams.
* `nvstreamdemux` helps when separate output is required for each input stream.

Refer to the deepstream-test1 sample documentation for an example of simple
single-stream inference, bounding-box overlay, and rendering.

Nvstreamdemux reference - https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_plugin_gst-nvstreamdemux.html

This sample accepts one or more H.264/H.265 video streams as input. It creates
a source bin for each input and connects the bins to an instance of the
"nvstreammux" element, which forms the batch of frames. The batch of
frames is fed to "nvinfer" for batched inferencing. "nvstreamdemux" demuxes batched frames into individual buffers.
It creates a separate Gst Buffer for each frame in the batch. For each input separate branch is created with the following elements in series
`nvstreamdemux -> queue -> nvvidconv -> nvosd -> nveglglessink`
So for two inputs, 2 separate output windows are created, likewise for N input N outputs are created.

The "width" and "height" properties must be set on the stream-muxer to set the
output resolution. If the input frame resolution is different from
stream-muxer's "width" and "height", the input frame will be scaled to muxer's
output resolution.

The stream-muxer waits for a user-defined timeout before forming the batch. The
timeout is set using the "batched-push-timeout" property. If the complete batch
is formed before the timeout is reached, the batch is pushed to the downstream
element. If the timeout is reached before the complete batch can be formed
(which can happen in case of rtsp sources), the batch is formed from the
available input buffers and pushed. Ideally, the timeout of the stream-muxer
should be set based on the framerate of the fastest source. It can also be set
to -1 to make the stream-muxer wait infinitely.

Loading

0 comments on commit f70dcc9

Please sign in to comment.