Skip to content

Latest commit

 

History

History
150 lines (117 loc) · 16.1 KB

File metadata and controls

150 lines (117 loc) · 16.1 KB

Running Applications (Pipeline and Standalone)

This guide explains how to run the ready-to-use AI applications included in this repository. It covers both:

  • Full-repository installation flow (pipeline CLIs + all app groups)
  • Standalone app flow (Python/C++ apps run independently)

If you still need installation steps, see the Installation Guide.

Setup Environment

If you installed only a standalone app independently, you can skip this step and follow that app's local setup instructions in its README.

source setup_env.sh

Useful CLI Utilities

Command Purpose
get-usb-camera Detect and print available USB camera devices.
hailo-download-resources Download/update model resources (by app group, model, or architecture).
hailo-post-install Complete post-install setup (resources + postprocess compilation).
hailo-audio-troubleshoot Audio diagnostics utility for voice workflows.

Available Applications

Pipeline Applications

The following applications are available as command-line tools. Each one is a self-contained GStreamer pipeline that can be launched with a simple command.

Note: Pipeline apps rely on resources (models, post-process .so files). In full installs this is handled by install.sh. For pip/manual installs, run hailo-post-install (see Installation Guide).

CLI Command Application Description
hailo-detect-simple Simple Object Detection A lightweight version focused on demonstrating raw Hailo performance with minimal CPU overhead. It uses a YOLOv6-Nano model and does not include object tracking.
hailo-detect Full Object Detection A comprehensive detection application featuring object tracking and support for multiple video resolutions.
hailo-pose Pose Estimation Detects human pose keypoints (e.g., joints and limbs) in real-time.
hailo-seg Instance Segmentation Provides pixel-level masks for each detected object, distinguishing different instances from one another.
hailo-depth Depth Estimation Estimates the depth of a scene from a single 2D camera input.
hailo-tiling Tiling Single & multi-scale tiling splitting each frame into several tiles, effective for small objects in high-resolution frames.
hailo-clip CLIP Zero-shot Zero-shot image classification using CLIP-style embeddings for flexible label sets.
hailo-multisource Multisource Demonstrating parallel processing on multiple streams from a combination of various inputs (USB cameras, files, RTSP, etc.).
hailo-face-recon Face Recognition A face recognition application that identifies and verifies faces in real-time. This application is currently in BETA.
hailo-ocr PaddleOCR Text detection and recognition using PaddleOCR models. This application is currently in BETA.
hailo-reid REID Multisource Track people (faces) across multiple cameras (or any other input method) in a pipeline with multiple streams. This application is currently in BETA.
Easter Game Interactive Easter Egg catching game using pose estimation. Created autonomously by AI.

Python GenAI Applications

These standalone GenAI applications are located in hailo_apps/python/gen_ai_apps/ and can be run directly as Python scripts.

Application Description
Agent Tools Example Voice-to-action AI agent with tool integration for controlling hardware (elevators, servos, RGB LEDs) and accessing external services (weather API, math operations).
Voice Assistant Complete voice assistant implementation combining speech recognition, LLM, and text-to-speech.
VLM Chat Vision-Language Model chat application combining vision and language understanding.
Hailo Ollama Ollama integration utilities for running local LLM workflows with Hailo.
Simple LLM Chat Minimal text-only LLM chat example.
Simple VLM Chat Minimal Vision-Language chat example (image + text).
Simple Whisper Chat Minimal Whisper-based speech recognition chat example.

See the GenAI Apps README for additional details and usage notes.

Python Standalone Applications

This repository also includes standalone Python applications for computer vision use cases. These applications are located in hailo_apps/python/standalone_apps/ and can be run directly as Python scripts.

Application Description
Instance Segmentation Standalone example of instance segmentation with custom post-processing.
Lane Detection Lane detection application for automotive use cases.
Object Detection Standalone object detection example with custom post-processing.
Oriented Object Detection Standalone oriented object detection (rotated bounding boxes).
PaddleOCR Standalone text detection and recognition using PaddleOCR models.
Pose Estimation Standalone pose estimation example with custom visualization.
Super Resolution Image super-resolution for enhancing image quality.
Speech Recognition Speech recognition for Hailo-8/8L/10H with live mic recording.
YOLO26 Object Detection YOLO26 object detection with split HEF + ONNX postprocessing pipeline.
YOLO26 Pose Estimation YOLO26 pose estimation with split HEF + ONNX postprocessing pipeline.

These standalone applications typically require additional dependencies which can be installed using the requirements.txt file in each application's directory.

C++ Standalone Applications

This repository also includes standalone C++ applications under hailo_apps/cpp/.

Application Description
Classification Image classification with models trained on ImageNet.
Mono Depth Estimation Monocular depth estimation with SCDepthV3.
Stereo Depth Estimation Stereo depth estimation with StereoNet.
Instance Segmentation Instance segmentation with YOLO segmentation models.
Object Detection Generic and asynchronous object detection.
ONNX Runtime Pipeline Inference with Hailo and post-processing via ONNX Runtime.
Oriented Object Detection Detection with rotated bounding boxes.
Pose Estimation Human pose estimation.
Semantic Segmentation Pixel-wise semantic segmentation (Cityscapes-style outputs).
Zero-Shot Classification CLIP-based zero-shot image classification.

For C++ build and usage instructions, see CPP Examples README.

Run Guidance

Pipeline apps (CLI)

  • Use this flow when you installed the full repository.
  • Activate environment per terminal:
source setup_env.sh
  • Run any pipeline command directly (for example hailo-detect, hailo-pose, hailo-seg).
  • See app-specific options with:
<command> --help

Common Pipeline Arguments

Flag(s) Description
--input, -i <source> Specifies the input source. Common options include: rpi, usb, a device path like /dev/video0, or a path to a video file.
--arch <architecture> Manually sets the Hailo device architecture (e.g., hailo8, hailo8l, hailo10h). If not provided, the system will auto-detect the device.
--hef-path <path> Path to a custom compiled HEF model file, allowing you to run your own trained models.
--show-fps, -f Displays a real-time Frames-Per-Second (FPS) counter on the output video window.
--frame-rate, -r <fps> Sets the target input frame rate for the video source. Defaults to 30.
--disable-sync Disables display synchronization to run the pipeline at maximum speed. This is ideal for benchmarking processing throughput.
--disable-callback Disables user-defined Python callback functions. Frame counting for watchdog continues. Use for performance benchmarking.
--dump-dot Generates a pipeline.dot file, which is a graph of the GStreamer pipeline that can be visualized with tools like Graphviz.
--labels-json <path> Path to a custom JSON file containing the labels for the classes your model can detect or classify.
--use-frame, -u In applications with a Python callback, this flag indicates that the callback is responsible for providing the frame for display.
--enable-watchdog Monitors the pipeline for stalls (no frames processed for 5s) and automatically rebuilds it. Works with --disable-callback.
--log-level <level> Set logging level: debug, info, warning, error, critical. Default: info. Can also use --debug for debug level.
--log-file <path> Optional log file path for persistent logging. Also respects $HAILO_LOG_FILE environment variable.

Standalone apps (Python + C++)

  • "Standalone" means standalone installation flow (no full install.sh flow required).
  • Many standalone apps still depend on shared modules in this repo, so a repo clone is commonly required.
  • Use each app README as source of truth for exact dependencies and run command.

Quick notes:

  • Python CV standalone apps: usually install local requirements.txt in app directory.
  • Python GenAI apps: install extras from repo root:
pip install -e ".[gen-ai]"
  • C++ standalone apps: build/run from each app folder (./build.sh).

For C++ overview, see CPP Examples README.