CV / YOLOv10

YOLOv10

reComputer RK3588

Modèles de détection d'objets YOLOv10n/s/b/x pour reComputer RK3588/RK3576 (RKNN) et reComputer R Series avec Hailo-8 ou Hailo-10H.

80 téléchargements
Taille
7.36 MB
Mémoire
4GB+
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-yolov10:latest \
  python3 web_detection.py --platform rk3588 --model_path model/yolov10n.rknn --video_path video/test.mp4

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 RKNN provient des modules YOLOv10 de reComputer-RK-CV. Il implémente le post-traitement Top-K en deux étapes, de bout en bout et sans NMS.

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
Variantesyolov10n.rknn, yolov10s.rknn
Valeur par défautmodel/yolov10n.rknn
Post-traitementSélection Top-K de bout en bout sans NMS

Étape A : télécharger les images

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

Étape B : exécuter en un clic

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

Sélectionnez YOLOv10s avec --model_path model/yolov10s.rknn. Remplacez l’argument vidéo par --camera_id -1 pour le mode téléversement uniquement.


🔌 Documentation de l’API

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

Endpoint : POST /api/models/yolov10/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/yolov10/predict" \
  -F "file=@bus.jpg" -F "conf=0.25"

Exemple de réponse :

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)

L’API accepte iou pour rester compatible avec le service de détection standard, mais le post-traitement sans NMS de YOLOv10 ne l’utilise pas. La confiance globale de GET/POST /api/config s’applique à l’aperçu et à l’analyse hors ligne.

Le service expose aussi les endpoints d’état, MJPEG, téléversement, analyse asynchrone, état, liste et téléchargement. Les fichiers sont écrits par défaut sous workspace/. Un modèle de remplacement doit conserver la taille d’entrée et les tenseurs attendus par le décodeur sans NMS de web_detection.py.

3. Arguments de ligne de commande

ArgumentValeur par défautDescription
--platformObligatoirerk3576 ou rk3588.
--model_pathObligatoireFichier RKNN YOLOv10n ou YOLOv10s.
--camera_id1Indice de caméra ; -1 désactive la capture.
--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 du service.

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/yolov10.dockerfile \
  -t rk3576-yolov10:local src/rk3576_yolov10

docker build -f docker/rk3588/yolov10.dockerfile \
  -t rk3588-yolov10:local src/rk3588_yolov10

Entrées et sorties

Entrée : image, vidéo ou flux caméra USB. Sortie : boîtes de détection, classes, confiances et aperçu MJPEG annoté.