CV / EfficientDet
EfficientDet-Lite1
reComputer R Series (CM5 + Hailo-10H)
COCO-objectdetectie met 80 klassen via EfficientDet-Lite1 (NMS op de chip) op de 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-efficientdet-lite1 \
--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/efficientdet_lite1:latest \
python web_detection.py --model_path model/efficientdet_lite1.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/efficientdet_lite1/predict" \
-F "file=@test.jpg"import requests
response = requests.post(
"http://<Board_IP>:8000/api/models/efficientdet_lite1/predict",
files={"file": open("test.jpg", "rb")},
timeout=30,
)
print(response.json())Modeldetails
reComputer R Series (CM5 + Hailo-10H)EfficientDet-Lite1 op reComputer R Series (CM5 + Hailo-10H)
EfficientDet-Lite1 voert COCO-objectdetectie (80 klassen) uit op Hailo-10H via HailoRT. NMS en sigmoid draaien on-chip (Hailo HPP), de host parseert alleen de post-NMS-tensor. Dit is de lite1-variant van de efficientdet-familie.
Deze pagina is gericht op reComputer R Series (CM5 + Hailo-10H) met een PCIe Hailo-10H-versneller.
Modelinformatie
| Eigenschap | Waarde |
|---|---|
| Architectuur | EfficientDet-Lite1 (BiFPN) |
| Taak | Objectdetectie |
| Invoer | 384x384x3 RGB (normalisatie in de HEF gecompileerd: mean=127, std=128) |
| Uitvoer | on-chip NMS-tensor, post-NMS vorm 89x5x100 |
| Klassen | 89 slots (COCO-klasse-ID's 1..89 via labels_offset=1; 10 ongebruikt) |
| Parameters | 4.73M |
| Bewerkingen | 4G |
| Naverwerking | on-chip NMS (HPP) + sigmoid; de host parseert de post-NMS-tensor |
| HEF | Hailo Model Zoo v5.4.0, Hailo-10H (7,614,464 bytes) |
De nauwkeurigheid is de Hailo Model Zoo-referentie; het is geen op de CM5 gemeten benchmark.
Hardware en hostinstellingen
| Onderdeel | Waarde |
|---|---|
| Board | reComputer R Series met Raspberry Pi CM5 |
| Versneller | Hailo-10H via PCIe, beschikbaar als /dev/hailo0 |
| Runtime | HailoRT 5.1.1 |
| Python in de container | 3.13, aarch64 |
Installeer de Hailo-10H-pakketten op de host en controleer of stuurprogramma en apparaat gereed zijn voordat u de container start:
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot
# After reboot
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0De verwachte HailoRT-versie voor deze image is 5.1.1.
Uitvoeren met de demo-video
sudo docker run --rm \
--name cm5-hailo10h-efficientdet-lite1 \
--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/efficientdet_lite1:latest \
python web_detection.py --model_path model/efficientdet_lite1.hef --video_path video/test.mp4Open http://<Board_IP>:8000 voor de webpreview.
USB-cameramodus
sudo docker run --rm \
--name cm5-hailo10h-efficientdet-lite1 \
--privileged \
--net=host \
-e PYTHONUNBUFFERED=1 \
--device /dev/hailo0:/dev/hailo0 \
--device /dev/video0:/dev/video0 \
-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/efficientdet_lite1:latest \
python web_detection.py --model_path model/efficientdet_lite1.hef --camera_id 0REST API
POST http://<Board_IP>:8000/api/models/efficientdet_lite1/predictcurl -X POST "http://<Board_IP>:8000/api/models/efficientdet_lite1/predict" \
-F "file=@test.jpg"| Endpoint | Methode | Doel |
|---|---|---|
/ | GET | Webvoorbeeld-interface |
/api/models/efficientdet_lite1/predict | POST | Detecties (JSON) |
/api/video_feed | GET | MJPEG-previewstream |
Implementatienotities
- De HEF voert NMS en sigmoid on-chip uit (
device_pre_post_layers: nms=true, sigmoid=true,hpp=true); de applicatie parseert alleen de post-NMS-tensor, dusnms_threshwordt genegeerd (alleen API-compatibiliteit). - Post-NMS-regels zijn
[ymin, xmin, ymax, xmax, score], genormaliseerd naar [0,1] van de 384x384-letterboxinvoer; de applicatie schaalt naar pixels en draait de letterbox terug. normalize_in_netmet mean=127/std=128 enpadding_color=127: de applicatie letterboxt met grijs (127) en stuurt ruwe uint8 RGB-pixels.- De parser ondersteunt de HailoRT NMS-indelingen: de compacte buffer per klasse, de dichte vormen
89x5x100/89x100x5en de ragged-lijst (NMS-by-score). De eerste inferentie logt eenmalig het type en de vorm. - Klassemapping:
cls_id(0..88) komt overeen met COCO-klasse-IDcls_id+1(labels_offset=1); de 10 ongebruikte ID's zijn "N/A" en worden niet getekend. - Standaardwaarden: confidence 0.25, IOU 0.45 (IOU heeft geen effect — NMS on-chip). Verlaag de confidence voor meer detecties.
Ontwikkelnotities
- Bronmodule:
src/hailo10h_efficientdet_lite1/ - Dockerfile:
docker/hailo10h/efficientdet_lite1.dockerfile - Container:
ghcr.io/seeed-projects/recomputer-hailo10h-cv/efficientdet_lite1:latest - De module gebruikt de HailoRT 5.1.1 InferModel-API en een Hailo-10H-specifieke HEF.
- Unit-tests draaien zonder apparaat:
python -m unittest discover -s tests -v.
Invoer en uitvoer
Invoer: afbeelding, video of frame van een USB-camera. Uitvoer: detectiekaders met betrouwbaarheidsscores voor 80 COCO-klassen, plus een geannoteerd MJPEG-voorbeeld.