RGB AI Cameras
The qtec C-series with an integrated Hailo-8™ M.2 AI Acceleration Module hailo-ai.
Platform
Hardware | Description |
---|---|
Model | qtec-C-series qtec-c-series |
APU | AMD Ryzen Embedded V1605B with Radeon™ Vega 8 Graphics V1605B |
Available sensors | Sony IMX420 or IMX421 Bayer |
AI Module | Hailo-8™ M.2 AI Acceleration Module (26 TOPS) hailo-ai |
Bitstreams | corna-tokyo and draco-tokyo bitstreams |
Hailo Edge AI
Performance
With 26 TOPS the Hailo 8 module offers performance similar or superior to Nvidia boards at a fraction of the power consumption.
Reference: official Hailo specs
Benchmarks
Classification
NN Model | Input Resolution | FPS | Power (W) | FPS/W |
---|---|---|---|---|
ResNet-50 v1 | 224×224 | 1,394 | 3.7 | 375 |
MobileNet_v2_1.0 | 224×224 | 2,597 | 2.2 | 1,157 |
EfficientNet_M | 240×240 | 984 | 4.2 | 232 |
ViT_base | 224×224 | 139 | 2.7 | 51 |
Object Detection
NN Model | Input Resolution | FPS | Power (W) | FPS/W |
---|---|---|---|---|
SSD_MobileNet_v1 | 300×300 | 1,016 | 2.2 | 463 |
YOLOv5m | 640×640 | 242 | 5.3 | 45 |
Semantic Segmentation
NN Model | Input Resolution | FPS | Power (W) | FPS/W |
---|---|---|---|---|
stdc1 | 1,024×1,920 | 58 | 3.1 | 19 |
Reference: official benchmarks
Model Zoo
The Hailo Model Zoo provides pre-trained models for high-performance deep learning applications. Using the Hailo Model Zoo you can measure the full precision accuracy of each model, the quantized accuracy using the Hailo Emulator and measure the accuracy on the Hailo-8 device. Finally, you will be able to generate the Hailo Executable Format (HEF) binary file to speed-up development and generate high quality applications accelerated with Hailo-8. The Hailo Model Zoo also provides re-training instructions to train the models on custom datasets and models that were trained for specific use-cases on internal datasets.
https://github.com/hailo-ai/hailo_model_zoo
Model Explorer
The Hailo Model Explorer is a dynamic tool designed to help users explore the models on the Model Zoo and select the best NN models for their AI applications.
The Model Zoo gives users the capability to quickly and easily reproduce the Hailo published performance on the common models and architectures included in our Model Zoo and retrain these models. The collection encompasses both common and state-of-the-art models available in TensorFlow and ONNX formats.
https://hailo.ai/products/hailo-software/model-explorer/
Hailo compilation process
From TensorFlow/ONNX to Hailo HEF file.
Requirements
Packages
Make sure, the following packages are installed in the system:
Distro Packages |
---|
hailo-firmware |
hailo-pci |
hailo-post-processes |
hailortcli |
libgsthailo |
tappas-apps |
pyhailort |
It's possible to check it with dpkg -l
command. Example:
dpkg -l hailo-firmware hailo-pci hailo-post-processes hailortcli libgsthailo \
tappas-apps pyhailort
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-====================-============-============-======================================
ii hailo-firmware 4.12.0-r0.1 amd64 hailo-firmware version 4.12.0-r0
ii hailo-pci 4.12.0-r0.10 amd64 hailo-pci version 4.12.0-r0
ii hailo-post-processes 3.21.0-r0.24 amd64 hailo-post-processes version 3.21.0-r0
ii hailortcli 4.12.0-r0.1 amd64 hailortcli version 4.12.0-r0
ii libgsthailo 4.12.0-r0.2 amd64 libgsthailo version 4.12.0-r0
ii pyhailort 4.12.0-r0.3 amd64 pyhailort version 4.12.0-r0
ii tappas-apps 3.21.0-r0.29 amd64 tappas-apps version 3.21.0-r0
Verification
Hailo-8™ M.2 AI Acceleration Module
- Hailo-8 firmware identification:
hailortcli fw-control identify
Executing on device: 0000:02:00.0
Identifying board
Control Protocol Version: 2
Firmware Version: 4.10.0 (release,app)
Logger Version: 0
Board Name: Hailo-8
Device Architecture: HAILO8
Serial Number: HLLWM2***
Part Number: HM218***
Product Name: HAILO-8 AI ACCELERATOR M.2 M KEY MODULE
- List PCI Hailo-8 module:
lspci -k -s 02:00.0
02:00.0 Co-processor: Hailo Technologies Ltd. Hailo-8 AI Processor (rev 01)
Subsystem: Hailo Technologies Ltd. Hailo-8 AI Processor
Kernel driver in use: hailo
Kernel modules: hailo_pci
- PCI Hailo-8 scan:
hailortcli scan
Hailo Devices:
[-] Device: 0000:02:00.0
- Test/run networks:
hailortcli run <model.hef>
- Measure power consumption:
hailortcli measure_power
- Hailo-8 Linux kernel messages:
dmesg -t | grep -i hailo
hailo_pci: loading out-of-tree module taints kernel.
hailo: Init module. driver version 4.10.0
hailo 0000:02:00.0: Probing on: 1e60:2864...
hailo 0000:02:00.0: Probing: Allocate memory for device extension, 9200
hailo 0000:02:00.0: Probing: Device enabled
hailo 0000:02:00.0: Probing: Enabled 64 bit dma
hailo 0000:02:00.0: Probing: Setting max_desc_page_size to 4096, (page_size=4096)
hailo 0000:02:00.0: Probing: Using userspace allocated vdma buffers
hailo 0000:02:00.0: bar 0 - 0000000051f6354b 0x00000000 a0204000 16384 1 1
hailo 0000:02:00.0: bar 1 - 0000000000000000 0x00000000 00000000 0 0 0
hailo 0000:02:00.0: bar 2 - 000000009a563ea2 0x00000000 a0208000 4096 1 1
hailo 0000:02:00.0: bar 3 - 0000000000000000 0x00000000 00000000 0 0 0
hailo 0000:02:00.0: bar 4 - 0000000089098b82 0x00000000 a0200000 16384 1 1
hailo 0000:02:00.0: bar 5 - 0000000000000000 0x00000000 00000000 0 0 0
hailo 0000:02:00.0: Disabling ASPM L0s
hailo 0000:02:00.0: Successfully disabled ASPM L0s
hailo 0000:02:00.0: Firmware was loaded successfully
hailo 0000:02:00.0: Probing: Added board 1e60-2864, /dev/hailo0
Hailo-8 GStreamer Plugin
gst-inspect-1.0 hailo
Plugin Details:
Name hailo
Description hailo gstreamer plugin
Filename /usr/lib/gstreamer-1.0/libgsthailo.so
Version 1.0
License unknown
Source module hailo
Binary package GStreamer
Origin URL http://gstreamer.net/
hailodevicestats: hailodevicestats element
hailonet: hailonet element
2 features:
+-- 2 elements
Hailo-8 Python wrapper
pip3 list | grep hailo
hailort 4.12.0
GStreamer Hailo Example
DISPLAY=:0 gst-launch-1.0 \
v4l2src device=/dev/qtec/video0 ! \
videoconvert ! \
video/x-raw,format=YUY2,width=1280,height=720,framerate=30/1 ! \
queue leaky=downstream max-size-buffers=5 max-size-bytes=0 max-size-time=0 ! \
hailonet hef-path=/home/root/apps/detection/resources/yolov5m_yuv.hef \
is-active=true ! \
queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! \
hailofilter function-name=yolov5 \
config-path=/home/root/apps/detection/resources/configs/yolov5.json \
so-path=/usr/lib/hailo-post-processes/libyolo_post.so qos=false ! \
queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! \
hailooverlay ! \
queue leaky=downstream max-size-buffers=5 max-size-bytes=0 max-size-time=0 ! \
videoconvert ! \
fpsdisplaysink video-sink=autovideosink name=hailo_display \
sync=false text-overlay=false
Example based on Hailo TAPPAS $HOME/apps/detection/detection.sh
and adapted for the hardware described in this page.
Capture example:
Python example
See hailo.ai developer zone documentation (registration is required for full documentation access).