CV / YOLOv6

YOLOv6

Détection d'objets COCO YOLOv6 sur reComputer RK3576/RK3588 (RKNN) et reComputer R Series avec Hailo-8 ou Hailo-10H.

11 téléchargements
Précision
RKNN / Hailo HEF

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 --privileged --net=host --device /dev/dri/renderD128:/dev/dri/renderD128 \
  -v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
  ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolov6:latest \
  python3 web_detection.py --platform rk3576 --model_path model/yolov6n.rknn --video_path video/test.mp4

API REST

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

Curl
curl http://localhost:8080/v1/chat/completions -d '{
  "model": "yolov6",
  "messages": [{"role": "user", "content": "Hello"}]
}'
Python
import requests

resp = requests.post(
    "http://localhost:8080/v1/chat/completions",
    json={"model": "yolov6", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())

Détails du modèle

reComputer R Series (CM5 + Hailo-8)

YOLOv6n on reComputer R Series (CM5 + Hailo-8)

YOLOv6n effectue la détection d'objets COCO (80 classes) sur Hailo-8 via HailoRT. Le HEF compilé renvoie soit le résultat NMS embarqué (HPP), soit les neuf têtes fractionnées brutes ; l'application gère les deux et journalise celle que le HEF a produite.

Cette page cible reComputer R Series (CM5 + Hailo-8) avec un accélérateur PCIe Hailo-8.

Matériel et configuration de l'hôte

ÉlémentValeur
CartereComputer R Series avec Raspberry Pi CM5
AccélérateurHailo-8 via PCIe, exposé comme /dev/hailo0
RuntimeHailoRT 4.23.x
Python dans le conteneur3.11, aarch64

Installez les paquets Hailo-8 sur l'hôte et vérifiez que le pilote et le périphérique sont prêts avant de démarrer le conteneur :

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

La version HailoRT attendue pour cette image est 4.23.x.

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

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

Ouvrez http://<BOARD_IP>:8000 pour afficher l'aperçu web.

Mode caméra USB

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

Fichier HEF

HEFTailleRemarques
yolov6n.hef5,774,047 (5.5 MB)Le HEF provient du build v2.19.0 du Hailo Model Zoo pour Hailo-8 ; paramètres 4.32M, opérations 11.12G.

Source: https://hailo-model-zoo.s3.eu-west-2.amazonaws.com/ModelZoo/Compiled/v2.19.0/hailo8/yolov6n.hef.

REST API

text
POST http://<Board_IP>:8000/api/models/yolov6n/predict
bash
curl -X POST "http://<Board_IP>:8000/api/models/yolov6n/predict" \
  -F "file=@test.jpg"
EndpointMéthodeRôle
/GETInterface d'aperçu web
/api/models/yolov6n/predictPOSTDétections (JSON)
/api/video_feedGETFlux d'aperçu MJPEG

Notes d'implémentation

  • Le Model Zoo base/yolov6.yaml utilise hpp=true, meta_arch=yolo_v6, score_threshold=0.03 et nms_iou_thresh=0.65 ; info.output_shape documente les neuf têtes fractionnées brutes (4 boîtes, 1 objectness, 80 classes par stride 32/16/8).
  • Le module gère les deux formats de compilation : si le HEF a déjà appliqué le NMS (HPP) il analyse le tenseur post-NMS (tampon compact par classe, formes denses Cx5xD / CxDx5, liste ragged NMS-by-score) ; s'il renvoie les têtes brutes il décode les distances autour du centre de cellule (unités de stride), multiplie sigmoid(classes) par sigmoid(objectness) et applique un NMS par classe avec la valeur du curseur IOU.
  • [YOLOv6n] layout=... est journalisé une fois à la première inférence pour confirmer le format sur le matériel.
  • Le HEF intègre normalize_in_net (mean 0 / std 255) et padding_color=114 : l'application applique un letterbox gris (114) et transmet des pixels uint8 RGB bruts.
  • Les IDs de classe 0..79 indexent directement la liste COCO standard (l'évaluation du Model Zoo utilise labels_offset=1).
  • Valeurs par défaut : confiance 0,25 ; avec le NMS embarqué le curseur IOU est sans effet, avec les têtes brutes il pilote le NMS de l'hôte.

Notes de développement

  • Module source : src/hailo10h_yolov6n/ (Hailo-10H) ou src/rpi5_hailo8_yolov6n/ (Hailo-8) dans le dépôt de modèles correspondant
  • Conteneur : ghcr.io/seeed-projects/recomputer-hailo8-cv/yolov6n:latest
  • Le Hailo Model Zoo ne publie que YOLOv6n ; YOLOv6s/m/l n'ont pas de HEF Hailo.
  • Licence du modèle : GPL-3.0 (amont meituan/YOLOv6).

Entrées et sorties

Input: image, video frame, or camera frame. Output: COCO classes, confidence scores, and boxes.