Comment exporter vers TF GraphDef à partir de YOLOv8 pour le déploiement ?
Lorsque tu déploies des modèles de vision artificielle de pointe, comme YOLOv8, dans différents environnements, tu peux rencontrer des problèmes de compatibilité. Google TensorFlow GraphDef , ou TF GraphDef , offre une solution en fournissant une représentation sérialisée et indépendante de la plate-forme de ton modèle. En utilisant le format de modèle TF GraphDef , tu peux déployer ton modèle YOLOv8 dans des environnements où l'écosystème TensorFlow complet n'est pas disponible, comme les appareils mobiles ou le matériel spécialisé.
Dans ce guide, nous allons t'expliquer pas à pas comment exporter tes modèles au format . Ultralytics YOLOv8 vers le format de modèle TF GraphDef . En convertissant ton modèle, tu peux rationaliser le déploiement et utiliser les capacités de vision par ordinateur de YOLOv8 dans un plus grand nombre d'applications et de plateformes.
Pourquoi exporter vers TF GraphDef ?
TF GraphDef est un composant puissant de l'écosystème TensorFlow qui a été développé par Google. Il peut être utilisé pour optimiser et déployer des modèles tels que YOLOv8. L'exportation vers TF GraphDef nous permet de faire passer les modèles de la recherche aux applications du monde réel. Il permet aux modèles de fonctionner dans des environnements sans le cadre complet de TensorFlow .
Le format GraphDef représente le modèle sous la forme d'un graphe de calcul sérialisé. Cela permet diverses techniques d'optimisation telles que le pliage constant, la quantification et les transformations de graphe. Ces optimisations garantissent une exécution efficace, une utilisation réduite de la mémoire et des vitesses d'inférence plus rapides.
GraphDef peuvent utiliser des accélérateurs matériels tels que les GPU, les TPU et les puces d'intelligence artificielle, ce qui permet de réaliser des gains de performance significatifs pour le pipeline d'inférence YOLOv8 . Le format TF GraphDef crée un paquet autonome avec le modèle et ses dépendances, ce qui simplifie le déploiement et l'intégration dans divers systèmes.
Caractéristiques principales des modèles TF GraphDef
TF GraphDef offre des caractéristiques distinctes pour rationaliser le déploiement et l'optimisation des modèles.
Voici un aperçu de ses principales caractéristiques :
-
Sérialisation des modèles: TF GraphDef fournit un moyen de sérialiser et de stocker les modèles TensorFlow dans un format indépendant de la plate-forme. Cette représentation sérialisée te permet de charger et d'exécuter tes modèles sans la base de code originale Python , ce qui facilite le déploiement.
-
Optimisation des graphes : TF GraphDef permet d'optimiser les graphes de calcul. Ces optimisations peuvent augmenter les performances en rationalisant le flux d'exécution, en réduisant les redondances et en adaptant les opérations à un matériel spécifique.
-
Flexibilité de déploiement: Les modèles exportés au format GraphDef peuvent être utilisés dans divers environnements, y compris les appareils à ressources limitées, les navigateurs Web et les systèmes dotés de matériel spécialisé. Cela ouvre des possibilités de déploiement plus large de tes modèles TensorFlow .
-
Production: GraphDef est conçu pour être déployé en production. Il prend en charge une exécution efficace, des fonctions de sérialisation et des optimisations qui s'alignent sur les cas d'utilisation du monde réel.
Options de déploiement avec TF GraphDef
Avant de nous plonger dans le processus d'exportation des modèles YOLOv8 vers TF GraphDef , examinons quelques situations de déploiement typiques où ce format est utilisé.
Voici comment tu peux déployer avec TF GraphDef de manière efficace sur différentes plateformes.
-
TensorFlow Servir : Ce cadre est conçu pour déployer les modèles TensorFlow dans des environnements de production. TensorFlow Serving offre la gestion des modèles, la gestion des versions et l'infrastructure pour un service de modèle efficace à l'échelle. C'est une façon transparente d'intégrer tes modèles basés sur GraphDef dans les services Web ou les API de production.
-
Appareils mobiles et embarqués : Avec des outils comme TensorFlow Lite, tu peux convertir les modèles TF GraphDef dans des formats optimisés pour les smartphones, les tablettes et divers appareils embarqués. Tes modèles peuvent ensuite être utilisés pour l'inférence sur l'appareil, où l'exécution se fait localement, ce qui permet souvent des gains de performance et des capacités hors ligne.
-
Navigateurs Web : TensorFlow.js permet de déployer des modèles TF GraphDef directement dans les navigateurs Web. Il ouvre la voie à des applications de détection d'objets en temps réel fonctionnant côté client, en utilisant les capacités de YOLOv8 par le biais de JavaScript.
-
Matériel spécialisé : TF La nature agnostique de la plate-formeGraphDef lui permet de cibler du matériel personnalisé, tel que des accélérateurs et des TPU (Tensor Processing Units). Ces appareils peuvent offrir des avantages en termes de performances pour les modèles à forte intensité de calcul.
Exporter les modèles YOLOv8 vers TF GraphDef
Tu peux convertir ton modèle de détection d'objets YOLOv8 au format TF GraphDef , qui est compatible avec différents systèmes, afin d'améliorer ses performances sur toutes les plateformes.
Installation
Pour installer le paquetage requis, exécute :
Pour des instructions détaillées et les meilleures pratiques liées au processus d'installation, consulte notre guide d'installationUltralytics . Pendant l'installation des paquets requis pour YOLOv8, si tu rencontres des difficultés, consulte notre guide des problèmes courants pour trouver des solutions et des conseils.
Utilisation
Avant de plonger dans les instructions d'utilisation, il est important de noter que si tous les modèlesUltralytics YOLOv8 sont disponibles pour l'exportation, tu peux t'assurer que le modèle que tu as choisi prend en charge la fonctionnalité d'exportation ici.
Utilisation
from ultralytics import YOLO
# Load the YOLOv8 model
model = YOLO('yolov8n.pt')
# Export the model to TF GraphDef format
model.export(format='pb') # creates 'yolov8n.pb'
# Load the exported TF GraphDef model
tf_graphdef_model = YOLO('yolov8n.pb')
# Run inference
results = tf_graphdef_model('https://ultralytics.com/images/bus.jpg')
Pour plus de détails sur les options d'exportation prises en charge, visite la page de documentationUltralytics sur les options de déploiement.
Déployer les modèles exportés YOLOv8 TF GraphDef
Une fois que tu as exporté ton modèle YOLOv8 au format TF GraphDef , l'étape suivante est le déploiement. La première étape recommandée pour exécuter un modèle TF GraphDef est d'utiliser la méthode YOLO("model.pb"), comme indiqué précédemment dans l'extrait de code d'utilisation.
Cependant, pour plus d'informations sur le déploiement de tes modèles TF GraphDef , jette un coup d'œil aux ressources suivantes :
-
TensorFlow Servir: Un guide sur TensorFlow Serving qui enseigne comment déployer et servir efficacement les modèles d'apprentissage automatique dans les environnements de production.
-
TensorFlow Lite: Cette page décrit comment convertir les modèles d'apprentissage automatique dans un format optimisé pour l'inférence sur l'appareil avec TensorFlow Lite.
-
TensorFlow.js: Un guide sur la conversion des modèles qui enseigne comment convertir les modèles TensorFlow ou Keras au format TensorFlow.js pour les utiliser dans les applications web.
Résumé
Dans ce guide, nous avons exploré comment exporter les modèles Ultralytics YOLOv8 au format TF GraphDef . En faisant cela, tu peux déployer de manière flexible tes modèles optimisés YOLOv8 dans différents environnements.
Pour plus de détails sur l'utilisation, consulte la documentation officielle deTF GraphDef .
Pour plus d'informations sur l'intégration de Ultralytics YOLOv8 avec d'autres plateformes et frameworks, n'oublie pas de consulter notre page de guide d'intégration. Elle contient d'excellentes ressources et des idées pour t'aider à tirer le meilleur parti de YOLOv8 dans tes projets.
Créé le 2024-03-22, Mis à jour le 2024-04-03
Auteurs : RizwanMunawar (1), Burhan-Q (1), abirami-vina (1)