CV / CenterNet
CenterNet (resnet_v1_18)
COCO 80-class object detection with CenterNet (ResNet-18) on reComputer R Series with Hailo-8.
Kies het apparaat dat je gebruikt. De installatiehandleiding en documentatie worden dienovereenkomstig bijgewerkt.
Aan de slag
sudo docker run --rm \
--name cm5-hailo8-centernet \
--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/centernet_resnet_v1_18_postprocess:latest \
python web_detection.py --model_path model/centernet_resnet_v1_18_postprocess.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/centernet_resnet_v1_18_postprocess/predict" \
-F "file=@test.jpg"import requests
response = requests.post(
"http://<Board_IP>:8000/api/models/centernet_resnet_v1_18_postprocess/predict",
files={"file": open("test.jpg", "rb")},
timeout=30,
)
print(response.json())Modeldetails
reComputer R SeriesCenterNet (resnet_v1_18) op reComputer R Series (CM5 + Hailo-8)
CenterNet met een ResNet-18-backbone voert COCO-objectdetectie over 80 klassen uit op Hailo-8 via HailoRT, met de on-chip max_finder-nabewerkingsvariant.
Deze pagina is gericht op de reComputer R Series (CM5 + Hailo-8) met een PCIe-Hailo-8-versneller.
Modelinformatie
| Eigenschap | Waarde |
|---|---|
| Architectuur | CenterNet (ResNet-18-backbone) |
| Taak | Objectdetectie |
| Invoer | 512x512x3 RGB (normalisatie in de HEF gecompileerd) |
| Uitvoer | 3 koppen: wh (128x128x2), reg (128x128x2), sparse heatmap (128x128x80) |
| Klassen | 80 (COCO) |
| Parameters | 14.22M |
| Bewerkingen | 31.21G |
| Hardware-mAP | 25.0 (COCO, Hailo Model Zoo-referentie) |
| HEF | Hailo Model Zoo v2.19.0, Hailo-8 |
De nauwkeurigheidswaarde komt uit de Hailo Model Zoo objectdetectietabel voor Hailo-8. Het is geen op CM5 gemeten benchmark.
Hardware- en hostconfiguratie
| Item | Waarde |
|---|---|
| Board | reComputer R Series met Raspberry Pi CM5 |
| Versneller | Hailo-8 via PCIe, beschikbaar als /dev/hailo0 |
| Runtime | HailoRT 4.23.x |
| Python in container | 3.11, aarch64 |
Installeer de betreffende pakketten op de host en controleer of de driver en het apparaat klaar zijn voordat u de container start:
sudo apt update
# Beide kandidaten moeten 4.23.x zijn vóór installatie.
apt-cache policy hailort hailort-pcie-driver
sudo apt install hailort=4.23.0 hailort-pcie-driver=4.23.0
sudo reboot
# Na herstart
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0De verwachte HailoRT-versie voor deze image is 4.23.x. Ga niet verder als apt-cache policy HailoRT 5.x selecteert; die runtime is voor Hailo-10H en past niet bij deze Hailo-8-container.
Uitvoeren met demovideo
sudo docker run --rm \
--name cm5-hailo8-centernet \
--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/centernet_resnet_v1_18_postprocess:latest \
python web_detection.py --model_path model/centernet_resnet_v1_18_postprocess.hef --video_path video/test.mp4Open http://<Board_IP>:8000 voor de webpreview.
USB-cameramodus
sudo docker run --rm \
--name cm5-hailo8-centernet \
--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/centernet_resnet_v1_18_postprocess:latest \
python web_detection.py --model_path model/centernet_resnet_v1_18_postprocess.hef --camera_id 0REST-API
Voorspellings-eindpunt:
POST http://<Board_IP>:8000/api/models/centernet_resnet_v1_18_postprocess/predictVoorbeeldafbeeldingsverzoek:
curl -X POST "http://<Board_IP>:8000/api/models/centernet_resnet_v1_18_postprocess/predict" \
-F "file=@test.jpg"| Eindpunt | Methode | Doel |
|---|---|
| / | GET | Webpreview-interface |
| /api/models/centernet_resnet_v1_18_postprocess/predict | POST | Detecties (JSON) |
| /api/video_feed | GET | MJPEG-previewstream |
Implementatienotities
- De HEF is gecompileerd met
normalize_in_net=true(ImageNet-gemiddelde/-standaarddeviatie, RGB); de app letterboxt daarom naar 512x512, converteert BGR naar RGB en voert ruwe uint8-pixels in — geen handmatige normalisatie. - De heatmap-kop is al sparse: de on-chip
max_finderplus scoredrempel (0.2) behouden alleen lokale maxima boven de drempel. De decoder neemt die pieken, leestwh/regbij elke piek en reconstrueert boxen met de officiële Hailo Model Zoo-formule (stride 4, 128x128-featuremap → 512x512-invoer), en draait de letterbox terug naar het originele frame. - De twee 2-kanaalskoppen (wh, reg) worden op vstream-naam toegewezen wanneer het conv-nummer beschikbaar is (conv3 → wh, conv5 → reg), anders op netwerkuitvoervolgorde. De eerste inferentie print naam en vorm van elke vstream en de opgeloste toewijzing, zodat deze op de hardware kan worden geverifieerd.
Ontwikkelingsnotities
- Bronmodule:
src/rpi5_hailo8_centernet_resnet_v1_18_postprocess/ - Dockerfile:
docker/hailo8/centernet_resnet_v1_18_postprocess.dockerfile - Container:
ghcr.io/seeed-projects/recomputer-hailo8-cv/centernet_resnet_v1_18_postprocess:latest - De module gebruikt de VStreams-API van HailoRT 4.23 en een Hailo-8-specifieke HEF.
Invoer en uitvoer
Invoer: afbeelding, video of frame van een USB-camera. Uitvoer: detectiekaders voor 80 COCO-klassen met betrouwbaarheidsscores, plus een geannoteerd MJPEG-voorbeeld.