CV / EfficientDet
EfficientDet-Lite2
Objectdetectie voor 80 COCO-klassen met EfficientDet-Lite2 (on-chip NMS) 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-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
reComputer R Series (CM5 + Hailo-8)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.