CV / EfficientDet
EfficientDet-Lite1
EfficientDet-Lite1 met een BiFPN-head detecteert 80 COCO-objectklassen op Hailo-8. NMS en sigmoid worden op de chip uitgevoerd (Hailo HPP), zodat de app alleen de tensor na NMS hoeft te verwerken. Lite1-variant van de efficientdet-familie, met een grotere backbone en een invoerresolutie van 384x384 voor een hogere nauwkeurigheid dan Lite0.
Kies het apparaat dat je gebruikt. De installatiehandleiding en documentatie worden dienovereenkomstig bijgewerkt.
Aan de slag
sudo docker run --rm \
--name cm5-hailo8-efficientdet-lite1 \
--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/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
EfficientDet-Lite1 op reComputer R Series (CM5 + Hailo-8)
EfficientDet-Lite1 voert objectdetectie met 80 COCO-klassen uit op Hailo-8 via HailoRT. NMS en sigmoid worden on-chip uitgevoerd (Hailo HPP), zodat de host alleen de post-NMS-tensor hoeft te parseren. Dit is de Lite1-variant van de efficientdet-familie — een grotere backbone en een invoer van 384x384 voor hogere nauwkeurigheid dan Lite0.
Deze pagina is bedoeld voor reComputer R Series (CM5 + Hailo-8) met een PCIe Hailo-8 accelerator.
Modelinformatie
| Eigenschap | Waarde |
|---|---|
| Architectuur | EfficientDet-Lite1 (BiFPN) |
| Taak | Objectdetectie |
| Invoer | 384x384x3 RGB (normalisatie gecompileerd in de HEF: mean=127, std=128) |
| Uitvoer | on-chip NMS-tensor, post-NMS-vorm 89x5x100 |
| Klassen | 89 slots (COCO-categorie-ID's 1..89 via labels_offset=1; 10 ongebruikte) |
| Parameters | 4.73M |
| Bewerkingen | 4G |
| Postprocessing | on-chip NMS (HPP) + sigmoid; de host parseert de post-NMS-tensor |
| HEF | Hailo Model Zoo v2.19.0, Hailo-8 |
De nauwkeurigheidswaarde is de referentiewaarde uit Hailo's Model Zoo. Deze is niet gemeten in een benchmark op CM5.
Hardware- en hostconfiguratie
| Item | Waarde |
|---|---|
| Board | reComputer R Series met Raspberry Pi CM5 |
| Accelerator | Hailo-8 via PCIe, beschikbaar als /dev/hailo0 |
| Runtime | HailoRT 4.23.x |
| Python in container | 3.11, aarch64 |
Installeer de Hailo-8-pakketten op de host en controleer of de driver en het apparaat gereed zijn voordat je de container start:
sudo apt update
sudo apt install hailort hailort-pcie-driver python3-hailort
sudo reboot
# After reboot
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0De verwachte HailoRT-versie voor deze image is 4.23.x.
Uitvoeren met demovideo
sudo docker run --rm \
--name cm5-hailo8-efficientdet-lite1 \
--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/efficientdet_lite1:latest \
python web_detection.py --model_path model/efficientdet_lite1.hef --video_path video/test.mp4Open http://<Board_IP>:8000 om de webpreview te bekijken.
USB-cameramodus
sudo docker run --rm \
--name cm5-hailo8-efficientdet-lite1 \
--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/efficientdet_lite1:latest \
python web_detection.py --model_path model/efficientdet_lite1.hef --camera_id 0REST API
Voorspellingsendpoint:
POST http://<Board_IP>:8000/api/models/efficientdet_lite1/predictVoorbeeld van een afbeeldingsverzoek:
curl -X POST "http://<Board_IP>:8000/api/models/efficientdet_lite1/predict" \
-F "file=@test.jpg"| Endpoint | Methode | Doel |
|---|---|---|
/ | GET | Webpreview-UI |
/api/models/efficientdet_lite1/predict | POST | Detecties (JSON) |
/api/video_feed | GET | MJPEG-previewstream |
Implementatienotities
- Het invoer-/uitvoercontract en de postprocessing zijn identiek aan die van de Lite0-build; alleen de backbone en invoergrootte verschillen (384x384, 4.73M parameters → hogere nauwkeurigheid).
- De HEF voert NMS on-chip uit (
device_pre_post_layers: nms=true, sigmoid=true, hpp=true); de app parseert alleen de post-NMS-tensor (volgens de officiëletf_postproc_nms), waardoornms_threshwordt genegeerd (alleen API-pariteit). - Post-NMS-rijen hebben de vorm
[ymin, xmin, ymax, xmax, score]en zijn genormaliseerd naar [0,1] van de letterboxed invoer van 384x384; de app schaalt naar pixels en verwijdert de letterboxing. normalize_in_netmet mean=127/std=128 +padding_color=127: de app voegt grijze padding (127) toe met letterboxing en voert onbewerkte uint8 RGB-pixels aan — handmatige normalisatie is niet nodig.- HailoRT retourneert de NMS-vstream als een ragged lijst per klasse (NMS-by-score); de parser verwerkt dit, evenals object-/dense-indelingen. De eerste inferentie logt het onbewerkte type/de vorm, zodat dit op de hardware kan worden gecontroleerd.
- Klassekoppeling:
cls_id(0..88) → COCO-categorie-IDcls_id+1(labels_offset=1); de 10 ongebruikte COCO-ID's zijn "N/A" en worden niet getekend. Als labels verschoven lijken, leid de koppeling dan opnieuw af uit het logboek van de eerste inferentie. - Standaardwaarden: confidence 0.25, IOU 0.45 (IOU heeft geen effect — NMS is on-chip). Model Zoo-evaluatie gebruikt 0.001 / 0.5 — verlaag de confidence-schuifregelaar om meer te inspecteren.
Ontwikkelingsnotities
- Bronmodule:
src/rpi5_hailo8_efficientdet_lite1/ - Dockerfile:
docker/hailo8/efficientdet_lite1.dockerfile - Container:
ghcr.io/seeed-projects/recomputer-hailo8-cv/efficientdet_lite1:latest - De module gebruikt de HailoRT 4.23 VStreams API en een Hailo-8-specifieke HEF.
- Familie: efficientdet (varianten lite0 / lite1 / lite2); dit is de lite1 build.
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.