CV / DAMO-YOLO

DAMO-YOLO

COCO-objectdetectie met 80 klassen door DAMO-YOLO (T/S/M-varianten) op reComputer R Series met Hailo-8 of Hailo-10H.

161 downloads
Grootte
8.8 MB
Geheugen
4GB+
Precisie
Hailo HEF / HailoRT 4.23.x (Hailo-8) / 5.1.1 (Hailo-10H)

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

Aan de slag

Implementeren
sudo docker run --rm \
  --name cm5-hailo8-damoyolo-l20t \
  --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/damoyolo_tinynas_l20_t:latest \
  python web_detection.py --model_path model/damoyolo_tinynas_l20_t.hef --video_path video/test.mp4

Modeldetails

reComputer R Series (CM5 + Hailo-8)

DAMO-YOLO op reComputer R Series (CM5 + Hailo-8)

DAMO-YOLO gebruikt TinyNAS-backbones en de nanodet_split-kop met DFL-boxregressie om via HailoRT 80 COCO-klassen op Hailo-8 te detecteren. Eén modelkaart biedt drie varianten via het groottemenu.

Deze pagina is bedoeld voor reComputer R Series (CM5 + Hailo-8) met een PCIe Hailo-8-accelerator.

Modelinformatie

VariantParametersBewerkingenmAP (COCO)Meegeleverde HEF
T (tinynasL20)11.35M18.0G42.88.8 MB
S (tinynasL25)16.25M37.6G46.514 MB
M (tinynasL35)33.98M61.6G49.727 MB
EigenschapWaarde
TaakObjectdetectie
Invoer640x640x3 RGB (normalisatie is een no-op; ruwe uint8)
Uitvoer6 heads: box (80x80x68, 40x40x68, 20x20x68) + cls (80x80x81, 40x40x81, 20x20x81)
Klassen80 (COCO)
Nabewerkingnanodet_split (DFL, regression_length=16), alleen on-chip sigmoid
HEFHailo Model Zoo v2.19.0, Hailo-8

De nauwkeurigheidswaarden zijn referenties uit Hailo Model Zoo en geen benchmarks die op CM5 zijn 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
bash
sudo apt update
sudo apt install hailo-all
sudo reboot

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

# Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
sudo systemctl enable docker
sudo systemctl start docker

Uitvoeren met de demovideo

Selecteer de opdracht die bij de variant hoort.

DAMO-YOLO T (tinynasL20)

bash
sudo docker run --rm \
  --name cm5-hailo8-damoyolo-l20t \
  --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/damoyolo_tinynas_l20_t:latest \
  python web_detection.py --model_path model/damoyolo_tinynas_l20_t.hef --video_path video/test.mp4

DAMO-YOLO S (tinynasL25)

bash
sudo docker run --rm \
  --name cm5-hailo8-damoyolo-l25s \
  --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/damoyolo_tinynas_l25_s:latest \
  python web_detection.py --model_path model/damoyolo_tinynas_l25_s.hef --video_path video/test.mp4

DAMO-YOLO M (tinynasL35)

bash
sudo docker run --rm \
  --name cm5-hailo8-damoyolo-l35m \
  --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/damoyolo_tinynas_l35_m:latest \
  python web_detection.py --model_path model/damoyolo_tinynas_l35_m.hef --video_path video/test.mp4

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

USB-cameramodus (voorbeeld: S-variant)

bash
sudo docker run --rm \
  --name cm5-hailo8-damoyolo-l25s \
  --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/damoyolo_tinynas_l25_s:latest \
  python web_detection.py --model_path model/damoyolo_tinynas_l25_s.hef --camera_id 0

REST API

bash
curl -X POST "http://<Board_IP>:8000/api/models/damoyolo_tinynas_l25_s/predict" \
  -F "file=@test.jpg"
EndpointMethodeDoel
/api/models/damoyolo_tinynas_<variant>/predictPOSTDetecties (JSON)
/api/video_feedGETMJPEG-voorbeeld
/api/configGET / POSTBetrouwbaarheidsdrempel

Ontwikkelingsnotities

  • Bronmodules: src/rpi5_hailo8_damoyolo_tinynas_l20_t/, ..._l25_s/, ..._l35_m/
  • Dockerfiles: docker/hailo8/damoyolo_tinynas_l*.dockerfile
  • Containers: ghcr.io/seeed-projects/recomputer-hailo8-cv/damoyolo_tinynas_l{20_t,25_s,35_m}:latest
  • Alle drie de varianten gebruiken dezelfde nanodet_split-CPU-decodering — alleen de backbone (TinyNAS-L20/L25/L35) verschilt.
  • HEF's: hailo8-builds van Hailo Model Zoo v2.19.0.

Invoer en uitvoer

Invoer: afbeelding, video of USB-camerabeeld. Uitvoer: COCO-detectievakken voor 80 klassen met betrouwbaarheidsscores en een geannoteerde MJPEG-preview.