CV / Tiny Yolo

Tiny-YOLOv3

reComputer R Series (CM5 + Hailo-10H)

Détection d'objets COCO 80 classes avec Tiny-YOLOv3 (décodage YOLOv3 sur CPU) sur reComputer R Series avec Hailo-8 ou Hailo-10H.

43 téléchargements
Taille
8.4 MB
Mémoire
4GB+
Précision
Hailo HEF / HailoRT 4.23.x (Hailo-8) / 5.1.1 (Hailo-10H)

Choisissez l'appareil que vous utilisez. Le guide de configuration et la documentation seront mis à jour en conséquence.

Pour commencer

Déployer
sudo docker run --rm \
  --name cm5-hailo10h-tiny-yolov3 \
  --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/tiny_yolov3:latest \
  python web_detection.py --model_path model/tiny_yolov3.hef --video_path video/test.mp4

API REST

Utilisez l'API REST pour exécuter l'inférence. Copiez les commandes ci-dessous.

Curl
curl -X POST "http://<Board_IP>:8000/api/models/tiny_yolov3/predict" \
  -F "file=@test.jpg"
Python
import requests

response = requests.post(
    "http://<Board_IP>:8000/api/models/tiny_yolov3/predict",
    files={"file": open("test.jpg", "rb")},
    timeout=30,
)
print(response.json())

Détails du modèle

reComputer CM5 + Hailo-10H

Tiny-YOLOv3 sur reComputer CM5 + Hailo-10H

Tiny-YOLOv3 effectue la détection d'objets COCO 80 classes sur Hailo-10H via HailoRT 5.1.1. Le HEF expose 2 têtes YOLO brutes (13x13x255, 26x26x255) ; le décodage des ancres et le NMS s'exécutent sur le CPU de l'hôte.

Informations sur le modèle

PropriétéValeur
ArchitectureTiny-YOLOv3 (COCO-80)
TâcheDétection d'objets
Entrée416x416x3 BGR, redimensionnement avec conservation des proportions + remplissage par zéros (mobilenet_ssd_ar)
Sortie2 têtes : 13x13x255 (stride 32), 26x26x255 (stride 16)
Paramètres8.85M
Opérations5.58G
mAP (COCO, précision complète)14.59% (référence matérielle)
HEFHailo Model Zoo v5.4.0, Hailo-10H (7.1 MB)

Matériel et configuration de l'hôte

ÉlémentValeur
CartereComputer R Series avec Raspberry Pi CM5
AccélérateurHailo-10H via PCIe, exposé comme /dev/hailo0
Pilote hôtepaquet apt hailo-h10-all
RuntimeHailoRT 5.1.1
Python dans le conteneur3.13, aarch64
bash
sudo apt update
sudo apt install hailo-h10-all -y
sudo reboot

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

Exécuter avec la vidéo de démonstration

bash
sudo docker run --rm \
  --name cm5-hailo10h-tiny-yolov3 \
  --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/tiny_yolov3:latest \
  python web_detection.py --model_path model/tiny_yolov3.hef --video_path video/test.mp4

Ouvrez http://<Board_IP>:8000 pour voir l'aperçu web.

REST API

bash
curl -X POST "http://<Board_IP>:8000/api/models/tiny_yolov3/predict"   -F "file=@test.jpg"

Notes d'implémentation

  • Ancres/strides vérifiés par rapport au YAML 10H de Model Zoo v5.4.0 : stride 32 {[81,82],[135,169],[344,319]}, stride 16 {[23,27],[37,58],[81,82]}.
  • Prétraitement : redimensionnement avec conservation des proportions + remplissage par zéros, BGR brut (la configuration n'a pas de bgr_to_rgb et la normalisation est 0/255) — PAS le letterbox RGB gris 114.
  • L'exécuteur est le wrapper FLOAT32 multi-sorties de HailoRT 5.1.1 ; la première inférence imprime la plage de valeurs de chaque tête conformément à la liste de contrôle d'acceptation SOP.

Notes de développement

  • Module source : src/hailo10h_tiny_yolov3/
  • Dockerfile : docker/hailo10h/tiny_yolov3.dockerfile
  • Conteneur : ghcr.io/seeed-projects/recomputer-hailo10h-cv/tiny_yolov3:latest

Entrées et sorties

Input: image, video, or USB camera frame. Output: COCO 80-class detection boxes with confidences, plus an annotated MJPEG preview.