Export de modèle TFLite pour le déploiement (obsolète)#
À partir d'Ultralytics 8.4.83, le format d'export autonome tflite a été supprimé et remplacé par le format unifié Google LiteRT. LiteRT (Lite Runtime) est la nouvelle génération et le nouveau nom de TensorFlow Lite, et il exporte le même modèle .tflite — couvrant désormais le déploiement sur mobile, appareils embarqués, edge et navigateur en un seul format.
format="tflite" fonctionne toujours mais émet un avertissement de dépréciation et exporte un modèle LiteRT à la place. Utilise format="litert" pour la suite ; pour les instructions et options d'export actuelles, consulte le guide d'export LiteRT.
Le déploiement de modèles de vision par ordinateur sur des appareils edge ou embarqués nécessite un format capable de garantir des performances fluides.
L'ancien format d'export TensorFlow Lite ou TFLite optimisait les modèles Ultralytics YOLO26 pour des tâches telles que la détection d'objets et la classification d'images dans les applications edge. Ce guide préserve le contexte de déploiement TFLite existant ; utilise LiteRT pour les nouveaux exports.
Pourquoi TFLite était-il utilisé pour l'exportation ?#
Introduit par Google en mai 2017 dans le cadre de son framework TensorFlow, TensorFlow Lite, ou TFLite pour faire court, était un framework d'apprentissage profond open source conçu pour l'inférence sur appareil, également connu sous le nom d'edge computing. 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 traditionnels.
TensorFlow Lite prenait en charge un large éventail de plateformes, notamment Linux embarqué, Android, iOS et les microcontrôleurs (MCU). Les exportations TFLite permettaient aux applications d'exécuter des modèles localement et hors ligne.
Fonctionnalités clés des modèles TFLite#
Les modèles TFLite offrent un large éventail de fonctionnalités clés qui permettent l'apprentissage automatique sur appareil en aidant les développeurs à exécuter leurs modèles sur des appareils mobiles, embarqués et de périphérie :
-
Optimisation sur appareil : TFLite optimise pour le ML sur appareil, réduisant la latence en traitant les données localement, améliorant la confidentialité en ne transmettant pas de données personnelles, et minimisant la taille du modèle pour économiser de l'espace.
-
Prise en charge multiplateforme : TFLite offre une compatibilité étendue avec les plateformes, prenant en charge Android, iOS, Linux embarqué et les microcontrôleurs.
-
Prise en charge de divers langages : TFLite est compatible avec divers langages de programmation, dont Java, Swift, Objective-C, C++ et Python.
-
Haute performance : Atteint des performances supérieures grâce à l'accélération matérielle et à l'optimisation des modèles.
Performances mesurées (historique)#
Ces résultats ont été enregistrés avec le plugin 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 processeur 3 nm Snapdragon 8 Elite Gen 5 (SM8850) possède un processeur 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 anciens éléments TFLite INT8 onnx2tf avec les exports litert-torch candidats évalués pendant la migration. Les éléments de la version ont ensuite été écrasés par les exports standardisés, ces chiffres ne décrivent donc pas les octets de l'élément actuel v0.6.6. Consulte les tableaux de performance LiteRT pour les mesures actuelles.
Les deux formats ont fonctionné lors du même balayage GPU consécutif aux tailles d'entrée indiquées. Chaque cellule correspond au temps total (prétraitement + inférence + post-traitement), avec la répartition par étape en dessous ; les journaux natifs ont confirmé que les deux formats ont délégué le graphe complet à LiteRT OpenCL (LITERT_CL) sur le GPU Adreno.
| Modèle | Tâche | taille (pixels) | Hérité onnx2tf INT8 TFLite (ms) | Candidat w8a32 LiteRT (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 exécution de migration a également comparé les formats de quantification de détection YOLO26n. L'inférence est la métrique comparable et dépendante du format :
| Format Android | Inférence GPU (ms) | Compilation GPU |
|---|---|---|
| onnx2tf INT8 (TFLite hérité) | 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 CPU | non |
Dans cette exécution, w8a16 est repassé sur le CPU à environ 660 ms au total contre environ 17 ms pour les formats GPU. Ces résultats ont motivé la livraison de w8a32, mais la compatibilité et les performances des délégués dépendent de l'appareil et de la version du runtime. Évalue l'appareil cible et confirme le placement de l'accélérateur dans ses journaux d'exécution.
Options de déploiement dans TFLite#
Avant de regarder l'exemple d'exportation de remplacement LiteRT, comprenons comment les modèles TFLite sont normalement utilisés.
TFLite propose diverses 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 dotées de TFLite peuvent analyser les flux de caméras et les capteurs en périphérie pour détecter et identifier des objets. TFLite propose également des bibliothèques iOS natives écrites en Swift et Objective-C. Le diagramme d'architecture ci-dessous illustre le processus de déploiement d'un modèle entraîné sur les plateformes Android et iOS à l'aide de TensorFlow Lite.
-
Implémentation avec Embedded Linux : 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 les temps d'inférence. De plus, il est possible d'améliorer encore les performances en utilisant un appareil Coral Edge TPU.
-
Déploiement avec des microcontrôleurs : Les modèles TFLite peuvent également être déployés sur des microcontrôleurs et d'autres appareils avec seulement quelques kilo-octets de mémoire. Le runtime de base tient dans 16 Ko sur un Arm Cortex M3 et peut exécuter de nombreux modèles basiques. Il ne nécessite pas de support de système d'exploitation, de bibliothèques C ou C++ standard, ni d'allocation dynamique de mémoire.
Remplacer l'exportation TFLite par LiteRT#
Pour les nouveaux exports, convertis ton modèle au format LiteRT. Le modèle résultant conserve l'extension de fichier .tflite.
Installation#
Pour installer les paquets requis, exécute :
# Install the required package for YOLO26
pip install ultralyticsPour 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#
Tous les modèles Ultralytics YOLO26 sont conçus pour prendre en charge l'exportation dès leur sortie de la boîte, ce qui facilite leur intégration dans ton flux de travail de déploiement préféré. Tu peux consulter la liste complète des formats d'export pris en charge et des options de configuration pour choisir la meilleure configuration pour 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 exporté .tflite pour exécuter l'inférence ou valider sa précision.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to LiteRT format
model.export(format="litert", imgsz=640) # use imgsz=224 for classificationfrom ultralytics import YOLO
# Load the exported TFLite model
model = YOLO("yolo26n.tflite")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported TFLite model
model = YOLO("yolo26n.tflite")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Arguments d'exportation#
| Argument | Type | Défaut | Description |
|---|---|---|---|
format | str | 'litert' | 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 des images carrées ou un tuple (height, width) pour des dimensions spécifiques. |
quantize | int ou str | None | Précision de quantification : 8 (INT8 statique, poids int8 + activations int8 ; nécessite un étalonnage data/fraction), 'w8a16' (statique, poids int8 + activations int16 ; nécessite un étalonnage data/fraction), 'w8a32' (INT8 dynamique, poids int8 + activations FP32 ; aucun étalonnage nécessaire), ou 32/non défini (FP32). Le format FP16 n'est pas exporté séparément — un modèle FP32 s'exécute en FP16 automatiquement sur les délégués GPU. Remplace les indicateurs dépréciés half/int8. |
batch | int | 1 | Spé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. |
data | str | None | Chemin d'accès au fichier YAML du jeu de données, essentiel pour la quantification ; la classification requiert quant à elle un répertoire de jeu de données ou un nom de jeu de données intégré. S'il est omis avec quantize=8 ou 'w8a16', Ultralytics sélectionne le jeu de données de calibrage par défaut pour la tâche du modèle. |
fraction | float, int ou list | 1.0 | Sous-ensemble de calibration sous forme de rapport, de nombre d'images ou de rapports/comptes [train, val, test]. Les listes à deux éléments laissent test complet, tandis que 0 l'ignore. |
device | str | None | Spécifie l'appareil pour l'exportation : CPU (device=cpu), MPS pour Apple Silicon (device=mps). |
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 TFLite exportés#
Après avoir exporté ton modèle Ultralytics YOLO26 au format LiteRT, tu peux déployer le modèle .tflite résultant. La première étape principale et recommandée pour exécuter un modèle TFLite consiste à utiliser la méthode YOLO("model.tflite"), comme indiqué dans l'extrait de code d'utilisation précédent. Cependant, pour des instructions approfondies sur le déploiement de tes modèles TFLite dans divers autres contextes, jette un œil aux ressources suivantes :
-
Android : Un guide de démarrage rapide pour intégrer TensorFlow Lite dans les applications Android, fournissant 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, offrant des instructions étape par étape et des ressources.
-
Exemples de bout en bout : Cette page offre un aperçu de divers exemples TensorFlow Lite, présentant des applications pratiques et des tutoriels conçus pour aider les développeurs à implémenter TensorFlow Lite dans leurs projets d'apprentissage automatique sur appareils mobiles et edge.
Résumé#
Ce guide préserve le flux de travail de déploiement TFLite hérité. Pour les nouveaux exports, utilise LiteRT pour créer des modèles .tflite pour les environnements d'edge computing.
Pour plus de détails sur l'utilisation, visite la documentation officielle de TFLite.
De plus, si tu t'intéresses à d'autres intégrations d'Ultralytics YOLO26, consulte notre page de guide d'intégration. Tu y trouveras de nombreuses informations et perspectives utiles.
FAQ#
TensorFlow Lite (TFLite) est un framework d'apprentissage profond open source 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. Les principaux avantages incluent :
- Optimisation sur appareil : Minimise la latence et améliore la confidentialité en traitant les données localement.
- Compatibilité de plateforme : Prend en charge Android, iOS, Linux embarqué et MCU.
- Performance : Utilise l'accélération matérielle pour optimiser la vitesse et l'efficacité du modèle.
Pour en savoir plus, consulte le guide TFLite.
Oui, tu peux exécuter des modèles YOLO26 TFLite sur Raspberry Pi pour améliorer les vitesses d'inférence. Tout d'abord, exporte ton modèle au format LiteRT comme expliqué ci-dessus. Ensuite, utilise un outil comme TensorFlow Lite Interpreter pour exécuter le modèle sur ton Raspberry Pi.
Pour d'autres optimisations, tu peux envisager d'utiliser Coral Edge TPU. Pour des étapes détaillées, réfère-toi à notre guide de déploiement sur Raspberry Pi et au guide d'intégration Edge TPU.
Oui, TFLite prend en charge le déploiement sur des microcontrôleurs avec des ressources limitées. Le runtime de base de TFLite ne nécessite que 16 Ko de mémoire sur un Arm Cortex M3 et peut exécuter des modèles YOLO26 basiques. Cela le rend adapté au déploiement sur des appareils avec une puissance de calcul et une mémoire minimales.
Pour commencer, visite le guide TFLite Micro pour microcontrôleurs.
TensorFlow Lite offre une compatibilité étendue avec les plateformes, te permettant de déployer des modèles YOLO26 sur une large gamme d'appareils, notamment :
- Android et iOS : Support natif via les bibliothèques Android et iOS TFLite.
- Linux embarqué : Idéal pour les ordinateurs monocarte tels que Raspberry Pi.
- Microcontrôleurs : Adapté aux MCU avec des ressources limitées.
Pour plus d'informations sur les options de déploiement, consulte notre guide de déploiement détaillé.
Si tu rencontres des erreurs lors de l'exportation de modèles YOLO26 vers LiteRT, les solutions courantes incluent :
- Vérifier la compatibilité des paquets : Assure-toi d'utiliser des versions compatibles d'Ultralytics, de
litert-torchet deai-edge-litert. Réfère-toi à notre guide d'installation. - Prise en charge des modèles : Vérifie que le modèle YOLO26 spécifique prend en charge l'export LiteRT en consultant la page de documentation sur l'export d'Ultralytics.
- Problèmes de quantification : Lors de l'utilisation de la quantification INT8, assure-toi que le chemin de ton dataset est correctement spécifié dans le paramètre
data.
Pour des conseils de dépannage supplémentaires, visite notre guide des problèmes courants.
- Vérifier la compatibilité des paquets : Assure-toi d'utiliser des versions compatibles d'Ultralytics, de
Pour une nouvelle exportation, utilise le format LiteRT. Tout d'abord, installe le package requis en utilisant :
Ensuite, utilise l'extrait de code suivant pour exporter ton modèle :
Pour les utilisateurs de CLI, tu peux y parvenir avec :
Pour plus de détails, consulte le guide d'exportation Ultralytics.