Skip to main content

RGB AI Cameras

The qtec C-series with an integrated Hailo-8™ M.2 AI Acceleration Module hailo-ai.

Platform

img50 img280

HardwareDescription
Modelqtec-C-series qtec-c-series
APUAMD Ryzen Embedded V1605B with Radeon™ Vega 8 Graphics V1605B
Available sensorsSony IMX420 or IMX421 Bayer
AI ModuleHailo-8™ M.2 AI Acceleration Module (26 TOPS) hailo-ai
Bitstreamscorna-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.

Hailo performance graph img50

Reference: official Hailo specs

Benchmarks

Classification

NN ModelInput ResolutionFPSPower (W)FPS/W
ResNet-50 v1224×2241,3943.7375
MobileNet_v2_1.0224×2242,5972.21,157
EfficientNet_M240×2409844.2232
ViT_base224×2241392.751

Object Detection

NN ModelInput ResolutionFPSPower (W)FPS/W
SSD_MobileNet_v1300×3001,0162.2463
YOLOv5m640×6402425.345

Semantic Segmentation

NN ModelInput ResolutionFPSPower (W)FPS/W
stdc11,024×1,920583.119

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.

Hailo compile process

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
note

Example based on Hailo TAPPAS $HOME/apps/detection/detection.sh and adapted for the hardware described in this page.

Capture example:

capture

Python example

See hailo.ai developer zone documentation (registration is required for full documentation access).