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.
./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, thehailofilter
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
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
- 'yolov5m_wo_spp_60p' - https://github.com/hailo-ai/hailo_model_zoo/blob/master/hailo_model_zoo/cfg/networks/yolov5m_wo_spp_60p.yaml
- 'mobilenet_ssd' - https://github.com/hailo-ai/hailo_model_zoo/blob/master/hailo_model_zoo/cfg/networks/ssd_mobilenet_v1.yaml
cd $TAPPAS_WORKSPACE/apps/h8/gstreamer/raspberrypi/detection
./detection.sh
The output should look like:
This app is based on our single network pipeline template
With small modifications:
- Use decode elements instead of
decodebin
- Increase the number of threads on the
videoconvert
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)
- Retraining docker
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