Exportation Rockchip RKNN pour les modèles Ultralytics YOLO11
Lors du déploiement de modèles de vision par ordinateur sur des appareils embarqués, en particulier ceux alimentés par des processeurs Rockchip, il est essentiel d'avoir un format de modèle compatible. L'exportation des modèles Ultralytics YOLO11 au format RKNN garantit des performances optimisées et une compatibilité avec le matériel de Rockchip. Ce guide vous expliquera comment convertir vos modèles YOLO11 au format RKNN, permettant un déploiement efficace sur les plateformes Rockchip.
Remarque
Ce guide a été testé avec Radxa Rock 5B qui est basé sur Rockchip RK3588 et Radxa Zero 3W qui est basé sur 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, RV1103, RV1106, RV1103B, RV1106B et RK2118.
Qu'est-ce que Rockchip ?
Reconnu pour fournir des solutions polyvalentes et écoénergétiques, Rockchip conçoit des System-on-Chips (SoC) avancés qui alimentent une large gamme d'électronique grand public, d'applications industrielles et de technologies d'IA. Avec une architecture basée sur ARM, des unités de traitement neuronal (NPU) intégrées et une prise en charge multimédia haute résolution, les SoC 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 comme Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas et Banana Pi proposent une variété de produits basés sur les SoC Rockchip, étendant ainsi leur portée et leur impact sur divers marchés.
RKNN Toolkit
La 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, ou Rockchip Neural Network, 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 (Neural Processing Unit) de Rockchip, assurant des performances élevées dans les tâches d'IA sur des appareils comme RK3588, RK3566, RV1103, RV1106 et d'autres systèmes alimentés par Rockchip.
Principales caractéristiques 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 s'exécuter sur les NPU de Rockchip, garantissant des performances et une efficacité maximales.
- Faible latence : Le format RKNN minimise la latence d'inférence, ce qui est essentiel pour les applications en temps réel sur les appareils périphériques.
- 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 le CPU ou le GPU, ce qui prolonge la durée de vie de la batterie des appareils portables.
Flasher l'OS sur le matériel Rockchip
La première étape après avoir mis la main sur un appareil basé sur Rockchip consiste à flasher un système d'exploitation afin que le matériel puisse démarrer dans un environnement de travail. Dans ce guide, nous vous indiquerons les guides de démarrage des deux appareils que nous avons testés, à savoir Radxa Rock 5B et Radxa Zero 3W.
Exporter vers RKNN : Conversion de votre modèle YOLO11
Exporter un modèle Ultralytics YOLO11 au format RKNN et exécuter l'inférence avec le modèle exporté.
Remarque
Assurez-vous 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 packages requis, exécutez :
Installation
# Install the required package for YOLO11
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 packages requis pour YOLO11, consultez notre guide des problèmes courants pour obtenir des solutions et des conseils.
Utilisation
Remarque
L'exportation n'est actuellement prise en charge que pour les modèles de détection. La prise en charge d'autres modèles sera ajoutée à l'avenir.
Utilisation
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to RKNN format
# 'name' can be one of rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118
model.export(format="rknn", name="rk3588") # creates '/yolo11n_rknn_model'
# Export a YOLO11n PyTorch model to RKNN format
# 'name' can be one of rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118
yolo export model=yolo11n.pt format=rknn name=rk3588 # creates '/yolo11n_rknn_model'
Arguments d'exportation
Argument | Type | Par défaut | Description |
---|---|---|---|
format |
str |
'rknn' |
Format cible pour le modèle exporté, définissant la compatibilité avec divers environnements de déploiement. |
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 des dimensions spécifiques. |
batch |
int |
1 |
Spécifie la taille du lot d'inférence du modèle d'exportation ou le nombre maximal d'images que le modèle exporté traitera simultanément en predict mode. |
name |
str |
'rk3588' |
Spécifie le modèle Rockchip (rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118) |
device |
str |
None |
Spécifie le dispositif pour l'exportation : GPU (device=0 ), CPU (device=cpu ). |
Astuce
Veuillez vous assurer d’utiliser une machine x86 Linux lors de l’exportation vers RKNN.
Pour plus de détails sur le processus d'exportation, consultez la page de la documentation Ultralytics sur l'exportation.
Déploiement de modèles YOLO11 RKNN exportés
Une fois que vous avez exporté avec succès vos modèles Ultralytics YOLO11 au format RKNN, l'étape suivante consiste à déployer ces modèles sur des appareils basés sur Rockchip.
Installation
Pour installer les packages requis, exécutez :
Installation
# Install the required package for YOLO11
pip install ultralytics
Utilisation
Utilisation
from ultralytics import YOLO
# Load the exported RKNN model
rknn_model = YOLO("./yolo11n_rknn_model")
# Run inference
results = rknn_model("https://ultralytics.com/images/bus.jpg")
# Run inference with the exported model
yolo predict model='./yolo11n_rknn_model' source='https://ultralytics.com/images/bus.jpg'
Remarque
Si vous rencontrez un message de journal indiquant que la version du runtime RKNN ne correspond pas à la version du RKNN Toolkit et que l'inférence échoue, veuillez remplacer /usr/lib/librknnrt.so
officiellement fichier librknnrt.so.
Applications concrètes
Les appareils alimentés par Rockchip avec des modèles YOLO11 RKNN peuvent être utilisés dans diverses applications :
- Surveillance intelligente : Déployez des systèmes de détection d'objets efficaces pour la surveillance de la sécurité avec une faible consommation d'énergie.
- Automatisation industrielle : Mettre en œuvre le contrôle qualité et la détection des défauts directement sur les appareils embarqués.
- Analyse de vente au détail : Suivez le comportement des clients et la gestion des stocks en temps réel sans dépendance au cloud.
- Agriculture intelligente : Surveillez la santé des cultures et détectez les parasites grâce à la vision par ordinateur dans l'agriculture.
- Robotique autonome : Permettre la navigation basée sur la vision et la détection d'obstacles sur les plateformes aux ressources limitées.
Bancs d'essai
Les benchmarks YOLO11 ci-dessous ont été exécutés par l'équipe Ultralytics sur Radxa Rock 5B basé sur Rockchip RK3588 avec rknn
format de modèle mesurant la vitesse et la précision.
Performance
Modèle | Format | Statut | Taille (Mo) | mAP50-95(B) | Temps d'inférence (ms/im) |
---|---|---|---|---|---|
YOLO11n | rknn |
✅ | 7.4 | 0.505 | 71.5 |
YOLO11s | rknn |
✅ | 20.7 | 0.578 | 98.9 |
YOLO11m | rknn |
✅ | 41.9 | 0.629 | 235.3 |
YOLO11l | rknn |
✅ | 53.3 | 0.633 | 282.0 |
YOLO11x | rknn |
✅ | 114.6 | 0.687 | 679.2 |
Étalonné avec ultralytics 8.3.152
Remarque
La validation pour les benchmarks ci-dessus a été effectuée en utilisant l'ensemble de données COCO128. Le temps d'inférence n'inclut pas le prétraitement/post-traitement.
Résumé
Dans ce guide, vous avez appris à exporter les modèles Ultralytics YOLO11 au format RKNN afin d'améliorer leur déploiement sur les plateformes Rockchip. Vous avez également été initié à 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 d'Ultralytics YOLO11 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 de vision avec une consommation d'énergie minimale et des performances élevées.
Pour plus de détails sur l'utilisation, consultez la documentation officielle de RKNN.
De plus, si vous souhaitez en savoir plus sur les autres intégrations Ultralytics YOLO11, consultez notre page de guide d'intégration. Vous y trouverez de nombreuses ressources et informations utiles.
FAQ
Comment exporter mon modèle Ultralytics YOLO au format RKNN ?
Vous pouvez facilement exporter votre modèle Ultralytics YOLO au format RKNN en utilisant la export()
méthode dans le package Ultralytics Python ou via l'interface de ligne de commande (CLI). Assurez-vous 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. Vous pouvez spécifier la plateforme cible Rockchip en utilisant le name
argument, tel que rk3588
, rk3566
, ou autres. Ce processus génère un modèle RKNN optimisé, prêt à être déployé sur votre appareil Rockchip, tirant parti de son unité de traitement neuronal (NPU) pour une inférence accélérée.
Exemple
from ultralytics import YOLO
# Load your YOLO model
model = YOLO("yolo11n.pt")
# Export to RKNN format for a specific Rockchip platform
model.export(format="rknn", name="rk3588")
yolo export model=yolo11n.pt format=rknn name=rk3588
Quels sont les avantages de l'utilisation de modèles RKNN sur les appareils Rockchip ?
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 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 tels que ONNX ou TensorFlow Lite sur le même matériel. L'utilisation de modèles RKNN permet une utilisation plus efficace des ressources de l'appareil, ce qui entraîne une consommation d'énergie plus faible et de meilleures performances globales, ce qui est particulièrement essentiel pour les applications en temps réel sur les appareils périphériques. En convertissant vos modèles Ultralytics YOLO en RKNN, vous pouvez obtenir des performances optimales sur les appareils équipés de SoC Rockchip tels que les RK3588, RK3566 et autres.
Puis-je déployer des modèles RKNN sur des appareils d'autres fabricants comme NVIDIA ou Google ?
Les modèles RKNN sont spécifiquement optimisés pour les plateformes Rockchip et leurs NPU intégrées. Bien que vous puissiez techniquement exécuter un modèle RKNN sur d'autres plateformes en utilisant l'émulation logicielle, vous ne bénéficierez 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 vos modèles Ultralytics YOLO vers des formats spécifiquement conçus pour ces plateformes, tels que TensorRT pour les GPU NVIDIA ou TensorFlow Lite pour l'Edge TPU de Google. Ultralytics prend en charge l'exportation vers une large gamme de formats, assurant la compatibilité avec divers accélérateurs matériels.
Quelles plateformes Rockchip sont prises en charge pour le déploiement de modèles RKNN ?
L'exportation Ultralytics YOLO au format RKNN prend en charge une large gamme de plateformes Rockchip, notamment les populaires RK3588, RK3576, RK3566, RK3568, RK3562, RV1103, RV1106, RV1103B, RV1106B et RK2118. Ces plateformes se retrouvent couramment dans les appareils de fabricants tels que Radxa, ASUS, Pine64, Orange Pi, Odroid, Khadas et Banana Pi. Cette large prise en charge garantit que vous pouvez déployer vos modèles RKNN optimisés sur divers appareils alimentés par Rockchip, des ordinateurs monocartes aux systèmes industriels, en tirant pleinement parti de leurs capacités d'accélération de l'IA pour des performances améliorées dans vos applications de vision par ordinateur.
Comment les performances des modèles RKNN se comparent-elles à celles des autres formats sur les appareils Rockchip ?
Les modèles RKNN surpassent généralement les autres formats tels que ONNX ou TensorFlow Lite sur les appareils Rockchip en raison de leur optimisation pour les NPU de Rockchip. Par exemple, des benchmarks sur le Radxa Rock 5B (RK3588) montrent que YOLO11n au format RKNN atteint un temps d'inférence de 99,5 ms/image, ce qui est significativement plus rapide que les autres formats. Cet avantage de performance est constant sur différentes tailles de modèles YOLO11, comme le démontre 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 périphériques basés sur Rockchip.