CV / NanoDet

NanoDet-RepVGG

reComputer R Series (CM5 + Hailo-10H)

COCO-Objekterkennung mit 80 Klassen mit NanoDet-RepVGG (On-Chip-NMS) auf reComputer R Series mit Hailo-8 oder Hailo-10H.

47 Downloads
Größe
10.7 MB
Speicher
4GB+
Präzision
Hailo HEF / HailoRT

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

Erste Schritte

Bereitstellen
sudo docker run --rm \
  --name cm5-hailo10h-nanodet-repvgg \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  -v /usr/lib/libhailort.so.5.1.1:/usr/lib/libhailort.so.5.1.1:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo10h-cv/nanodet_repvgg:latest \
  python web_detection.py --model_path model/nanodet_repvgg.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/nanodet_repvgg/predict" \
  -F "file=@test.jpg"
Python
import requests

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

Modelldetails

reComputer R Series (CM5 + Hailo-10H)

NanoDet-RepVGG auf reComputer CM5 + Hailo-10H

NanoDet-RepVGG führt die COCO-Objekterkennung mit 80 Klassen auf dem Hailo-10H mit On-Chip-NMS (Hailo HPP) aus. Das HEF liefert bereits dekodierte Erkennungen und die App analysiert nur den Post-NMS-Tensor. Portiert aus dem validierten Hailo-8-Modul rpi5_hailo8_nanodet_repvgg; der Executor verwendet den Multi-Output-create_infer_model-Wrapper von HailoRT 5.1.1 mit FLOAT32- Ausgaben.

Modellinformationen

EigenschaftWert
ArchitekturNanoDet-RepVGG (COCO-80)
AufgabeObjekterkennung
EingabeBeim Start aus dem HEF gelesen (wird beim ersten Lauf ausgegeben)
AusgabeOn-Chip-NMS-Tensor, Post-NMS-Form 80x5x100
Klassen80 (COCO, ab 0 indiziert, ohne labels_offset)
HEFHailo Model Zoo v5.4.0, Hailo-10H (5.2 MB)

Hardware- und Host-Setup

PunktWert
BoardreComputer R Series mit Raspberry Pi CM5
BeschleunigerHailo-10H über PCIe, als /dev/hailo0 verfügbar
Host-Treiberapt-Paket hailo-h10-all
RuntimeHailoRT 5.1.1
Python im Container3.13, aarch64
bash
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot

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

Mit Demo-Video ausführen

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

Öffnen Sie http://<Board_IP>:8000 für die Web-Vorschau. Für eine USB-Kamera /dev/video0 mounten und --video_path video/test.mp4 durch --camera_id 0 ersetzen.

REST API

bash
curl -X POST "http://<Board_IP>:8000/api/models/nanodet_repvgg/predict" \
  -F "file=@test.jpg"
EndpointMethodeBeschreibung
/healthGETHealth-Check
/api/models/nanodet_repvgg/predictPOSTErkennungen (JSON)
/api/video_feedGETMJPEG-Vorschau-Stream

Implementierungshinweise

  • Das HEF führt NMS on-chip aus; die App analysiert nur den Post-NMS-Tensor, daher wird nms_thresh ignoriert (nur API-Parität).
  • Post-NMS-Zeilen sind [ymin, xmin, ymax, xmax, score], normalisiert auf [0,1] der Letterbox-Eingabe; die App skaliert auf Pixel und hebt das Letterbox auf.
  • Normalisierung/Farbkonvertierung ist in das HEF kompiliert; die App macht das Letterbox und liefert rohe uint8-Pixel.
  • HailoRT kann den NMS-vstream als Ragged-Liste pro Klasse (NMS-by-score) zurückgeben; der Parser unterstützt zusätzlich Object/Dense-Layouts. Die erste Inferenz protokolliert Typ/Form roh zur Verifikation.
  • Ausgaben werden als FormatType.FLOAT32 angefordert (vom SDK dequantisiert); das Lesen roher quantisierter Puffer ergibt Werte in Zehntausenden und null gültige Erkennungen.
  • Klassen-Mapping: cls_id (0..79) → Standard-COCO-80-Klassenliste direkt.

Modellquelle

nanodet_repvgg.hef ist der Hailo-10H-Build von Hailo Model Zoo v5.4.0 — URL, SHA256 und Größe sind im Repository (src/hailo10h_nanodet_repvgg/model/README.md) verzeichnet.

Eingaben und Ausgaben

Input: image, video, or USB camera frame. Output: COCO 80-class detection boxes with confidences, plus an annotated MJPEG preview.