Skip to content

Latest commit

 

History

History
101 lines (59 loc) · 3.8 KB

File metadata and controls

101 lines (59 loc) · 3.8 KB

x86 Accelerated Multi-Stream Pipeline

Overview

This GStreamer pipeline demonstrates Person+Face detection on multiple video streams.

All the streams are processed in parallel through the decode and scale phases, and enter the Hailo device frame by frame.

Afterwards postprocess and drawing phases add the classified object and bounding boxes to each frame. The last step is to match each frame back to its respective stream and output all of them to the display.

In this pipeline the decoding phase is accelerated by VA-API.

Prerequisites

  • RSC101
  • Ubuntu 22.04 (or docker with ubuntu 22.04)
  • Hailo-8 device connected via PCIe

Preparations

Run the pipeline

./multistream_detection.sh
  1. --show-fps Prints the fps to the output.
  2. --num-of-sources Sets the number of sources to use by given input. The default and recommended value in this pipeline is 12 (for files) or 8 (for camera streams over RTSP protocol)"
  3. --network If specified, set the network to use. Choose from [yolov5, yolox, yolov8], default is yolov5.
  4. --device-count If specified, set the number of devices to use. Default (and maximum value) is the minimum between 4 and the number of devices on machine.

The output should look like:

readme_resources/example.png

Supported Networks

Overview of the pipeline

These apps are based on our multi stream pipeline template

Example of HailoRT Stream Multiplexer

  • This application shows the usage of the HailoRT Stream Multiplexer. This feature controls the time shared on the Hailo device between all streams. The Stream Multiplexer is enabled by the Hailonet scheduling-algorithm property when in use in multiple Hailonet elements that run the same HEF file. When the Stream Multiplexer is in use, there is no need to use funnel and streamiddemux like elements because the logic is handled internally.

Using Retraining to Replace Models

Note

It is recommended to first read the Retraining TAPPAS Models page.

Retraining Dockers (available on Hailo Model Zoo), can be used to replace the following models with ones that are trained on the users own dataset:

  • yolov8m

    • Retraining docker
      • For optimum compatibility and performance with TAPPAS, use for compilation the corresponding YAML file from above.
    • TAPPAS changes to replace model:
      • Update HEF_PATH on the .sh file
  • yolov5m

    • Retraining docker
      • For optimum compatibility and performance with TAPPAS, use for compilation the corresponding YAML file from above.
    • TAPPAS changes to replace model:
      • Update HEF_PATH on the .sh file
  • yolox_l_leaky

    • For optimum compatibility and performance with TAPPAS, use for compilation the corresponding YAML file from above.
    • TAPPAS changes to replace model:
      • Update HEF_PATH on the .sh file