CV / YOLO26

YOLO26

YOLO26n/s/m COCO object detection on NVIDIA Jetson through Ultralytics and on reComputer R Series with Hailo-8 or Hailo-10H through HailoRT.

18 downloads
Size
16GB disk
Memory
4GB+
Precision
JetPack 5/6/7 / Hailo HEF

Choose the device you're using, the set up guide and documentation will update accordingly.

Getting Started

Deploy
sudo docker run --rm \
  --name cm5-hailo8-yolo26n \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  -v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo8-cv/yolo26n:latest \
  python web_detection.py --model_path model/yolo26n.hef --video_path video/test.mp4

REST API

Use the REST API to run inference. Copy the commands below.

Curl
curl -X POST "http://<Board_IP>:8000/api/models/yolo26n/predict" \
  -F "file=@test.jpg"
Python
import requests

with open("test.jpg", "rb") as image_file:
    response = requests.post(
        "http://<Board_IP>:8000/api/models/yolo26n/predict",
        files={"file": image_file},
        timeout=30,
    )

print(response.json())

Model Details

reComputer R Series (CM5 + Hailo-8)

YOLO26 on reComputer R Series (CM5 + Hailo-8)

YOLO26n / YOLO26s / YOLO26m perform COCO 80-class object detection on Hailo-8 through HailoRT. YOLO26 is a one2one head (one prediction per grid cell, no anchors, no NMS): the host decodes the raw split heads and selects with the two-stage top-k, and a compile that ships the on-chip HPP NMS result is parsed as well — the layout in use is logged on the first inference.

This page targets reComputer R Series (CM5 + Hailo-8) with a PCIe Hailo-8 accelerator.

Hardware and Host Setup

ItemValue
BoardreComputer R Series with Raspberry Pi CM5
AcceleratorHailo-8 over PCIe, exposed as /dev/hailo0
RuntimeHailoRT 4.23.x
Python in container3.11, aarch64

Install the Hailo-8 packages on the host and confirm that the driver and device are ready before starting the container:

bash
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot

# After reboot
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0

The expected HailoRT version for these images is 4.23.x.

Run With Demo Video

YOLO26n:

bash
sudo docker run --rm \
  --name cm5-hailo8-yolo26n \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  -v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo8-cv/yolo26n:latest \
  python web_detection.py --model_path model/yolo26n.hef --video_path video/test.mp4

YOLO26s:

bash
sudo docker run --rm \
  --name cm5-hailo8-yolo26s \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  -v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo8-cv/yolo26s:latest \
  python web_detection.py --model_path model/yolo26s.hef --video_path video/test.mp4

YOLO26m:

bash
sudo docker run --rm \
  --name cm5-hailo8-yolo26m \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  -v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo8-cv/yolo26m:latest \
  python web_detection.py --model_path model/yolo26m.hef --video_path video/test.mp4

Open http://<Board_IP>:8000 to view the web preview.

USB Camera Mode

bash
sudo docker run --rm \
  --name cm5-hailo8-yolo26n \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  --device /dev/video0:/dev/video0 \
  -v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo8-cv/yolo26n:latest \
  python web_detection.py --model_path model/yolo26n.hef --camera_id 0

Swap yolo26n for yolo26s or yolo26m to use another variant.

HEF Files

ModelSizeNotes
yolo26n.hef8,755,512 (8.3 MB)2.4M params, 5.5G ops
yolo26s.hef20,307,365 (19.4 MB)9.5M params, 20.9G ops
yolo26m.hef29,155,151 (27.8 MB)20.4M params, 68.4G ops

All three variants are Hailo Model Zoo v2.19.0 Hailo-8 builds of the same Ultralytics YOLO26 family.

Source: https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v2.19.0/hailo8/yolo26n.hef (yolo26s.hef, yolo26m.hef in the same directory).

REST API

text
POST http://<Board_IP>:8000/api/models/yolo26n/predict
bash
curl -X POST "http://<Board_IP>:8000/api/models/yolo26n/predict" \
  -F "file=@test.jpg"
EndpointMethodPurpose
/GETWeb preview UI
/api/models/yolo26{n,s,m}/predictPOSTDetections (JSON)
/api/video_feedGETMJPEG preview stream

Implementation Notes

  • The Model Zoo base/yolo26.yaml uses nms=false, sigmoid=false, hpp=false and meta_arch=yolo26, with post_nms_topk=300 inherited from base/yolov8.yaml; info.output_shape documents 3 strides x (4 box, 80 class scores).
  • One2one selection: no NMS runs at all. The host applies sigmoid, takes the top-k anchors by max class score, then the top-k (anchor, class) pairs — multiple classes per anchor are allowed — and filters by the confidence slider.
  • Box decode: the 4-channel head gives the distances from the cell centre to the left/top and right/bottom edges in stride units (regression_length=1); 64-channel DFL compiles are decoded through the softmax expectation.
  • If a compile instead returns the on-chip HPP NMS result (as the yolo26-seg HEFs do) the post-NMS tensor is parsed (compact per-class buffer, dense Cx5xD / CxDx5, ragged NMS-by-score list) and no host selection runs.
  • The HEF bakes normalize_in_net (mean 0 / std 255) and padding_color=114: the app letterboxes with gray (114) and feeds raw uint8 RGB pixels — no manual normalization.
  • Class IDs 0..79 index the standard COCO class list directly.
  • The first inference logs the layout and the box/score ranges ([YOLO26] layout=..., outputs=[...]) so it can be confirmed on hardware.

Development Notes

  • Source modules: src/hailo10h_yolo26{n,s,m}/ (Hailo-10H) or src/rpi5_hailo8_yolo26{n,s,m}/ (Hailo-8) in the matching model repository
  • Containers: ghcr.io/seeed-projects/recomputer-hailo8-cv/yolo26{n,s,m}:latest
  • The detection family ships n/s/m; YOLO26l / YOLO26x have no Hailo HEF yet.
  • Model licence: AGPL-3.0 (upstream ultralytics/ultralytics).

Inputs and Outputs

Input: image, video, or camera source. Output: COCO 80-class detections through Ultralytics on Jetson or HailoRT on the R Series.