Skip to content

Latest commit

 

History

History
95 lines (59 loc) · 3.37 KB

File metadata and controls

95 lines (59 loc) · 3.37 KB

Detection Pipeline

Overview

detection.sh demonstrates detection on one video file source and verifies Hailo’s configuration.
This is done by running a single-stream object detection pipeline on top of GStreamer using the Hailo-8 device.

Options

./detection.sh [--input FILL-ME]
  • --input is an optional flag, a path to the video file displayed (default is detection.mp4).
  • --network is a flag that sets which network to use. choose from [yolov5, mobilenet_ssd], default is yolov5. this will set the hef file to use, the hailofilter function to use and the scales of the frame to match the width and heigh input dimensions of the network.
  • --show-fps is an optional flag that enables printing FPS on screen.
  • --print-gst-launch is a flag that prints the ready gst-launch command without running it
  • --print-device-stats Print the power and temperature measured

Configuration

In case the selected network is yolo, the app post process parameters can be configured by a json file located in $TAPPAS_WORKSPACE/apps/h8/gstreamer/raspberrypi/detection/resources/configs/yolov5.json

Supported Networks

Run

cd $TAPPAS_WORKSPACE/apps/h8/gstreamer/raspberrypi/detection
./detection.sh

The output should look like:

How it works

This app is based on our single network pipeline template

With small modifications:

  1. Use decode elements instead of decodebin
  2. Increase the number of threads on the videoconvert

How to use Retraining to replace models

Note

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

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

  • 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
      • Update resources/configs/yolov5.json with your new post-processing parameters (NMS)
    • TAPPAS changes to replace model:
      • Update HEF_PATH on the .sh file
      • Update resources/configs/yolov5.json with your new post-processing parameters (NMS)
  • mobilenet_ssd
    • Retraining docker
    • TAPPAS changes to replace model:
      • Update HEF_PATH on the .sh file
      • Update mobilenet_ssd.cpp with your new parameters, then recompile to create libmobilenet_ssd_post.so