CV / YOLACT
YOLACT-RegNetX-1.6GF
reComputer R Series (CM5 + Hailo-8)
Instanzsegmentierung in Echtzeit (80 COCO-Klassen, Masken und Begrenzungsrahmen) auf reComputer R Series mit Hailo-8 oder Hailo-10H.
Wähle das Gerät, das du verwendest. Die Einrichtungsanleitung und Dokumentation werden entsprechend aktualisiert.
Erste Schritte
sudo docker run --rm \
--name cm5-hailo8-yolact-1-6gf \
--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/yolact_regnetx_1_6gf:latest \
python web_detection.py --model_path model/yolact_regnetx_1_6gf.hef --video_path video/test.mp4REST API
Verwende die REST API für die Inferenz. Kopiere die folgenden Befehle.
curl -X POST "http://<Board_IP>:8000/api/models/yolact_regnetx_1_6gf/predict" \
-F "file=@test.jpg"import requests
response = requests.post(
"http://<Board_IP>:8000/api/models/yolact_regnetx_1_6gf/predict",
files={"file": open("test.jpg", "rb")},
timeout=30,
)
print(response.json())Modelldetails
reComputer R Series (CM5 + Hailo-8)YOLACT-RegNetX-1.6GF auf reComputer R Series (CM5 + Hailo-8)
YOLACT (UC Davis) führt über HailoRT auf Hailo-8 Instanzsegmentierung in Echtzeit aus: objektbezogene Masken auf Boxen der 80 COCO-Klassen. Das HEF stellt 16 rohe Ausgabeköpfe bereit; die gesamte Decodierung läuft auf der Host-CPU. Die 1.6GF-Variante ist das größere, genauere Mitglied der yolact-Familie.
Modellinformationen
| Eigenschaft | Wert |
|---|---|
| Architektur | YOLACT (You Only Look At CoefficienTs), RegNetX-1.6GF Backbone |
| Aufgabe | Instanzsegmentierung |
| Eingabe | 512x512x3 RGB (normalize_in_net ImageNet RGB mean/std) |
| Ausgabe | 16 Köpfe: proto (128x128x32) + 5 Skalen x {bbox, mask coeffs, conf} |
| Prior-Anchors | 49,104 Anchors (9/Zelle, Feature-Maps 64/32/16/8/4) |
| Klassen | 80 (COCO) |
| Parameter | 30.09M |
| Operationen | 125.34G |
| mAP (COCO, volle Präzision) | 27.6% Hardware-Referenz |
| HEF | Hailo Model Zoo v2.19.0, Hailo-8 |
Der obige Genauigkeitswert ist eine Referenz aus Hailo Model Zoo, kein auf CM5 gemessener Benchmark.
Mit Demovideo ausführen
sudo docker run --rm \
--name cm5-hailo8-yolact-1-6gf \
--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/yolact_regnetx_1_6gf:latest \
python web_detection.py --model_path model/yolact_regnetx_1_6gf.hef --video_path video/test.mp4Öffnen Sie http://<Board_IP>:8000 für die Webvorschau (farbige Instanzmasken über dem MJPEG-Stream).
REST-API
curl -X POST "http://<Board_IP>:8000/api/models/yolact_regnetx_1_6gf/predict" \
-F "file=@test.jpg"| Endpunkt | Methode | Zweck |
|---|---|---|
/ | GET | Webvorschau-Oberfläche |
/api/models/yolact_regnetx_1_6gf/predict | POST | Boxen, Konfidenzen, Maskenflächen (JSON) |
/api/video_feed | GET | MJPEG-Vorschaustream mit Masken |
/api/config | GET / POST | Konfidenz-/NMS-IOU-Schwellen |
Implementierungshinweise
- CPU-Nachverarbeitung (
meta_arch=yolact): kein NMS auf dem Chip. Die Detect-Pipeline (49,104 Anchors → SSD-Decodierung → Argmax je Instanz → Fast NMS, top-200/Klasse, höchstens 100 Erkennungen) ist eine numpy-Portierung voninstance_segmentation_postprocessing.pyaus Model Zoo. - Kandidatenmasken:
sigmoid(proto @ coeffs^T)wird auf jede Erkennungsbox zugeschnitten und mitmask_thresh=0.5(YAMLmask_threshold) visualisiert. normalize_in_netverwendet ImageNet RGB; die Anwendung liefert rohe uint8-RGB-Daten.- Vorverarbeitung: einfache bilineare Skalierung auf 512x512 (kein Letterboxing, keine Auffüllung).
Entwicklungshinweise
- Quellmodul:
src/rpi5_hailo8_yolact_regnetx_1_6gf/ - Dockerfile:
docker/hailo8/yolact_regnetx_1_6gf.dockerfile - Container:
ghcr.io/seeed-projects/recomputer-hailo8-cv/yolact_regnetx_1_6gf:latest - Familie: YOLACT (Varianten: regnetx_800mf / regnetx_1.6gf)
Eingaben und Ausgaben
Input: image, video, or USB camera frame. Output: COCO 80-class boxes with confidences, per-object mask pixel areas, and an MJPEG preview with colored instance masks.