Ultralytics YOLO27 :

Exportation RKNN des modèles Ultralytics YOLO26 pour Rockchip#

Lors du déploiement de modèles de vision par ordinateur sur des appareils embarqués, notamment 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 une compatibilité avec le matériel Rockchip. Ce guide t'explique comment convertir tes modèles YOLO26 au format RKNN, notamment pour les exportations en virgule flottante et quantifiées en INT8, afin de permettre un déploiement efficace sur les plateformes Rockchip.

Rockchip RKNN export for NPU deployment

Remarque

Ce guide a été testé avec le Radxa Rock 5B, basé sur le Rockchip RK3588, et le Radxa Zero 3W, basé sur le Rockchip RK3566. Il devrait fonctionner sur d'autres appareils basés sur Rockchip prenant en charge rknn-toolkit2, tels que RK3576, RK3568, RK3562, RK2118, RV1126B, RV1103, RV1106, RV1103B et RV1106B. Les cibles exclusivement INT8 telles que RV1103 et RV1106 nécessitent quantize=8.

Qu'est-ce que Rockchip ?#

Réputé pour fournir des solutions polyvalentes et économes en énergie, Rockchip conçoit des systèmes sur puce (SoC) avancés qui équipent un large éventail 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 (NPU) intégrées et à leur prise en charge du multimédia haute résolution, les SoC Rockchip offrent 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 comme Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas et Banana Pi proposent différents produits basés sur des SoC Rockchip, étendant ainsi leur présence 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 Rockchip (unité de traitement neuronal), afin de garantir de hautes performances pour les tâches d'IA sur des appareils tels que RK3588, RK3566, RV1103, RV1106 et d'autres systèmes équipés de Rockchip.

Fonctionnalités principales des modèles RKNN#

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

  • Optimisés pour le NPU : les modèles RKNN sont spécialement optimisés pour fonctionner sur les NPU Rockchip, ce qui garantit des performances et une efficacité maximales.
  • Faible latence : le format RKNN réduit la latence de l'inférence, un élément 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 exploitant le matériel NPU dédié, les modèles RKNN consomment moins d'énergie qu'un 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 renverrons aux guides de démarrage des 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 à fournir ces têtes.

TâcheYOLOv8YOLO11YOLO26
Détection
Segmentation
Sémantique
Profondeur
Classification
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é.

Remarque

Veille à utiliser un PC Linux basé sur X86 pour exporter le modèle vers RKNN, car l'exportation sur les appareils basés sur Rockchip (ARM64) n'est pas prise en charge.

Installation#

Pour installer les packages requis, exécute :

Installation
# Install the required package for YOLO26
pip install ultralytics

Pour obtenir des instructions détaillées et les bonnes pratiques relatives au processus d'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 pour trouver des solutions et des conseils.

Utilisation#

Remarque

L'exportation FP16 est prise en charge pour toutes les tâches. L'exportation INT8 n'est actuellement prise en charge que pour les modèles de détection, avec une prise en charge d'autres tâches à venir ; les cibles 100 % INT8 telles que RV1103 et RV1106 n'exportent donc que 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 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 compiler un modèle RKNN quantifié en 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 FP32.

Exportation
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 (detection models only)
model = YOLO("yolo26n.pt")
model.export(format="rknn", name="rk3588", quantize=8, data="coco8.yaml")  # creates 'yolo26n_rknn_model'
Prédiction
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#

ArgumentTypeValeur par défautDescription
formatstr'rknn'Format cible du modèle exporté, définissant sa 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 les images carrées ou un tuple (height, width) pour des dimensions spécifiques.
batchint1Indique la taille du lot d'inférence du modèle exporté ou le nombre maximal d'images que le modèle exporté traitera simultanément en mode predict.
namestr'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).
quantizeint ou strNonePrécision de quantification : non défini ou 16 génère du FP16 pour les cibles compatibles FP16 ; l'absence de définition active automatiquement l'INT8 pour les cibles 100 % INT8 ; 8 génère de l'INT8, ce qui n'est pris en charge que pour les modèles de détection. L'exportation RKNN n'a pas de mode FP32 séparé. Remplace les indicateurs dépréciés half/int8.
simplifyboolTrueSimplifie le graphe ONNX intermédiaire avec onnxslim.
opsetintNoneIndique 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.
datastrNoneJeu de données YAML utilisé pour l'étalonnage INT8. Si tu l'omets avec quantize=8, Ultralytics sélectionne le jeu de données d'étalonnage de détection par défaut (coco8.yaml).
fractionfloat, int ou list1.0Sous-ensemble de calibration sous forme de ratio, de nombre d’images ou de ratios/nombres [train, val, test]. Les listes de deux éléments laissent test complet, tandis que 0 l’ignore.
devicestrNoneIndique l'appareil utilisé pour l'exportation : GPU (device=0), CPU (device=cpu).
Conseil

Veille à utiliser une machine Linux x86 lors de l'exportation vers RKNN.

Pour plus de détails sur le processus d’exportation, consulte la page de la documentation Ultralytics consacrée à l’exportation.

Déployer les modèles YOLO26 RKNN exportés#

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

Installation#

Pour installer les packages requis, exécute :

Installation
# Install the required package for YOLO26
pip install ultralytics

Une 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 fichier _rknn_model exporté est chargé 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 officiel librknnrt.so.

Capture d'écran de l'exportation RKNN

Applications concrètes#

Les appareils équipés de Rockchip et de modèles YOLO26 RKNN peuvent être utilisés dans diverses applications :

  • Surveillance 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 l'état des cultures et détecte les nuisibles grâce à la vision par ordinateur dans l'agriculture.
  • Robotique autonome : active la navigation fondée sur la vision et la détection des 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, avec le format de modèle rknn, afin de mesurer la vitesse et la précision.

Performances
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 des 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étraitement ni le post-traitement.

Résumé#

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

La combinaison de Ultralytics YOLO26 et de la technologie NPU de Rockchip fournit 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 ainsi que d'autres applications d'IA visuelle, avec une consommation d'énergie minimale et de hautes performances.

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

Si tu souhaites également en savoir plus sur les autres intégrations Ultralytics YOLO26, consulte 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 en utilisant la méthode export() du package Python Ultralytics ou via l'interface de ligne de commande (CLI). Veille à utiliser un PC Linux basé sur x86 pour le processus d'exportation, car les appareils ARM64 comme ceux de 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, par exemple rk3588, rk3566 ou 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.

    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écialement conçus pour exploiter les capacités d'accélération matérielle des unités de traitement neuronal (NPU) de Rockchip. Cette optimisation permet d'obtenir des vitesses d'inférence nettement supérieures 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 d'exploiter plus efficacement les ressources de l'appareil, ce qui se traduit par une consommation d'énergie réduite et de meilleures performances globales, un aspect 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 SoC Rockchip comme RK3588, RK3566 et d'autres.

  • Les modèles RKNN sont spécialement 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 à l'aide d'une émulation logicielle, tu ne bénéficieras 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 vers des formats spécifiquement conçus pour ces plateformes, comme 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, ce qui garantit la compatibilité avec différents accélérateurs matériels.

  • L'exportation 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 en INT8 avec quantize=8, requise pour les cibles exclusivement INT8 telles que RV1103, RV1106, RV1103B et RV1106B. Ces plateformes sont couramment intégrées à des 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 un large éventail d'appareils équipés de 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, grâce à leur optimisation pour les NPU 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, ce qui est nettement plus rapide que les autres formats. Cet avantage en matière de performances est constant pour différentes tailles de modèles YOLO26, comme l'illustre la section des benchmarks. En exploitant le matériel NPU dédié, les modèles RKNN réduisent la latence 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.

Commentaires