CV / YOLOv6

YOLOv6

reComputer RK3588

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

98 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

Armbian 26.8.7 Gnome ou version ultérieure avec OTA overlayroot : Configurez le stockage de Docker avant de lancer des conteneurs pour éviter les erreurs de montage overlay.

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/rk3588-yolov6:latest \
  python3 web_detection.py --platform rk3588 --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 RK

Armbian 26.8.7 Gnome ou version ultérieure avec OTA overlayroot : Configurez le stockage de Docker avant de lancer des conteneurs pour éviter les erreurs de montage overlay.

Démarrage rapide

1. Installer Docker

Exécutez les commandes suivantes sur la carte de développement pour installer Docker :

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

2. Exécuter le projet (une commande, aperçu double mode)

Ce déploiement repose sur les modules YOLOv6 de reComputer-RK-CV. Il exécute la détection COCO avec RKNN-Toolkit-Lite2 et fournit un aperçu navigateur, une inférence REST et le traitement vidéo hors ligne.

Informations sur le modèle

PropriétéValeur
TâcheDétection d’objets COCO à 80 classes
Entrée640 x 640, letterboxé et converti de BGR en RGB
Variantesyolov6n.rknn, yolov6s.rknn, yolov6m.rknn
Valeur par défautmodel/yolov6n.rknn
SortieClasses, scores de confiance et boîtes dans l’image source

Étape A : télécharger les images

bash
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolov6:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolov6:latest

Étape B : exécuter en un clic

Choisissez la taille du modèle en modifiant --model_path.

Pour RK3576:

bash
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

Pour RK3588:

bash
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/rk3588-yolov6:latest \
  python3 web_detection.py --platform rk3588 \
  --model_path model/yolov6n.rknn --video_path video/test.mp4

Utilisez model/yolov6s.rknn ou model/yolov6m.rknn pour les autres variantes. Remplacez --video_path video/test.mp4 par --camera_id -1 pour le mode téléversement uniquement. Ouvrez http://<BOARD_IP>:8000 ou /docs.


🔌 Documentation de l’API

1. Interface d’inférence du modèle (Predict)

Endpoint : POST /api/models/yolov6/predict

Paramètres de requête (Multipart/Form-Data) :

Vous pouvez fournir file, video, timestamp, realtime, conf et iou ; les seuils par défaut sont 0.25 et 0.45.

Exemples d’utilisation :

bash
curl -X POST "http://<BOARD_IP>:8000/api/models/yolov6/predict" \
  -F "file=@bus.jpg" -F "conf=0.25" -F "iou=0.45"
bash
curl -X POST "http://<BOARD_IP>:8000/api/models/yolov6/predict" \
  -F "video=@test.mp4" -F "timestamp=5.5"

Format de réponse (JSON) :

json
{
  "success": true,
  "source": "uploaded image",
  "predictions": [
    {
      "class": "bus",
      "confidence": 0.91,
      "box": {"x1": 100, "y1": 120, "x2": 520, "y2": 430}
    }
  ],
  "image": {"width": 640, "height": 480}
}

2. Interface de configuration système (Config)

GET /api/config renvoie obj_thresh et nms_thresh. Mettez-les à jour avec POST /api/config ; les champs conf et iou de la requête remplacent les valeurs globales.

Le service fournit aussi GET /api/health, GET /api/video_feed, POST /api/video/upload, POST /api/video/analyze ainsi que les endpoints d’état, liste et téléchargement vidéo. Les fichiers résident sous workspace/ sauf si RK_CV_WORKSPACE est défini. Les modèles de remplacement doivent conserver la taille d’entrée et la disposition des tenseurs YOLOv6 attendues par web_detection.py.

3. Arguments de ligne de commande

ArgumentValeur par défautDescription
--platformObligatoirerk3576 ou rk3588 ; doit correspondre à l’image.
--model_pathObligatoireUn des fichiers RKNN YOLOv6 fournis.
--camera_id1Indice de caméra ; -1 active le mode téléversement uniquement.
--video_pathAucunMP4 local en boucle ; remplace la caméra.
--class_pathLabels COCOListe facultative de classes de remplacement.
--host / --port0.0.0.0 / 8000Adresse et port d’écoute FastAPI.

Interface de flux vidéo en temps réel (Video Feed)

Obtenez le dernier flux MJPEG annoté pour l’aperçu dans le navigateur :

  • Endpoint: GET /api/video_feed
  • Exemple d’utilisation: <img src="http://<BOARD_IP>:8000/api/video_feed">

🛠️ Guide du développeur (recommandations de production)

Compiler localement

bash
docker build -f docker/rk3576/yolov6.dockerfile \
  -t rk3576-yolov6:local src/rk3576_yolov6

docker build -f docker/rk3588/yolov6.dockerfile \
  -t rk3588-yolov6:local src/rk3588_yolov6

Entrées et sorties

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