CV / NanoDet
NanoDet-RepVGG-a12
reComputer R Series (CM5 + Hailo-10H)
COCO-objectdetectie met 80 klassen met nanodet_repvgg_a12 (YOLOX-gebaseerd, on-chip-NMS) op reComputer R Series met Hailo-8 of Hailo-10H.
Kies het apparaat dat je gebruikt. De installatiehandleiding en documentatie worden dienovereenkomstig bijgewerkt.
Aan de slag
sudo docker run --rm \
--name cm5-hailo10h-nanodet-repvgg-a12 \
--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_a12:latest \
python web_detection.py --model_path model/nanodet_repvgg_a12.hef --video_path video/test.mp4REST API
Gebruik de REST API om inferentie uit te voeren. Kopieer de onderstaande commando's.
curl -X POST "http://<Board_IP>:8000/api/models/nanodet_repvgg_a12/predict" \
-F "file=@test.jpg"import requests
response = requests.post(
"http://<Board_IP>:8000/api/models/nanodet_repvgg_a12/predict",
files={"file": open("test.jpg", "rb")},
timeout=30,
)
print(response.json())Modeldetails
reComputer R Series (CM5 + Hailo-10H)NanoDet-RepVGG-a12 op reComputer CM5 + Hailo-10H
NanoDet-RepVGG-a12 voert objectdetectie van 80 COCO-klassen uit op de Hailo-10H
met on-chip-NMS (Hailo HPP). Ondanks de naam 'nanodet' is deze variant
gebaseerd op de YOLOX-architectuur (base/yolox.yaml), invoer 640x640. Het HEF
levert al gedecodeerde detecties en de app analyseert alleen de
post-NMS-tensor. Geporteerd uit het gevalideerde Hailo-8-module
rpi5_hailo8_nanodet_repvgg_a12; de executor gebruikt de multi-uitvoer-
create_infer_model-wrapper van HailoRT 5.1.1 met FLOAT32-uitvoer.
Modelinformatie
| Eigenschap | Waarde |
|---|---|
| Architectuur | YOLOX-gebaseerd (base/yolox.yaml) + RepVGG-A12-backbone |
| Taak | Objectdetectie |
| Invoer | 640x640x3 (grootte bij start uit het HEF gelezen) |
| Uitvoer | On-chip-NMS-tensor, post-NMS-vorm 80x5x100 |
| Klassen | 80 (COCO, geïndexeerd vanaf 0; labels_offset=1 alleen evaluatie) |
| HEF | Hailo Model Zoo v5.4.0, Hailo-10H (4.6 MB) |
Hardware- en hostconfiguratie
| Onderdeel | Waarde |
|---|---|
| Board | reComputer R Series met Raspberry Pi CM5 |
| Accelerator | Hailo-10H via PCIe, beschikbaar als /dev/hailo0 |
| Hostdriver | apt-pakket hailo-h10-all |
| Runtime | HailoRT 5.1.1 |
| Python in container | 3.13, aarch64 |
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot
# After reboot
hailortcli fw-control identify
ls /dev/hailo0Uitvoeren met demovideo
sudo docker run --rm \
--name cm5-hailo10h-nanodet-repvgg-a12 \
--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_a12:latest \
python web_detection.py --model_path model/nanodet_repvgg_a12.hef --video_path video/test.mp4Open http://<Board_IP>:8000 voor de webvoorbeeld. Voor een USB-camera /dev/video0 mounten en --video_path video/test.mp4 vervangen door --camera_id 0.
REST API
curl -X POST "http://<Board_IP>:8000/api/models/nanodet_repvgg_a12/predict" \
-F "file=@test.jpg"| Endpoint | Methode | Beschrijving |
|---|---|---|
/health | GET | Healthcheck |
/api/models/nanodet_repvgg_a12/predict | POST | Detecties (JSON) |
/api/video_feed | GET | MJPEG-voorbeeldstream |
Implementatieopmerkingen
- Het HEF voert NMS on-chip uit; de app analyseert alleen de post-NMS-tensor,
dus
nms_threshwordt genegeerd (alleen API-pariteit). - Post-NMS-rijen zijn
[ymin, xmin, ymax, xmax, score], genormaliseerd naar [0,1] van de letterbox-invoer; de app schaalt naar pixels en heft het letterbox op. - Normalisatie/kleurconversie is in het HEF gecompileerd; de app doet het letterbox en levert ruwe uint8-pixels.
- HailoRT kan de NMS-vstream als ragged-lijst per klasse (NMS-by-score) teruggeven; de parser ondersteunt ook object/dense-layouts. De eerste inferentie logt het ruwe type/vorm voor verificatie.
- Uitvoer wordt aangevraagd als
FormatType.FLOAT32(gedequantiseerd door de SDK); het lezen van ruwe gekwantiseerde buffers levert waarden in de tienduizenden en nul geldige detecties. - Klassenmapping:
cls_id(0..79) → standaard COCO-80-klassenlijst direct (labels_offset=1 alleen evaluatie; als labels verschoven lijken, leid ze opnieuw af uit het log van de eerste inferentie).
Modelbron
nanodet_repvgg_a12.hef is de Hailo-10H-build van Hailo Model Zoo v5.4.0 —
URL, SHA256 en grootte staan in de repository
(src/hailo10h_nanodet_repvgg_a12/model/README.md).
Invoer en uitvoer
Input: image, video, or USB camera frame. Output: COCO 80-class detection boxes with confidences, plus an annotated MJPEG preview.