CV / YOLO26

YOLO26

YOLO26 COCO-Objekterkennung: Ein-Klick-Deployment auf NVIDIA Jetson oder das Hailo-HEF auf reComputer R Series mit Hailo-8 / Hailo-10H.

18 Downloads
Größe
16GB disk
Speicher
4GB+
Präzision
JetPack 5/6/7 / Hailo HEF

Wähle das Gerät, das du verwendest. Die Einrichtungsanleitung und Dokumentation werden entsprechend aktualisiert.

Erste Schritte

Bereitstellen
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

Verwende die REST API für die Inferenz. Kopiere die folgenden Befehle.

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())

Modelldetails

reComputer R Series (CM5 + Hailo-8)

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

YOLO26n / YOLO26s / YOLO26m führen COCO-Objekterkennung (80 Klassen) auf Hailo-8 über HailoRT aus. YOLO26 ist ein one2one-Kopf (eine Vorhersage pro Zelle, keine Anker, kein NMS): der Host dekodiert die rohen Split-Heads und wählt mit dem zweistufigen Top-k; eine Kompilierung mit On-Chip-NMS wird ebenfalls verarbeitet, und das verwendete Layout wird bei der ersten Inferenz protokolliert.

Diese Seite richtet sich an reComputer R Series (CM5 + Hailo-8) mit einem PCIe-Hailo-8-Beschleuniger.

Hardware und Host-Setup

ElementWert
BoardreComputer R Series mit Raspberry Pi CM5
BeschleunigerHailo-8 über PCIe, verfügbar als /dev/hailo0
RuntimeHailoRT 4.23.x
Python im Container3.11, aarch64

Installieren Sie die Hailo-8-Pakete auf dem Host und prüfen Sie Treiber und Gerät, bevor Sie den Container starten:

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

Die erwartete HailoRT-Version für diese Images ist 4.23.x.

Ausführung mit dem 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

Öffnen Sie http://<BOARD_IP>:8000 für die Webvorschau.

USB-Kameramodus

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

Ersetzen Sie yolo26n durch yolo26s oder yolo26m für eine andere Variante.

HEF-Dateien

ModellGrößeHinweise
yolo26n.hef8,755,512 (8.3 MB)Parameter 2.4M, Ops 5.5G
yolo26s.hef20,307,365 (19.4 MB)Parameter 9.5M, Ops 20.9G
yolo26m.hef29,155,151 (27.8 MB)Parameter 20.4M, Ops 68.4G

Alle drei Varianten sind Hailo-8-Builds aus Hailo Model Zoo v2.19.0 derselben Ultralytics-YOLO26-Familie.

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"
EndpunktMethodeZweck
/GETWeb-Vorschau-Oberfläche
/api/models/yolo26{n,s,m}/predictPOSTDetektionen (JSON)
/api/video_feedGETMJPEG-Vorschaustream

Implementierungshinweise

  • Der Model Zoo base/yolo26.yaml nutzt nms=false, sigmoid=false, hpp=false und meta_arch=yolo26, mit post_nms_topk=300 aus base/yolov8.yaml; info.output_shape dokumentiert 3 Strides x (4 Box, 80 Klassen).
  • One2one-Auswahl: es läuft kein NMS. Der Host wendet Sigmoid an, nimmt die Top-k-Anker nach maximalem Klassenscore, dann die Top-k (Anker, Klasse)-Paare — mehrere Klassen pro Anker sind erlaubt — und filtert über den Konfidenzregler.
  • Box-Dekodierung: Der 4-Kanal-Kopf liefert die Abstände vom Zellmittelpunkt zu linken/oberen und rechten/unteren Kanten in Stride-Einheiten (regression_length=1); 64-Kanal-DFL-Kompilierungen werden über den Softmax-Erwartungswert dekodiert.
  • Liefert eine Kompilierung stattdessen das On-Chip-NMS-Ergebnis (wie die yolo26-seg-HEFs), wird der Post-NMS-Tensor geparst (kompakter Puffer je Klasse, dichte Formen Cx5xD / CxDx5, ragged NMS-by-score-Liste) und es läuft keine Host-Auswahl.
  • Das HEF enthält normalize_in_net (mean 0 / std 255) und padding_color=114: die Anwendung letterboxt mit Grau (114) und übergibt rohe uint8-RGB-Pixel.
  • Klassen-IDs 0..79 indizieren direkt die standardmäßige COCO-Liste.
  • Die erste Inferenz protokolliert Layout und Box-/Score-Bereiche ([YOLO26] layout=..., outputs=[...]).

Entwicklungshinweise

  • Quellmodule: src/hailo10h_yolo26{n,s,m}/ (Hailo-10H) oder src/rpi5_hailo8_yolo26{n,s,m}/ (Hailo-8) im passenden Modell-Repository
  • Container: ghcr.io/seeed-projects/recomputer-hailo8-cv/yolo26{n,s,m}:latest
  • Die Detektionsfamilie liefert n/s/m; YOLO26l / YOLO26x haben noch kein Hailo-HEF.
  • Modelllizenz: AGPL-3.0 (Upstream ultralytics/ultralytics).

Eingaben und Ausgaben

Eingabe: Bild, Video oder Kamera. Ausgabe: 80 COCO-Klassen als Detektionsboxen (Ultralytics-Container auf Jetson, Hailo-HEF auf der R Series).