CV / EfficientDet
EfficientDet-Lite2
EfficientDet-Lite2 met een BiFPN-head detecteert 80 COCO-objectklassen op Hailo-8. NMS en sigmoid worden on-chip uitgevoerd (Hailo HPP), zodat de toepassing alleen de tensor na NMS hoeft te verwerken. Lite2-variant van de EfficientDet-familie — de grootste backbone en een invoerresolutie van 448x448 voor de hoogste nauwkeurigheid van de drie.
Kies het apparaat dat je gebruikt. De installatiehandleiding en documentatie worden dienovereenkomstig bijgewerkt.
Aan de slag
sudo docker run --rm \
--name cm5-hailo8-efficientdet-lite2 \
--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_lite2:latest \
python web_detection.py --model_path model/efficientdet_lite2.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_lite2/predict" \
-F "file=@test.jpg"import requests
response = requests.post(
"http://<Board_IP>:8000/api/models/efficientdet_lite2/predict",
files={"file": open("test.jpg", "rb")},
timeout=30,
)
print(response.json())Modeldetails
EfficientDet-Lite2 op reComputer R Series (CM5 + Hailo-8)
EfficientDet-Lite2 voert objectdetectie met 80 COCO-klassen uit op Hailo-8 via HailoRT. NMS en sigmoid worden op de chip uitgevoerd (Hailo HPP), zodat de host alleen de post-NMS-tensor verwerkt. Dit is de Lite2-variant van de efficientdet-familie — met de grootste backbone en een invoer van 448x448 voor de hoogste nauwkeurigheid van de drie (lite0/lite1/ lite2).
Deze pagina is bedoeld voor reComputer R Series (CM5 + Hailo-8) met een PCIe Hailo-8- accelerator.
Modelinformatie
| Eigenschap | Waarde |
|---|---|
| Architectuur | EfficientDet-Lite2 (BiFPN) |
| Taak | Objectdetectie |
| Invoer | 448x448x3 RGB (normalisatie gecompileerd in de HEF: mean=127, std=128) |
| Uitvoer | NMS-tensor op de chip, post-NMS-vorm 89x5x100 |
| Klassen | 89 posities (COCO-categorie-ID's 1..89 via labels_offset=1; 10 ongebruikt) |
| Parameters | 5.93M |
| Bewerkingen | 6.84G |
| Nabewerking | NMS op de chip (HPP) + sigmoid; host verwerkt de post-NMS-tensor |
| HEF | Hailo Model Zoo v2.19.0, Hailo-8 |
De nauwkeurigheidswaarde is de referentiewaarde uit Hailo's Model Zoo. Dit is geen benchmark die op CM5 is gemeten.
Hardware- en hostconfiguratie
| Onderdeel | 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 het stuurprogramma en apparaat gereed zijn voordat u 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-lite2 \
--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_lite2:latest \
python web_detection.py --model_path model/efficientdet_lite2.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-lite2 \
--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_lite2:latest \
python web_detection.py --model_path model/efficientdet_lite2.hef --camera_id 0REST API
Voorspellingsendpoint:
POST http://<Board_IP>:8000/api/models/efficientdet_lite2/predictVoorbeeld van een afbeeldingsverzoek:
curl -X POST "http://<Board_IP>:8000/api/models/efficientdet_lite2/predict" \
-F "file=@test.jpg"| Endpoint | Methode | Doel |
|---|---|---|
/ | GET | UI voor webpreview |
/api/models/efficientdet_lite2/predict | POST | Detecties (JSON) |
/api/video_feed | GET | MJPEG-previewstream |
Implementatieopmerkingen
- Identiek invoer-/uitvoercontract en dezelfde nabewerking als de Lite0/Lite1- builds; alleen de backbone en invoergrootte verschillen (448x448, 5.93M parameters → de hoogste nauwkeurigheid van de drie).
- De HEF voert NMS op de chip uit (
device_pre_post_layers: nms=true, sigmoid=true, hpp=true); de app verwerkt alleen de post-NMS-tensor (volgens de officiëletf_postproc_nms), waardoornms_threshwordt genegeerd (alleen voor API-pariteit). - Post-NMS-rijen zijn
[ymin, xmin, ymax, xmax, score], genormaliseerd naar [0,1] van de 448x448-invoer met letterboxing; de app schaalt naar pixels en maakt de letterboxing ongedaan. normalize_in_netmet mean=127/std=128 +padding_color=127: de app past letterboxing toe met grijze opvulling (127) en voert onbewerkte uint8 RGB-pixels in — zonder handmatige normalisatie.- HailoRT retourneert de NMS-vstream als een onregelmatige lijst per klasse (NMS-by-score); de parser verwerkt zowel deze indeling als object-/dense-indelingen. De eerste inferentie logt het onbewerkte type en de vorm, zodat deze op de hardware kunnen worden geverifieerd.
- Klassetoewijzing:
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, leidt u de toewijzing opnieuw af uit het logboek van de eerste inferentie. - Standaardwaarden: betrouwbaarheid 0.25, IOU 0.45 (IOU heeft geen effect — NMS wordt op de chip uitgevoerd). Model Zoo-evaluatie gebruikt 0.001 / 0.5 — verlaag de betrouwbaarheidsschuifregelaar om meer te bekijken.
Ontwikkelopmerkingen
- Bronmodule:
src/rpi5_hailo8_efficientdet_lite2/ - Dockerfile:
docker/hailo8/efficientdet_lite2.dockerfile - Container:
ghcr.io/seeed-projects/recomputer-hailo8-cv/efficientdet_lite2: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 lite2- build.
Invoer en uitvoer
Invoer: afbeelding, video of frame van een USB-camera. Uitvoer: detectiekaders voor 80 COCO-klassen met betrouwbaarheidsscores, plus een geannoteerde MJPEG-voorvertoning.