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.

71 downloads
Grootte
16 MB
Geheugen
4GB+
Precisie
Hailo HEF / HailoRT

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

Aan de slag

Implementeren
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.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_lite1/predict" \
  -F "file=@test.jpg"
Python
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

EigenschapWaarde
ArchitectuurEfficientDet-Lite1 (BiFPN)
TaakObjectdetectie
Invoer384x384x3 RGB (normalisatie in de HEF gecompileerd: mean=127, std=128)
Uitvoeron-chip NMS-tensor, post-NMS vorm 89x5x100
Klassen89 slots (COCO-klasse-ID's 1..89 via labels_offset=1; 10 ongebruikt)
Parameters4.73M
Bewerkingen4G
Naverwerkingon-chip NMS (HPP) + sigmoid; de host parseert de post-NMS-tensor
HEFHailo 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

OnderdeelWaarde
BoardreComputer R Series met Raspberry Pi CM5
VersnellerHailo-10H via PCIe, beschikbaar als /dev/hailo0
RuntimeHailoRT 5.1.1
Python in de container3.13, aarch64

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

bash
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot

# After reboot
hailortcli --version
hailortcli fw-control identify
ls -l /dev/hailo0

De verwachte HailoRT-versie voor deze image is 5.1.1.

Uitvoeren met de demo-video

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

Open http://<Board_IP>:8000 voor de webpreview.

USB-cameramodus

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

REST API

text
POST http://<Board_IP>:8000/api/models/efficientdet_lite1/predict
bash
curl -X POST "http://<Board_IP>:8000/api/models/efficientdet_lite1/predict" \
  -F "file=@test.jpg"
EndpointMethodeDoel
/GETWebvoorbeeld-interface
/api/models/efficientdet_lite1/predictPOSTDetecties (JSON)
/api/video_feedGETMJPEG-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, dus nms_thresh wordt 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_net met mean=127/std=128 en padding_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 / 89x100x5 en 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-ID cls_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.