Hailo Technologies Ltd. is indeed a semiconductor high-tech company based in Tel Aviv, Israel. Although this blog focuses on the Israeli product Hailo-8L Entry-Level AI Accelerator, I would like to take this opportunity to celebrate the successful holding of 2025 China Victory Day Parade.
In my first blog post about Hailo last year, not using a Docker container to create a Python 3.10 environment caused me significant troubles, and I actually failed to complete the demonstration. Today, we are going to walk through the entire Hailo process again.
1. Raspberry Pi 5 Enviroment
1.1 neofetch
1.2 Package Installation
Please visit Hailo Software Downloads to download and install the following three MUST software packages:
- HailoRT – Ubuntu package (deb) for arm64
1 | ➜ dpkg -L hailort |
- HailoRT – PCIe driver Ubuntu package (deb)
1 | ➜ ~ dpkg -L hailort-pcie-driver |
HailoRT – Python package (whl) for Python 3.11, aarch64
TAPPAS Python Binding (Optional)
1 | ➜ ~ pip list | grep hailo |
Note: Since my Raspberry Pi 5 comes with Python 3.11 pre-installed, I have selected the Python 3.11 version. You should choose the appropriate version that matches your Python environment for installation.
Please also guarantee the software you installed are compatible with each other. As shown in the following, I’m using the newest compatible versions.
Finally, let’s test if Hailo is correctly configured on our Raspberry Pi 5.
1.3 Preparation
Please strictly follow the How to Set Up Raspberry Pi 5 and Hailo guide to fix any bugs that have already appeared or to prevent potential ones.
1.4 Identify Device Architecture
This is a MUST step to do.
1 | ➜ ~ hailortcli fw-control identify |
Mine is a HAILO8L.
2 Models
2.1 Download .hef
s
For simplicity, I directly downloaded some .hef
files from HAILO8L Models
2.2 hailortcli run
.hef
s
The .hef (Hailo Executable File) format is platform-independent: a single .hef file can be executed on both x86_64 hosts and aarch64 (ARM64) hosts, as long as the system has the appropriate Hailo runtime (HailoRT) and driver installed.
This is possible because the .hef file does not contain host-specific binaries or compiled CPU code. Instead, it encapsulates the compiled Hailo neural network graph targeted for the Hailo hardware accelerator itself. The host platform - whether x86_64 or aarch64 - acts mainly as a controller that loads the .hef into the Hailo device, configures it, and orchestrates inference.
In other words, the .hef file is tied to the Hailo hardware (e.g., Hailo-8, Hailo-8L, Hailo-10) but is independent of the host CPU architecture. This allows the same .hef model file to be deployed seamlessly across development environments (for example, a workstation with an x86_64 CPU and PCIe card) and edge devices (for example, a Raspberry Pi 5 or Jetson board with an ARM64 CPU and M.2 card).
3. Demonstration
3.1 Single Image - Object Detection and Image Segmentation
In this demonstration, 2 famous images from Ultralytics are respectively adopted for object detection and image segmentation:
Hailo Object Detection using yolov11s.hef | Hailo Image Segmentation using yolov8s_seg.hef |
---|---|
![]() |
![]() |
3.2 Video - Detection and Tracking
- Roboflow supervision is used in this demo, for tracking purpose.
- For demonstration, the video on the front page from Kaggle‘s 720p Road and Traffic Video for Object Detection Dataset is adopted.
- The model used in this demo is: yolov5s_wo_spp.hef
3.3 Detection and Tracking - Live Camera RTSP
3.3.1 On Server Raspberry Pi 5
1 | ✗ python3 camera_ai_rtsp.py |
3.3.2 On Any Client
1 | ffplay -rtsp_transport tcp rtsp://192.168.1.90:8554/ai |
Live Stream RTSP Broadcasted After Processed by Hailo on Raspberry Pi 5 | ffplay the Processed Live Stream on Server |
---|---|
![]() |
![]() |
4. Compilation
Like other dedicated AI hardware platforms, Hailo‘s software stack involves compiling a trained model, converting it from the standard ONNX format into its proprietary HEF (Hailo Executable Format) file optimized for its own architecture.