YOLO Vision 2026 :

Exportation RKNN Rockchip pour les modèles Ultralytics YOLO26#

Lors du déploiement de modèles de vision par ordinateur sur des appareils embarqués, en particulier ceux équipés de processeurs Rockchip, il est essentiel de disposer d'un format de modèle compatible. L'exportation de modèles Ultralytics YOLO26 vers le format RKNN garantit des performances optimisées et une compatibilité avec le matériel de Rockchip. Ce guide vous accompagne dans la conversion de vos modèles YOLO26 au format RKNN, incluant les exportations en virgule flottante et quantifiées INT8, permettant un déploiement efficace sur les plateformes Rockchip.

Rockchip RKNN export for NPU deployment

Remarque

Ce guide a été testé avec la Radxa Rock 5B basée sur le Rockchip RK3588 et la Radxa Zero 3W basée sur le Rockchip RK3566. Il est prévu qu'il fonctionne sur d'autres appareils basés sur Rockchip qui prennent en charge rknn-toolkit2 tels que RK3576, RK3568, RK3562, RK2118, RV1126B, RV1103, RV1106, RV1103B et RV1106B. Les cibles compatibles uniquement avec INT8 telles que RV1103 et RV1106 nécessitent quantize=8.

Qu'est-ce que Rockchip ?#

Reconnu pour fournir des solutions polyvalentes et économes en énergie, Rockchip conçoit des Systèmes sur Puce (SoCs) avancés qui alimentent un large éventail d'appareils électroniques grand public, d'applications industrielles et de technologies d'IA. Dotés d'une architecture basée sur ARM, d'Unités de Traitement Neural (NPU) intégrées et d'une prise en charge multimédia haute résolution, les SoCs Rockchip permettent des performances de pointe pour des appareils tels que les tablettes, les téléviseurs intelligents, les systèmes IoT et les applications d'IA en périphérie. Des entreprises telles que Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas et Banana Pi proposent une variété de produits basés sur les SoCs Rockchip, étendant ainsi leur portée et leur impact sur divers marchés.

RKNN Toolkit#

Le RKNN Toolkit est un ensemble d'outils et de bibliothèques fournis par Rockchip pour faciliter le déploiement de modèles d'apprentissage profond sur leurs plateformes matérielles. RKNN, pour Rockchip Neural Network, est le format propriétaire utilisé par ces outils. Les modèles RKNN sont conçus pour exploiter pleinement l'accélération matérielle fournie par le NPU (Neural Processing Unit) de Rockchip, garantissant des performances élevées dans les tâches d'IA sur des appareils tels que les RK3588, RK3566, RV1103, RV1106 et d'autres systèmes alimentés par Rockchip.

Fonctionnalités clés des modèles RKNN#

Les modèles RKNN offrent plusieurs avantages pour le déploiement sur les plateformes Rockchip :

  • Optimisé pour NPU : Les modèles RKNN sont spécifiquement optimisés pour fonctionner sur les NPU de Rockchip, garantissant une performance et une efficacité maximales.
  • Faible latence : Le format RKNN minimise la latence d'inférence, ce qui est crucial pour les applications en temps réel sur les appareils en périphérie.
  • Personnalisation spécifique à la plateforme : Les modèles RKNN peuvent être adaptés à des plateformes Rockchip spécifiques, permettant une meilleure utilisation des ressources matérielles.
  • Efficacité énergétique : En tirant parti du matériel NPU dédié, les modèles RKNN consomment moins d'énergie que le traitement basé sur CPU ou GPU, prolongeant ainsi la durée de vie de la batterie pour les appareils portables.

Flasher l'OS sur le matériel Rockchip#

La première étape après avoir récupéré ton appareil basé sur Rockchip est de flasher un système d'exploitation afin que le matériel puisse démarrer dans un environnement fonctionnel. Dans ce guide, nous indiquerons les guides de démarrage des deux appareils que nous avons testés, à savoir la Radxa Rock 5B et la Radxa Zero 3W.

Tâches prises en charge#

L'export RKNN prend en charge les sept tâches d'Ultralytics. La segmentation sémantique et l'estimation de la profondeur ne sont disponibles qu'avec YOLO26, la seule famille qui intègre ces têtes.

TâcheYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

Exporter vers RKNN : Conversion de ton modèle YOLO26#

Exporte un modèle Ultralytics YOLO26 au format RKNN et exécute l'inférence avec le modèle exporté.

Remarque

Assure-toi d'utiliser un PC Linux basé sur X86 pour exporter le modèle vers RKNN car l'exportation sur des appareils basés sur Rockchip (ARM64) n'est pas prise en charge.

Installation#

Pour installer les paquets requis, exécute :

Installation
# Install the required package for YOLO26
pip install ultralytics

Pour des instructions détaillées et les meilleures pratiques relatives au processus d'installation, consultez notre guide d'installation Ultralytics. Si vous rencontrez des difficultés lors de l'installation des paquets requis pour YOLO26, consultez notre guide des problèmes courants pour trouver des solutions et des conseils.

Utilisation#

Remarque

L'export FP16 est pris en charge pour toutes les tâches. L'export INT8 n'est actuellement pris en charge que pour les modèles de détection, d'autres prises en charge de tâches arrivant prochainement.

Le format RKNN prend en charge les modes Export, Predict et Validate. L'inférence et la validation s'exécutent sur le matériel NPU de Rockchip. Exportez votre modèle, puis chargez le modèle exporté pour exécuter l'inférence ou valider sa précision. Par défaut, l'exportation RKNN utilise le chemin de construction en virgule flottante (quantize=16) pour les cibles Rockchip compatibles FP16. Utilisez quantize=8 pour construire un modèle RKNN quantifié en INT8 avec des données de calibration. L'exportation RKNN n'expose pas de mode FP32 séparé ; la valeur par défaut FP16 ne demande pas FP32.

Exporter (Export)
from ultralytics import YOLO

# Load a YOLO26 model (replace with any supported task model)
model = YOLO("yolo26n-obb.pt")

# Export the model to RKNN format
model.export(format="rknn", name="rk3588")  # creates '/yolo26n-obb_rknn_model'

# Export an INT8-quantized RKNN model with calibration data
model.export(format="rknn", name="rk3588", quantize=8, data="dota8.yaml")
Prédire (Predict)
from ultralytics import YOLO

# Load the exported RKNN model
model = YOLO("./yolo26n-obb_rknn_model")

# Run inference
results = model("https://ultralytics.com/images/boats.jpg")
Valider
from ultralytics import YOLO

# Load the exported RKNN model
model = YOLO("./yolo26n-obb_rknn_model")

# Validate accuracy on the DOTA8 dataset
metrics = model.val(data="dota8.yaml")

Arguments d'exportation#

ArgumentTypeDéfautDescription
formatstr'rknn'Format cible pour le modèle exporté, définissant la compatibilité avec les environnements de déploiement Rockchip.
imgszint ou tuple640Taille d'image souhaitée pour l'entrée du modèle. Peut être un entier pour des images carrées ou un tuple (height, width) pour des dimensions spécifiques.
batchint1Spécifie la taille d'inférence par lots du modèle exporté ou le nombre maximal d'images que le modèle exporté traitera simultanément en mode predict.
namestr'rk3588'Spécifie la cible Rockchip. rk3588, rk3576, rk3566, rk3568, rk3562, rk2118 et rv1126b prennent en charge FP16 (quantize=16 ou non défini) et INT8 (quantize=8) ; rv1103, rv1106, rv1103b et rv1106b sont réservés à INT8 (quantize=8 ou non défini).
quantizeint ou strNonePrécision de quantification : non défini ou 16 construit FP16 pour les cibles compatibles FP16 ; non défini active automatiquement INT8 pour les cibles réservées à INT8 ; 8 construit INT8. L'exportation RKNN n'a pas de mode FP32 séparé. Remplace les indicateurs obsolètes half/int8.
simplifyboolTrueSimplifie le graphe ONNX intermédiaire avec onnxslim.
opsetintNoneSpécifie la version d'opset ONNX pour le graphe ONNX intermédiaire. La valeur par défaut est 19 si elle n'est pas définie, et les valeurs supérieures à 19 sont réduites à 19.
datastrNoneYAML de dataset utilisé pour la calibration INT8 ; la classification prend à la place un répertoire de dataset ou un nom de dataset intégré. S'il est omis avec quantize=8, Ultralytics sélectionne le dataset de calibration par défaut pour la tâche du modèle.
fractionfloat, int ou list1.0Sous-ensemble de calibration sous forme de rapport, de nombre d'images ou de rapports/comptes [train, val] ; une liste limite train ou val, tandis que test reste complet.
devicestrNoneSpécifie l'appareil pour l'exportation : GPU (device=0), CPU (device=cpu).
Astuce

Assure-toi d'utiliser une machine Linux x86 lors de l'exportation vers RKNN.

Pour plus de détails sur le processus d'exportation, visite la page de documentation d'Ultralytics sur l'exportation.

Déploiement des modèles YOLO26 RKNN exportés#

Une fois que tu as exporté avec succès tes modèles Ultralytics YOLO26 au format RKNN, l'étape suivante consiste à déployer ces modèles sur les appareils basés sur Rockchip.

Installation#

Pour installer les paquets requis, exécute :

Installation
# Install the required package for YOLO26
pip install ultralytics

Une fois installé, exécutez l'inférence et la validation sur ton appareil Rockchip exactement comme indiqué dans la section Utilisation ci-dessus — le fichier _rknn_model exporté se charge directement avec YOLO(...).

Remarque

Si tu rencontres un message de journal indiquant que la version du runtime RKNN ne correspond pas à celle du RKNN Toolkit et que l'inférence échoue, remplace /usr/lib/librknnrt.so par le fichier librknnrt.so officiel.

Capture d'écran de l'exportation RKNN

Applications concrètes#

Les appareils alimentés par Rockchip avec des modèles YOLO26 RKNN peuvent être utilisés dans diverses applications :

  • Surveillance intelligente : Déploie des systèmes de détection d'objets efficaces pour la surveillance de sécurité avec une faible consommation d'énergie.
  • Automatisation industrielle : Implémente le contrôle qualité et la détection des défauts directement sur des appareils embarqués.
  • Analytique de détail : Suis le comportement des clients et la gestion des stocks en temps réel sans dépendance au cloud.
  • Agriculture intelligente : Surveille la santé des cultures et détecte les nuisibles en utilisant la vision par ordinateur en agriculture.
  • Robotique autonome : Active la navigation basée sur la vision et la détection d'obstacles sur des plateformes aux ressources limitées.

Benchmarks#

Les benchmarks YOLO26 ci-dessous ont été exécutés par l'équipe Ultralytics sur une Radxa Rock 5B basée sur le Rockchip RK3588 avec le format de modèle rknn, mesurant la vitesse et la précision.

Performance
ModèleFormatPrécisionStatutTaille (Mo)mAP50-95(B)Temps d'inférence (ms/im)
YOLO26nrknnFP167.20.47758.5
YOLO26nrknnINT84.10.46341.2
YOLO26srknnFP1621.00.56993.8
YOLO26srknnINT812.00.55461.9
YOLO26mrknnFP1643.00.608226.3
YOLO26mrknnINT822.00.603122.0
YOLO26lrknnFP1653.00.628264.7
YOLO26lrknnINT828.00.617145.3
YOLO26xrknnFP16113.00.664655.4
YOLO26xrknnINT858.00.649287.4

Évalué avec ultralytics 8.4.60

Remarque

La validation pour les benchmarks ci-dessus a été effectuée à l'aide du jeu de données COCO128. Le temps d'inférence n'inclut pas le pré/post-traitement.

Résumé#

Dans ce guide, tu as appris comment exporter des modèles Ultralytics YOLO26 au format RKNN pour améliorer leur déploiement sur les plateformes Rockchip. Tu as également été initié au RKNN Toolkit et aux avantages spécifiques de l'utilisation des modèles RKNN pour les applications d'IA en périphérie.

La combinaison de Ultralytics YOLO26 et de la technologie NPU de Rockchip offre une solution efficace pour exécuter des tâches de vision par ordinateur avancées sur des appareils embarqués. Cette approche permet une détection d'objets en temps réel et d'autres applications de vision par IA avec une consommation d'énergie minimale et des performances élevées.

Pour plus de détails sur l'utilisation, consulte la documentation officielle RKNN.

De plus, si tu souhaites en savoir plus sur d'autres intégrations d'Ultralytics YOLO26, visite notre integration guide page. Tu y trouveras de nombreuses ressources et informations utiles.

FAQ#

  • Tu peux facilement exporter ton modèle Ultralytics YOLO vers le format RKNN en utilisant la méthode export() dans le paquet Python d'Ultralytics ou via l'interface en ligne de commande (CLI). Assure-toi d'utiliser un PC Linux basé sur x86 pour le processus d'exportation, car les appareils ARM64 comme Rockchip ne sont pas pris en charge pour cette opération. Tu peux spécifier la plateforme Rockchip cible à l'aide de l'argument name, tel que rk3588, rk3566, ou d'autres. Ce processus génère un modèle RKNN optimisé prêt à être déployé sur ton appareil Rockchip, en tirant parti de son Unité de Traitement Neural (NPU) pour une inférence accélérée.

    Exemple
    from ultralytics import YOLO
    
    # Load your YOLO model
    model = YOLO("yolo26n.pt")
    
    # Export to RKNN format for a specific Rockchip platform
    model.export(format="rknn", name="rk3588")
  • Les modèles RKNN sont spécifiquement conçus pour tirer parti des capacités d'accélération matérielle des unités de traitement neuronal (NPU) de Rockchip. Cette optimisation se traduit par des vitesses d'inférence nettement plus rapides et une latence réduite par rapport à l'exécution de formats de modèles génériques comme ONNX ou LiteRT sur le même matériel. L'utilisation de modèles RKNN permet une utilisation plus efficace des ressources de l'appareil, ce qui conduit à une consommation d'énergie plus faible et à de meilleures performances globales, un point particulièrement critique pour les applications en temps réel sur les appareils de périphérie. En convertissant tes modèles Ultralytics YOLO au format RKNN, tu peux atteindre des performances optimales sur les appareils équipés de SoC Rockchip comme le RK3588, le RK3566 et d'autres.

  • Les modèles RKNN sont spécifiquement optimisés pour les plateformes Rockchip et leurs NPU intégrés. Bien que tu puisses techniquement exécuter un modèle RKNN sur d'autres plateformes en utilisant l'émulation logicielle, tu ne bénéficieras pas de l'accélération matérielle fournie par les appareils Rockchip. Pour des performances optimales sur d'autres plateformes, il est recommandé d'exporter tes modèles Ultralytics YOLO vers des formats spécifiquement conçus pour ces plateformes, tels que TensorRT pour les GPU NVIDIA ou Edge TPU pour les appareils Coral de Google. Ultralytics prend en charge l'exportation vers un large éventail de formats, garantissant la compatibilité avec divers accélérateurs matériels.

  • L'exportation Ultralytics YOLO vers le format RKNN prend en charge les plateformes Rockchip avec des constructions RKNN en virgule flottante, notamment les RK3588, RK3576, RK3566, RK3568, RK3562, RK2118 et RV1126B. Elle prend également en charge l'exportation RKNN quantifiée INT8 avec quantize=8, qui est requise pour les cibles réservées à INT8 telles que RV1103, RV1106, RV1103B et RV1106B. Ces plateformes se trouvent couramment dans les appareils de fabricants tels que Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas et Banana Pi, ce qui te permet de déployer tes modèles RKNN optimisés sur une gamme d'appareils alimentés par Rockchip, allant des ordinateurs monocarte aux systèmes industriels.

  • Les modèles RKNN surpassent généralement d'autres formats comme ONNX ou LiteRT sur les appareils Rockchip en raison de leur optimisation pour les NPU de Rockchip. Par exemple, les benchmarks sur le Radxa Rock 5B (RK3588) montrent que YOLO26n au format RKNN atteint un temps d'inférence de 58,5 ms/image en FP16 et de 41,2 ms/image en INT8, ce qui est nettement plus rapide que les autres formats. Cet avantage de performance est cohérent à travers diverses tailles de modèles YOLO26, comme démontré dans la section des benchmarks. En exploitant le matériel NPU dédié, les modèles RKNN minimisent la latence et maximisent le débit, ce qui les rend idéaux pour les applications en temps réel sur les appareils de périphérie basés sur Rockchip.

Commentaires