-
Notifications
You must be signed in to change notification settings - Fork 66
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1290 from prominenceai/v0.31.a.alpha
v0.31.a.alpha
- Loading branch information
Showing
71 changed files
with
3,477 additions
and
1,760 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# v0.31.a.alpha (patch) Release Notes | ||
**Important!** | ||
* `v0.31.a.alpha` is a **patch** release (patch `a` for the `v0.31.alpha` release). | ||
* Only the documentation and examples have been updated (and improved). | ||
* libdsl.so has not changed in this release. | ||
|
||
## Issues closed in this release | ||
* Cleanup, catagorize, and document all DSL Python and C/C++ Examples [#1288](https://github.com/prominenceai/deepstream-services-library/issues/1288) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
# Advanced Inference Pipelies | ||
This page documents the following "Advance Inference Pipelines" consiting of | ||
* [Parallel Inference on Selective Streams](#parallel-inference-on-selective-streams) | ||
* [Multiple Pipelines Running in Their Own Thread](#multiple-pipelines-running-in-their-own-thread) | ||
* [Multiple Pipelines with Interpipe Source listening to Pipeline with InterpipeSink](#multiple-pipelines-with-interpipe-source-listening-to-pipeline-with-interpipe-sink) | ||
* [Single Pipeline with Interpipe Source switching between Multiple Pipelines/Sinks](#single-pipeline-with-interpipe-source-switching-between-multiple-pipelinessinks) | ||
|
||
<br> | ||
|
||
--- | ||
|
||
### Parallel Inference on Selective Streams | ||
|
||
* [`parallel_inference_on_selective_streams.py`](/examples/python/parallel_inference_on_selective_streams.py) | ||
* [`parallel_inference_on_selective_streams.cpp`](/examples/cpp/parallel_inference_on_selective_streams.cpp) | ||
|
||
```python | ||
# | ||
# This example shows how to use a Remuxer Component to create parallel branches, | ||
# each with their own Inference Components (Preprocessors, Inference Engines, | ||
# Trackers, for example). | ||
# IMPORTANT! All branches are (currently) using the same model engine and config. | ||
# files, which is not a valid use case. The actual inference components and | ||
# models to use for any specific use cases is beyond the scope of this example. | ||
# | ||
# Each Branch added to the Remuxer can specify which streams to process or | ||
# to process all. Use the Remuxer "branch-add-to" service to add to specific streams. | ||
# | ||
# stream_ids = [0,1] | ||
# dsl_remuxer_branch_add_to('my-remuxer', 'my-branch-0', | ||
# stream_ids, len[stream_ids]) | ||
# | ||
# You can use the "branch-add" service if adding to all streams | ||
# | ||
# dsl_remuxer_branch_add('my-remuxer', 'my-branch-0') | ||
# | ||
# In this example, 4 RTSP Sources are added to the Pipeline: | ||
# - branch-1 will process streams [0,1] | ||
# - branch-2 will process streams [1,2] | ||
# - branch-3 will process streams [0,2,3] | ||
# | ||
# Three ODE Instance Triggers are created to trigger on new object instances | ||
# events (i.e. new tracker ids). Each is filtering on a unique class-i | ||
# (vehicle, person, and bicycle). | ||
# | ||
# The ODE Triggers are added to an ODE Handler which is added to the src-pad | ||
# (output) of the Remuxer. | ||
# | ||
# A single ODE Print Action is created and added to each Trigger (shared action). | ||
# Using multiple Print Actions running in parallel -- each writing to the same | ||
# stdout buffer -- will result in the printed data appearing interlaced. A single | ||
# Action with an internal mutex will protect from stdout buffer reentrancy. | ||
# | ||
|
||
``` | ||
|
||
<br> | ||
|
||
--- | ||
|
||
### Multiple Pipelines Running in Their Own Thread | ||
|
||
* [`multiple_pipelines.py`](/examples/python/multiple_pipelines.py) | ||
* [`multiple_pipelines.cpp`](/examples/cpp/multiple_pipelines.cpp) | ||
|
||
```python | ||
# | ||
# This example demonstrates how to run multple Pipelines, each in their own | ||
# thread, and each with their own main-context and main-loop. | ||
# | ||
# After creating and starting each Pipelines, the script joins each of the | ||
# threads waiting for them to complete - either by EOS message, 'Q' key, or | ||
# Delete Window. | ||
# | ||
``` | ||
|
||
<br> | ||
|
||
--- | ||
|
||
### Multiple Pipelines with Interpipe Source listening to Pipeline with Interpipe Sink | ||
|
||
* [`interpipe_multiple_pipelines_listening_to_single_sink.py`](/examples/python/interpipe_multiple_pipelines_listening_to_single_sink.py) | ||
* [`interpipe_multiple_pipelines_listening_to_single_sink.cpp`](/examples/cpp/interpipe_multiple_pipelines_listening_to_single_sink.cpp) | ||
|
||
```python | ||
# | ||
# This script demonstrates how to run multple Pipelines, each with an Interpipe | ||
# Source, both listening to the same Interpipe Sink. | ||
# | ||
# A single Player is created with a File Source and Interpipe Sink. Two Inference | ||
# Pipelines are created to listen to the single Player - shared input stream. | ||
# The two Pipelines can be created with different configs, models, and/or Trackers | ||
# for side-by-side comparison. Both Pipelines run in their own main-loop with their | ||
# own main-context, and have their own Window Sink for viewing and external control. | ||
# | ||
``` | ||
<br> | ||
|
||
--- | ||
|
||
### Single Pipeline with Interpipe Source switching between Multiple Pipelines/Sinks | ||
|
||
* [`interpipe_single_pipeline_dynamic_switching_between_multiple_sinks.py`](/examples/python/interpipe_single_pipeline_dynamic_switching_between_multiple_sinks.py) | ||
* [`interpipe_single_pipeline_dynamic_switching_between_multiple_sinks.cpp`](/examples/cpp/interpipe_single_pipeline_dynamic_switching_between_multiple_sinks.cpp) | ||
|
||
```python | ||
# ------------------------------------------------------------------------------------ | ||
# This example demonstrates interpipe dynamic switching. Four DSL Players | ||
# are created, each with a File Source and Interpipe Sink. A single | ||
# inference Pipeline with an Interpipe Source is created as the single listener | ||
# | ||
# The Interpipe Source's "listen_to" setting is updated based on keyboard input. | ||
# The xwindow_key_event_handler (see below) is added to the Pipeline's Window Sink. | ||
# The handler, on key release, sets the "listen_to" setting to the Interpipe Sink | ||
# name that corresponds to the key value - 1 through 4. | ||
``` | ||
|
Oops, something went wrong.