Export de modèles TFLite pour le déploiement (obsolète)#
Depuis Ultralytics 8.4.83, le format d’export autonome tflite a été supprimé et remplacé par le format unifié Google LiteRT. LiteRT (environnement d’exécution léger) est la nouvelle génération et le nouveau nom de TensorFlow Lite ; il exporte le même modèle .tflite, qui prend désormais en charge le déploiement mobile, embarqué, en périphérie et dans les navigateurs dans un format unique.
format="tflite" fonctionne toujours, mais affiche un avertissement de dépréciation et exporte désormais un modèle LiteRT. Utilise format="litert" à l’avenir ; pour consulter les instructions et options d’export actuelles, reporte-toi au guide d’export LiteRT.
Le déploiement de modèles de vision par ordinateur sur des appareils en périphérie ou embarqués nécessite un format qui garantit des performances optimales.
L’ancien format d’export TensorFlow Lite ou TFLite optimisait les modèles Ultralytics YOLO26 pour des tâches comme la détection d’objets et la classification d’images dans des applications en périphérie. Ce guide conserve le contexte de déploiement TFLite historique ; utilise LiteRT pour les nouveaux exports.
Pourquoi TFLite était-il utilisé pour l’export ?#
Lancé par Google en mai 2017 dans le cadre de son framework TensorFlow, TensorFlow Lite, ou TFLite en abrégé, était un framework open source d’apprentissage profond conçu pour l’inférence sur appareil, également appelée informatique en périphérie. Il fournissait aux développeurs des outils pour exécuter des modèles entraînés sur des appareils mobiles, embarqués et IoT, ainsi que sur des ordinateurs classiques.
TensorFlow Lite prenait en charge un large éventail de plateformes, notamment Linux embarqué, Android, iOS et les microcontrôleurs (MCU). Les exports TFLite permettaient aux applications d’exécuter les modèles localement et hors ligne.
Principales fonctionnalités des modèles TFLite#
Les modèles TFLite offrent de nombreuses fonctionnalités clés qui permettent l’apprentissage automatique sur appareil et aident les développeurs à exécuter leurs modèles sur des appareils mobiles, embarqués et en périphérie :
-
Optimisation sur appareil : TFLite optimise l’apprentissage automatique sur appareil, réduit la latence en traitant les données localement, renforce la confidentialité en évitant la transmission de données personnelles et réduit la taille des modèles pour économiser de l’espace.
-
Prise en charge de plusieurs plateformes : TFLite offre une large compatibilité avec les plateformes, notamment Android, iOS, Linux embarqué et les microcontrôleurs.
-
Prise en charge de différents langages : TFLite est compatible avec divers langages de programmation, notamment Java, Swift, Objective-C, C++ et Python.
-
Hautes performances : offre des performances supérieures grâce à l’accélération matérielle et à l’optimisation des modèles.
Performances mesurées (historiques)#
Ces résultats ont été enregistrés avec le plug-in Flutter Ultralytics 0.6.8 et LiteRT 2.1.5 sur Android 16/API 36 sur un Xiaomi 17 doté de 12 Go de mémoire LPDDR5X. Son Snapdragon 8 Elite Gen 5 gravé en 3 nm (SM8850) possède un CPU Qualcomm Oryon à 8 cœurs (2 cœurs Prime jusqu’à 4,6 GHz et 6 cœurs Performance jusqu’à 3,62 GHz), un GPU Adreno et un NPU Hexagon. Ces tableaux comparent les ressources TFLite INT8 historiques produites par onnx2tf aux exports litert-torch candidats évalués pendant la migration. Les ressources de la version publiée ont ensuite été remplacées par les exports standardisés ; ces chiffres ne décrivent donc pas les fichiers de ressources v0.6.6 actuels. Consulte les tableaux de performances LiteRT pour les mesures actuelles.
Les deux formats ont été exécutés dans le même balayage GPU consécutif, aux tailles d’entrée indiquées. Chaque cellule indique le temps total (prétraitement + inférence + post-traitement), avec le détail par étape en dessous ; les journaux natifs ont confirmé que les deux formats déléguaient l’intégralité du graphe à LiteRT OpenCL (LITERT_CL) sur le GPU Adreno.
| Modèle | Tâche | taille (pixels) | Historique TFLite INT8 onnx2tf (ms) | Candidat LiteRT w8a32 (ms) |
|---|---|---|---|---|
| YOLO26n | Détection | 640 | 14.0 1.8 / 8.1 / 4.2 | 13.5 1.9 / 8.1 / 3.5 |
| YOLO26n-seg | Segmentation | 640 | 30.1 1.9 / 20.3 / 8.0 | 28.6 1.8 / 20.1 / 6.7 |
| YOLO26n-sem | Sémantique | 640 | 26.4 1.9 / 16.4 / 8.1 | 32.9 1.8 / 23.0 / 8.2 |
| YOLO26n-cls | Classification | 224 | 3.5 0.9 / 2.2 / 0.4 | 3.2 1.0 / 2.2 / 0.1 |
| YOLO26n-pose | Pose | 640 | 17.4 2.4 / 9.9 / 5.1 | 14.0 1.9 / 9.3 / 2.8 |
| YOLO26n-obb | OBB | 640 | 13.9 3.0 / 8.3 / 2.7 | 13.0 2.9 / 7.9 / 2.3 |
La même série de tests de migration a également comparé les formats de quantification pour la détection avec YOLO26n. L’inférence est la mesure comparable qui dépend du format :
| Format Android | Inférence GPU (ms) | Compilation GPU |
|---|---|---|
| onnx2tf INT8 (TFLite historique) | 8.6 | oui |
| LiteRT w8a32 (candidat) | 8.4 | oui |
LiteRT INT8 (quantize=8) | 11.0 | oui |
| LiteRT FP32 | 8.8 | oui |
LiteRT w8a16 (quantize="w8a16") | Repli sur le CPU | non |
Lors de cette série de tests, w8a16 est repassé sur le CPU, avec un temps total d’environ 660 ms, contre environ 17 ms pour les formats GPU. Ces résultats ont motivé la livraison de w8a32, mais la compatibilité des délégués et les performances dépendent de l’appareil et de la version du runtime. Teste les performances sur l’appareil cible et vérifie dans les journaux du runtime quel accélérateur est utilisé.
Options de déploiement avec TFLite#
Avant de voir l’exemple d’export avec le remplacement LiteRT, voyons comment les modèles TFLite sont généralement utilisés.
TFLite offre plusieurs options de déploiement sur appareil pour les modèles d’apprentissage automatique, notamment :
- Déploiement avec Android et iOS : les applications Android et iOS utilisant TFLite peuvent analyser les flux des caméras et des capteurs en périphérie pour détecter et identifier des objets. TFLite propose également des bibliothèques iOS natives écrites en Swift et en Objective-C. Le schéma d’architecture ci-dessous présente le processus de déploiement d’un modèle entraîné sur les plateformes Android et iOS avec TensorFlow Lite.
-
Mise en œuvre avec Linux embarqué : si l’exécution d’inférences sur un Raspberry Pi à l’aide du guide Ultralytics ne répond pas aux exigences de vitesse de ton cas d’utilisation, tu peux utiliser un modèle TFLite exporté pour accélérer l’inférence. Tu peux également améliorer davantage les performances en utilisant un appareil Coral Edge TPU.
-
Déploiement sur des microcontrôleurs : les modèles TFLite peuvent aussi être déployés sur des microcontrôleurs et d’autres appareils disposant de seulement quelques kilo-octets de mémoire. Le runtime principal tient dans 16 Ko sur un Arm Cortex M3 et peut exécuter de nombreux modèles de base. Il ne nécessite pas de système d’exploitation, de bibliothèques C ou C++ standard, ni d’allocation dynamique de mémoire.
Remplacer l’export TFLite par LiteRT#
Pour les nouveaux exports, convertis ton modèle au format LiteRT. Le modèle obtenu conserve l’extension de fichier .tflite.
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#
Tous les modèles Ultralytics YOLO26 sont conçus pour prendre en charge l’exportation dès leur installation, ce qui facilite leur intégration à ton flux de déploiement préféré. Tu peux consulter la liste complète des formats d’exportation pris en charge et des options de configuration pour choisir la configuration la mieux adaptée à ton application.
Le format LiteRT de remplacement prend en charge les modes Export, Predict et Validate. Exporte ton modèle, puis charge le modèle .tflite exporté pour effectuer une inférence ou valider sa précision.
from ultralytics import YOLO
# Charger un modèle YOLO26
model = YOLO("yolo26n.pt")
# Exporter le modèle au format LiteRT
model.export(format="litert", imgsz=640) # utiliser imgsz=224 pour la classificationfrom ultralytics import YOLO
# Charger le modèle TFLite exporté
model = YOLO("yolo26n.tflite")
# Exécuter l’inférence
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Charger le modèle TFLite exporté
model = YOLO("yolo26n.tflite")
# Valider la précision sur le jeu de données COCO8
metrics = model.val(data="coco8.yaml")Arguments d’exportation#
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
format | str | 'litert' | Format cible du modèle exporté, qui définit sa compatibilité avec différents 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 définir des dimensions spécifiques. |
quantize | int ou str | None | Précision de quantification : 8 (INT8 statique, poids int8 et activations int8 ; nécessite les données d’étalonnage data/fraction), 'w8a16' (statique, poids int8 et activations int16 ; nécessite les données d’étalonnage data/fraction), 'w8a32' (INT8 dynamique, poids int8 et activations FP32 ; aucun étalonnage nécessaire) ou 32/non défini (FP32). FP16 n’est pas exporté séparément : un modèle FP32 s’exécute automatiquement en FP16 sur les délégués GPU. Remplace les indicateurs obsolètes half/int8. |
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. |
data | str | None | Chemin d’accès au fichier YAML du jeu de données, indispensable à la quantification ; pour la classification, un répertoire de jeu de données ou le nom d’un jeu de données intégré est requis. Si tu ne le renseignes pas avec quantize=8 ou 'w8a16', Ultralytics sélectionne le jeu de données d’étalonnage par défaut pour la tâche du modèle. |
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 : CPU (device=cpu), MPS pour les puces Apple (device=mps). |
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 TFLite exportés#
Après avoir exporté ton modèle Ultralytics YOLO26 au format LiteRT, tu peux déployer le modèle .tflite obtenu. La première étape recommandée pour exécuter un modèle TFLite consiste à utiliser la méthode YOLO("model.tflite"), comme indiqué dans l’extrait de code précédent. Toutefois, pour obtenir des instructions détaillées sur le déploiement de tes modèles TFLite dans d’autres environnements, consulte les ressources suivantes :
-
Android : un guide de démarrage rapide pour intégrer TensorFlow Lite dans des applications Android, avec des étapes faciles à suivre pour configurer et exécuter des modèles d’apprentissage automatique.
-
iOS : consulte ce guide détaillé destiné aux développeurs sur l’intégration et le déploiement de modèles TensorFlow Lite dans des applications iOS, avec des instructions et des ressources étape par étape.
-
Exemples de bout en bout : cette page présente divers exemples TensorFlow Lite, notamment des applications pratiques et des tutoriels conçus pour aider les développeurs à intégrer TensorFlow Lite à leurs projets d’apprentissage automatique sur des appareils mobiles et en périphérie.
Résumé#
Ce guide conserve le flux de travail de déploiement TFLite historique. Pour les nouveaux exports, utilise LiteRT afin de créer des modèles .tflite destinés aux environnements d’informatique en périphérie.
Pour plus de détails sur l’utilisation, consulte la documentation officielle de TFLite.
Si tu souhaites également découvrir d’autres intégrations Ultralytics YOLO26, consulte notre page de guides d’intégration. Tu y trouveras de nombreuses informations et ressources utiles.
FAQ#
Pour un nouvel export, utilise le format LiteRT. Commence par installer le paquet requis à l’aide de la commande suivante :
pip install ultralyticsUtilise ensuite l’extrait de code suivant pour exporter ton modèle :
from ultralytics import YOLO # Charger un modèle YOLO26 model = YOLO("yolo26n.pt") # Exporter le modèle au format LiteRT model.export(format="litert", imgsz=640) # utiliser imgsz=224 pour la classificationSi tu utilises la CLI, tu peux le faire avec :
yolo export model=yolo26n.pt format=litert imgsz=640 # use imgsz=224 for classificationPour plus de détails, consulte le guide d'exportation Ultralytics.
TensorFlow Lite (TFLite) est un framework open source d’apprentissage profond conçu pour l’inférence sur appareil, ce qui le rend idéal pour déployer des modèles YOLO26 sur des appareils mobiles, embarqués et IoT. Parmi ses principaux avantages :
- Optimisation sur appareil : réduis la latence et renforce la confidentialité en traitant les données localement.
- Compatibilité des plateformes : prend en charge Android, iOS, Linux embarqué et les MCU.
- Performances : utilise l’accélération matérielle pour optimiser la vitesse et l’efficacité des modèles.
Pour en savoir plus, consulte le guide TFLite.
Oui, tu peux exécuter des modèles YOLO26 TFLite sur Raspberry Pi pour accélérer l’inférence. Commence par exporter ton modèle au format LiteRT comme expliqué ci-dessus. Utilise ensuite un outil comme l’interpréteur TensorFlow Lite pour exécuter le modèle sur ton Raspberry Pi.
Pour optimiser davantage les performances, tu peux envisager d’utiliser Coral Edge TPU. Pour obtenir des instructions détaillées, consulte notre guide de déploiement sur Raspberry Pi et le guide d’intégration Edge TPU.
TFLite prend en charge le déploiement sur des microcontrôleurs aux ressources limitées : son runtime principal ne nécessite que 16 Ko de mémoire sur un Arm Cortex M3 et peut exécuter de nombreux modèles de base. Cependant, les modèles YOLO26 sont généralement trop volumineux pour la mémoire typique des microcontrôleurs. Les ordinateurs monocartes, les appareils mobiles ou les accélérateurs dédiés sont donc de meilleurs choix pour YOLO26.
Pour commencer, consulte le guide TFLite Micro pour les microcontrôleurs.
TensorFlow Lite offre une large compatibilité avec les plateformes, ce qui te permet de déployer des modèles YOLO26 sur de nombreux appareils, notamment :
- Android et iOS : prise en charge native via les bibliothèques TFLite pour Android et iOS.
- Linux embarqué : idéal pour les ordinateurs monocartes comme Raspberry Pi.
- Microcontrôleurs : adaptés aux MCU aux ressources limitées.
Pour en savoir plus sur les options de déploiement, consulte notre guide détaillé sur le déploiement.
Si tu rencontres des erreurs lors de l’export de modèles YOLO26 vers LiteRT, voici quelques solutions courantes :
- Vérifie la compatibilité des paquets : assure-toi d’utiliser des versions compatibles d’Ultralytics, de
litert-torchet deai-edge-litert. Consulte notre guide d’installation. - Prise en charge des modèles : vérifie que le modèle YOLO26 concerné prend en charge l’export LiteRT en consultant la page de documentation sur l’export d’Ultralytics.
- Problèmes de quantification : si tu utilises la quantification INT8, vérifie que le chemin d'accès à ton jeu de données est correctement indiqué dans le paramètre
data.
Pour obtenir d'autres conseils de dépannage, consulte notre guide des problèmes courants.
- Vérifie la compatibilité des paquets : assure-toi d’utiliser des versions compatibles d’Ultralytics, de