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.

2 downloads
Grootte
14 MB
Geheugen
4GB+
Precisie
Hailo HEF / HailoRT 4.23.x

Kies het apparaat dat je gebruikt. De installatiehandleiding en documentatie worden dienovereenkomstig bijgewerkt.

Aan de slag

Implementeren
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.mp4

REST API

Gebruik de REST API om inferentie uit te voeren. Kopieer de onderstaande commando's.

Curl
curl -X POST "http://<Board_IP>:8000/api/models/efficientdet_lite2/predict" \
  -F "file=@test.jpg"
Python
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

EigenschapWaarde
ArchitectuurEfficientDet-Lite2 (BiFPN)
TaakObjectdetectie
Invoer448x448x3 RGB (normalisatie gecompileerd in de HEF: mean=127, std=128)
UitvoerNMS-tensor op de chip, post-NMS-vorm 89x5x100
Klassen89 posities (COCO-categorie-ID's 1..89 via labels_offset=1; 10 ongebruikt)
Parameters5.93M
Bewerkingen6.84G
NabewerkingNMS op de chip (HPP) + sigmoid; host verwerkt de post-NMS-tensor
HEFHailo 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

OnderdeelWaarde
BoardreComputer R Series met Raspberry Pi CM5
AcceleratorHailo-8 via PCIe, beschikbaar als /dev/hailo0
RuntimeHailoRT 4.23.x
Python in container3.11, aarch64

Installeer de Hailo-8-pakketten op de host en controleer of het stuurprogramma en apparaat gereed zijn voordat u de container start:

bash
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/hailo0

De verwachte HailoRT-versie voor deze image is 4.23.x.

Uitvoeren met demovideo

bash
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.mp4

Open http://<Board_IP>:8000 om de webpreview te bekijken.

USB-cameramodus

bash
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 0

REST API

Voorspellingsendpoint:

text
POST http://<Board_IP>:8000/api/models/efficientdet_lite2/predict

Voorbeeld van een afbeeldingsverzoek:

bash
curl -X POST "http://<Board_IP>:8000/api/models/efficientdet_lite2/predict" \
  -F "file=@test.jpg"
EndpointMethodeDoel
/GETUI voor webpreview
/api/models/efficientdet_lite2/predictPOSTDetecties (JSON)
/api/video_feedGETMJPEG-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ële tf_postproc_nms), waardoor nms_thresh wordt 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_net met 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-ID cls_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.