Hailo integration

Hailo integration

  1. Support as of v0.11.0

SCAiLX supports accelerated workloads using Hailo-8 PCIe modules. This allows for up to 20 TOPs of AI inference.

Verify setup

Check that the Hailo device is recognized:

Check kernel driver:

root@scailx-ai:~# ls /dev/hailo* && lsmod | grep hailo && lspci /dev/hailo0 hailo_pci 90112 0 00:00.0 PCI bridge: Synopsys, Inc. DWC_usb3 / PCIe bridge (rev 01) 01:00.0 Co-processor: Hailo Technologies Ltd. Hailo-8 AI Processor (rev 01)

Check hailortCLI:

root@scailx-ai:~# hailortcli fw-control identify Executing on device: 0000:01:00.0 Identifying board Control Protocol Version: 2 Firmware Version: 4.19.0 (release,app,extended context switch buffer) Logger Version: 0 Board Name: Hailo-8 Device Architecture: HAILO8 Serial Number: HLLWME0214600081 Part Number: HM218B1C2KA Product Name: HAILO-8 AI ACCELERATOR M.2 A+E KEY MODULE

Check GStreamer plugins:

root@scailx-ai:~# gst-inspect-1.0 | grep hailo hailo: hailodevicestats: hailodevicestats element hailo: hailonet: hailonet element hailo: synchailonet: sync hailonet element hailotools: hailoaggregator: hailoaggregator - Cascading hailotools: hailocounter: hailocounter - postprocessing element hailotools: hailocropper: hailocropper hailotools: hailoexportfile: hailoexportfile - export element hailotools: hailoexportzmq: hailoexportzmq - export element hailotools: hailofilter: hailofilter - postprocessing element hailotools: hailogallery: Hailo gallery element hailotools: hailograytonv12: hailograytonv12 - postprocessing element hailotools: hailoimportzmq: hailoimportzmq - import element hailotools: hailomuxer: Muxer pipeline merging hailotools: hailonv12togray: hailonv12togray - postprocessing element hailotools: hailonvalve: HailoNValve element hailotools: hailooverlay: hailooverlay - overlay element hailotools: hailoroundrobin: Input Round Robin element hailotools: hailostreamrouter: Hailo Stream Router hailotools: hailotileaggregator: hailotileaggregator hailotools: hailotilecropper: hailotilecropper - Tiling hailotools: hailotracker: Hailo object tracking element hailotracers: bitrate (GstTracerFactory) hailotracers: buffer (GstTracerFactory) hailotracers: bufferdrop (GstTracerFactory) hailotracers: cpuusage (GstTracerFactory) hailotracers: detections (GstTracerFactory) hailotracers: framerate (GstTracerFactory) hailotracers: graphic (GstTracerFactory) hailotracers: interlatency (GstTracerFactory) hailotracers: numerator (GstTracerFactory) hailotracers: proctime (GstTracerFactory) hailotracers: queuelevel (GstTracerFactory) hailotracers: scheduletime (GstTracerFactory) hailotracers: threadmonitor (GstTracerFactory)

Run examples

The example scripts are provided in the /opt/hailo/apps directory.

Note that the demo scripts download Hailo models and resources from the Hailo model CDN, as these models are too large to store in the main OS update image. Thus these demos need an active internet connection the first time they are run.

Detection Demo

  • go to detection demo folder:

cd /opt/hailo/apps/detection
  • Run the demo script

./imx8_detection.sh # or to specify a sensor device: ./imx8_detection.sh -i /dev/video-isi-csi0

LPR Demo

  • go to LPR demo folder:

cd /opt/hailo/apps/license_plate_recognition
  • The LPR demo can be run with a camera input (sensor) or a video file (.mp4) and is available as a python or bash script:

# Python script with sensor or video: ./scailx_hailo_lpr.py /dev/video-isi-csi0 ./scailx_hailo_lpr.py ./resources/lpr.mp4 # bash demo with sensor or video: ./imx8_license_plate_recognition.sh --use-cam ./imx8_license_plate_recognition.sh
image-20250429-144646.png

Click on the link: http://scailx-ai.local:8091

LPR demo.jpg

the LPR demo is trained only for number plates with yellow background and only numbers 0-9.

 

Known issues