Exportation Rockchip RKNN 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 des modèles Ultralytics YOLO26 au format RKNN garantit des performances optimisées et la compatibilité avec le matériel Rockchip. Ce guide t’explique comment convertir tes modèles YOLO26 au format RKNN, notamment en exportant des modèles à virgule flottante et quantifiés en INT8, pour permettre un déploiement efficace sur les plateformes Rockchip.
Ce guide a été testé avec Radxa Rock 5B, basé sur Rockchip RK3588, et Radxa Zero 3W, basé sur Rockchip RK3566. Il devrait fonctionner sur d’autres appareils basés sur Rockchip compatibles avec rknn-toolkit2, comme RK3576, RK3568, RK3562, RK2118, RV1126B, RV1103, RV1106, RV1103B et RV1106B. Les cibles compatibles uniquement avec INT8, comme RV1103 et RV1106, nécessitent quantize=8.
Qu'est-ce que Rockchip ?#
Réputé pour proposer des solutions polyvalentes et économes en énergie, Rockchip conçoit des systèmes sur puce (SoCs) avancés qui équipent une vaste gamme d'appareils électroniques grand public, d'applications industrielles et de technologies d'IA. Grâce à leur architecture basée sur ARM, à leurs unités de traitement neuronal (NPUs) intégrées et à leur prise en charge du multimédia haute résolution, les SoCs Rockchip offrent des performances de pointe pour des appareils comme les tablettes, les téléviseurs intelligents, les systèmes IoT et les applications d'IA en périphérie. Des entreprises comme Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas et Banana Pi proposent divers produits basés sur les SoCs Rockchip, étendant ainsi leur portée et leur impact sur des marchés variés.
RKNN Toolkit#
Le RKNN Toolkit est un ensemble d'outils et de bibliothèques fourni par Rockchip pour faciliter le déploiement de modèles d'apprentissage profond sur ses plateformes matérielles. RKNN, ou réseau neuronal Rockchip, est le format propriétaire utilisé par ces outils. Les modèles RKNN sont conçus pour tirer pleinement parti de l'accélération matérielle fournie par le NPU (unité de traitement neuronal) de Rockchip et garantir des performances élevées pour les tâches d'IA sur des appareils tels que les RK3588, RK3566, RV1103, RV1106 et autres systèmes équipés de Rockchip.
Principales caractéristiques des modèles RKNN#
Les modèles RKNN offrent plusieurs avantages pour le déploiement sur les plateformes Rockchip :
- Optimisés pour le NPU : les modèles RKNN sont spécifiquement optimisés pour fonctionner sur les NPU de Rockchip, ce qui garantit des performances et une efficacité maximales.
- Faible latence : le format RKNN réduit au minimum la latence d'inférence, un facteur essentiel 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, ce qui permet 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, ce qui prolonge l'autonomie des appareils portables.
Flasher un système d'exploitation sur le matériel Rockchip#
La première étape après avoir obtenu un appareil basé sur Rockchip consiste à flasher un système d'exploitation afin que le matériel puisse démarrer dans un environnement fonctionnel. Dans ce guide, nous allons te renvoyer vers les guides de démarrage de deux appareils que nous avons testés : le Radxa Rock 5B et le Radxa Zero 3W.
Tâches prises en charge#
L'exportation RKNN prend en charge les sept tâches Ultralytics. La segmentation sémantique et l'estimation de profondeur sont disponibles uniquement avec YOLO26, la seule famille à intégrer ces têtes de modèle.
| Tâche | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Détecter | ✅ | ✅ | ✅ |
| Segmenter | ✅ | ✅ | ✅ |
| Sémantique | ❌ | ❌ | ✅ |
| Profondeur | ❌ | ❌ | ✅ |
| Classifier | ✅ | ✅ | ✅ |
| Pose | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
Exporter vers RKNN : convertir ton modèle YOLO26#
Exporte un modèle Ultralytics YOLO26 au format RKNN et exécute l'inférence avec le modèle exporté.
Veille à utiliser un PC Linux basé sur X86 pour exporter le modèle vers RKNN, car l'exportation depuis des appareils Rockchip (ARM64) n'est pas prise en charge.
Installation#
Pour installer les paquets requis, exécute :
# Install the required package for YOLO26
pip install ultralyticsPour obtenir des instructions détaillées et connaître les bonnes pratiques liées à l’installation, consulte notre guide d’installation Ultralytics. Si tu rencontres des difficultés lors de l’installation des packages requis pour YOLO26, consulte notre guide des problèmes courants, qui propose des solutions et des conseils.
Utilisation#
L'exportation FP16 est prise en charge pour toutes les tâches. L'exportation INT8 est actuellement prise en charge uniquement pour les modèles de détection, et la prise en charge d'autres tâches sera ajoutée ultérieurement ; les cibles exclusivement INT8, comme RV1103 et RV1106, exportent donc uniquement des modèles de détection.
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. Exporte ton modèle, puis charge 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 compilation en virgule flottante (quantize=16) pour les cibles Rockchip compatibles FP16. Utilise quantize=8 pour créer un modèle RKNN quantifié INT8 avec des données d'étalonnage. L'exportation RKNN n'expose pas de mode FP32 distinct ; la valeur par défaut FP16 ne demande pas de FP32.
from ultralytics import YOLO
# Charger un modèle YOLO26 (remplacer par un modèle de tâche pris en charge)
model = YOLO("yolo26n-obb.pt")
# Exporter le modèle au format RKNN
model.export(format="rknn", name="rk3588") # creates 'yolo26n-obb_rknn_model'
# Exporter un modèle RKNN quantifié INT8 avec des données d'étalonnage (modèles de détection uniquement)
model = YOLO("yolo26n.pt")
model.export(format="rknn", name="rk3588", quantize=8, data="coco8.yaml") # creates 'yolo26n_rknn_model'from ultralytics import YOLO
# Charger le modèle RKNN exporté
model = YOLO("./yolo26n-obb_rknn_model")
# Exécuter l’inférence
results = model("https://ultralytics.com/images/boats.jpg")from ultralytics import YOLO
# Charger le modèle RKNN exporté
model = YOLO("./yolo26n-obb_rknn_model")
# Valider la précision sur le jeu de données DOTA8
metrics = model.val(data="dota8.yaml")Arguments d’exportation#
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
format | str | 'rknn' | Format cible du modèle exporté, qui définit sa compatibilité avec les environnements de déploiement Rockchip. |
imgsz | int ou tuple | 640 | Taille d’image souhaitée pour l’entrée du modèle. Peut être un entier pour les images carrées ou un tuple (height, width) pour définir des dimensions spécifiques. |
batch | int | 1 | Indique la taille de lot pour l’inférence du modèle exporté ou le nombre maximal d’images que le modèle exporté traitera simultanément en mode predict. |
name | str | 'rk3588' | Indique 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 exclusivement INT8 (quantize=8 ou non défini). |
quantize | int ou str | None | Précision de quantification : si elle n'est pas définie ou vaut 16, la compilation génère du FP16 pour les cibles compatibles FP16 ; si elle n'est pas définie, INT8 est activé automatiquement pour les cibles exclusivement INT8 ; 8 génère du INT8, pris en charge uniquement pour les modèles de détection. L'exportation RKNN ne propose pas de mode FP32 distinct. Remplace les options obsolètes half/int8. |
simplify | bool | True | Simplifie le graphe ONNX intermédiaire avec onnxslim. |
opset | int | None | Indique la version de l'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 ramenées à 19. |
data | str | None | Fichier YAML du jeu de données utilisé pour l'étalonnage INT8. S'il est omis avec quantize=8, Ultralytics sélectionne le jeu de données d'étalonnage de détection par défaut (coco8.yaml). |
fraction | float, int ou list | 1.0 | Sous-ensemble de calibration exprimé en ratio, en nombre d’images ou en listes [train, val, test] de ratios/de nombres. Les listes de deux éléments laissent test complet, tandis que 0 l’ignore. |
device | str | None | Indique l'appareil utilisé pour l'exportation : GPU (device=0), CPU (device=cpu). |
Veille à utiliser une machine Linux x86 pour l'exportation vers RKNN.
Pour en savoir plus sur le processus d’export, consulte la page de la documentation Ultralytics consacrée à l’export.
Déployer les modèles YOLO26 RKNN exportés#
Une fois tes modèles Ultralytics YOLO26 exportés au format RKNN, l'étape suivante consiste à les déployer sur des appareils basés sur Rockchip.
Installation#
Pour installer les paquets requis, exécute :
# Install the required package for YOLO26
pip install ultralyticsUne fois l'installation terminée, exécute l'inférence et la validation sur ton appareil Rockchip exactement comme indiqué dans la section Utilisation ci-dessus : le _rknn_model exporté se charge directement avec YOLO(...).
Si tu rencontres un message de journal indiquant que la version du runtime RKNN ne correspond pas à celle de RKNN Toolkit et que l'inférence échoue, remplace /usr/lib/librknnrt.so par le fichier officiel librknnrt.so.

Applications concrètes#
Les appareils équipés de Rockchip et utilisant des modèles YOLO26 RKNN peuvent servir dans diverses applications :
- Vidéosurveillance intelligente : déploie des systèmes efficaces de détection d'objets pour la surveillance de sécurité, avec une faible consommation d'énergie.
- Automatisation industrielle : mets en œuvre le contrôle qualité et la détection des défauts directement sur des appareils embarqués.
- Analyse du commerce de détail : suis le comportement des clients et gère les stocks en temps réel, sans dépendre du cloud.
- Agriculture intelligente : surveille la santé des cultures et détecte les nuisibles grâce à la vision par ordinateur en agriculture.
- Robotique autonome : active la navigation fondé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é réalisés par l'équipe Ultralytics sur un Radxa Rock 5B basé sur le Rockchip RK3588, en utilisant le format de modèle rknn pour mesurer la vitesse et la précision.
| Modèle | Format | Précision | Statut | Taille (Mo) | mAP50-95(B) | Temps d’inférence (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n | rknn | FP16 | ✅ | 7.2 | 0.477 | 58.5 |
| YOLO26n | rknn | INT8 | ✅ | 4.1 | 0.463 | 41.2 |
| YOLO26s | rknn | FP16 | ✅ | 21.0 | 0.569 | 93.8 |
| YOLO26s | rknn | INT8 | ✅ | 12.0 | 0.554 | 61.9 |
| YOLO26m | rknn | FP16 | ✅ | 43.0 | 0.608 | 226.3 |
| YOLO26m | rknn | INT8 | ✅ | 22.0 | 0.603 | 122.0 |
| YOLO26l | rknn | FP16 | ✅ | 53.0 | 0.628 | 264.7 |
| YOLO26l | rknn | INT8 | ✅ | 28.0 | 0.617 | 145.3 |
| YOLO26x | rknn | FP16 | ✅ | 113.0 | 0.664 | 655.4 |
| YOLO26x | rknn | INT8 | ✅ | 58.0 | 0.649 | 287.4 |
Évalué avec ultralytics 8.4.60
La validation des benchmarks ci-dessus a été réalisée avec le jeu de données COCO128. Le temps d'inférence n'inclut pas le prétraitement ni le post-traitement.
Résumé#
Dans ce guide, tu as appris à exporter des modèles Ultralytics YOLO26 au format RKNN pour améliorer leur déploiement sur les plateformes Rockchip. Tu as également découvert le RKNN Toolkit et les avantages spécifiques des modèles RKNN pour les applications d'IA en périphérie.
L'association d'Ultralytics YOLO26 et de la technologie NPU de Rockchip offre une solution efficace pour exécuter des tâches avancées de vision par ordinateur sur des appareils embarqués. Cette approche permet la détection d'objets en temps réel et d'autres applications d'IA visuelle, avec une consommation d'énergie minimale et des performances élevées.
Pour en savoir plus sur l'utilisation, consulte la documentation officielle RKNN.
Pour en savoir plus sur les autres intégrations Ultralytics YOLO26, consulte également notre page du guide des intégrations. Tu y trouveras de nombreuses ressources et informations utiles.
FAQ#
Tu peux facilement exporter ton modèle Ultralytics YOLO au format RKNN à l'aide de la méthode
export()du package Ultralytics Python ou via l'interface en ligne de commande (CLI). Veille à utiliser un PC Linux basé sur x86 pour l'exportation, car les appareils ARM64 comme Rockchip ne sont pas pris en charge pour cette opération. Tu peux définir la plateforme Rockchip cible à l'aide de l'argumentname, par exemplerk3588,rk3566ou d'autres valeurs. 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 neuronal (NPU) pour accélérer l'inférence.Exemplefrom ultralytics import YOLO # Charger ton modèle YOLO model = YOLO("yolo26n.pt") # Exporter au format RKNN pour une plateforme Rockchip spécifique model.export(format="rknn", name="rk3588")Les modèles RKNN sont spécialement conçus pour exploiter les capacités d'accélération matérielle des unités de traitement neuronal (NPUs) de Rockchip. Cette optimisation permet d'obtenir des inférences nettement plus rapides et une latence réduite par rapport à l'exécution de formats de modèle génériques comme ONNX ou LiteRT sur le même matériel. Les modèles RKNN permettent d'utiliser plus efficacement les ressources de l'appareil, ce qui réduit la consommation d'énergie et améliore les performances globales, un point particulièrement important pour les applications en temps réel sur les appareils en périphérie. En convertissant tes modèles Ultralytics YOLO au format RKNN, tu peux obtenir des performances optimales sur les appareils équipés de SoCs Rockchip, tels que les RK3588, RK3566 et d'autres.
Les modèles RKNN sont spécifiquement optimisés pour les plateformes Rockchip et leurs NPU intégrés. Même si tu peux techniquement exécuter un modèle RKNN sur d'autres plateformes grâce à une émulation logicielle, tu ne profiteras pas de l'accélération matérielle fournie par les appareils Rockchip. Pour obtenir des performances optimales sur d'autres plateformes, il est recommandé d'exporter tes modèles Ultralytics YOLO dans des formats conçus spécifiquement pour celles-ci, comme TensorRT pour les GPU NVIDIA ou Edge TPU pour les appareils Coral de Google. Ultralytics prend en charge l'exportation vers une vaste gamme de formats, assurant la compatibilité avec divers accélérateurs matériels.
L'exportation des modèles Ultralytics YOLO au format RKNN prend en charge les plateformes Rockchip avec des compilations RKNN en virgule flottante, notamment RK3588, RK3576, RK3566, RK3568, RK3562, RK2118 et RV1126B. Elle prend également en charge l'exportation RKNN quantifiée INT8 avec
quantize=8, requise pour les cibles exclusivement INT8 comme RV1103, RV1106, RV1103B et RV1106B. Ces plateformes équipent couramment les appareils de fabricants comme 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 Rockchip, des ordinateurs monocartes aux systèmes industriels.Les modèles RKNN surpassent généralement les autres formats comme ONNX ou LiteRT sur les appareils Rockchip, car ils sont optimisés pour les NPU de Rockchip. Par exemple, les benchmarks réalisés 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, des résultats nettement plus rapides que ceux d'autres formats. Cet avantage en matière de performances se vérifie pour différentes tailles de modèles YOLO26, comme le montrent les résultats des benchmarks. En tirant parti du matériel NPU dédié, les modèles RKNN réduisent la latence au minimum et maximisent le débit, ce qui les rend idéaux pour les applications en temps réel sur les appareils en périphérie basés sur Rockchip.