Exporter vers le format de modèle TF.js à partir d'un format de modèle YOLO11
Le déploiement de modèles d'apprentissage automatique directement dans le navigateur ou sur Node.js peut être délicat. Vous devrez vous assurer que votre format de modèle est optimisé pour des performances plus rapides afin que le modèle puisse être utilisé pour exécuter des applications interactives localement sur l'appareil de l'utilisateur. Le format de modèle TensorFlow.js, ou TF.js, est conçu pour utiliser une puissance minimale tout en offrant des performances rapides.
La fonctionnalité « exporter au format de modèle TF.js » vous permet d'optimiser vos modèles Ultralytics YOLO11 pour une inférence de détection d'objets à haute vitesse et exécutée localement. Dans ce guide, nous vous expliquerons comment convertir vos modèles au format TF.js, ce qui facilitera l'exécution de vos modèles sur divers navigateurs locaux et applications Node.js.
Pourquoi exporter vers TF.js ?
L'exportation de vos modèles d'apprentissage automatique vers TensorFlow.js, développé par l'équipe TensorFlow dans le cadre de l'écosystème TensorFlow au sens large, offre de nombreux avantages pour le déploiement d'applications d'apprentissage automatique. Il contribue à améliorer la confidentialité et la sécurité des utilisateurs en conservant les données sensibles sur l'appareil. L'image ci-dessous montre l'architecture de TensorFlow.js, et comment les modèles d'apprentissage automatique sont convertis et déployés sur les navigateurs Web et Node.js.
L'exécution de modèles en local réduit également la latence et offre une expérience utilisateur plus réactive. TensorFlow.js est également livré avec des capacités hors ligne, permettant aux utilisateurs d'utiliser votre application même sans connexion Internet. TF.js est conçu pour une exécution efficace de modèles complexes sur des appareils dotés de ressources limitées, car il est conçu pour l'évolutivité, avec prise en charge de l'accélération GPU.
Principales caractéristiques de TF.js
Voici les principales caractéristiques qui font de TF.js un outil puissant pour les développeurs :
-
Prise en charge multiplateforme : TensorFlow.js peut être utilisé dans les environnements de navigateur et Node.js, offrant une flexibilité de déploiement sur différentes plateformes. Il permet aux développeurs de créer et de déployer plus facilement des applications.
-
Prise en charge de plusieurs backends : TensorFlow.js prend en charge divers backends pour le calcul, notamment le CPU, WebGL pour l'accélération GPU, WebAssembly (WASM) pour une vitesse d'exécution quasi native et WebGPU pour des capacités d'apprentissage automatique avancées basées sur le navigateur.
-
Capacités hors ligne : Avec TensorFlow.js, les modèles peuvent s'exécuter dans le navigateur sans nécessiter de connexion Internet, ce qui permet de développer des applications fonctionnelles hors ligne.
Options de déploiement avec TensorFlow.js
Avant de nous plonger dans le processus d'exportation des modèles YOLO11 au format TF.js, explorons quelques scénarios de déploiement typiques où ce format est utilisé.
TF.js offre une gamme d'options pour déployer vos modèles d'apprentissage automatique :
-
Applications ML dans le navigateur : Vous pouvez créer des applications web qui exécutent des modèles d'apprentissage automatique directement dans le navigateur. Le besoin de calcul côté serveur est éliminé et la charge du serveur est réduite.
-
Applications Node.js : TensorFlow.js prend également en charge le déploiement dans les environnements Node.js, ce qui permet le développement d’applications d’apprentissage automatique côté serveur. Il est particulièrement utile pour les applications qui nécessitent la puissance de traitement d’un serveur ou l’accès aux données côté serveur.
-
Extensions Chrome: Un scénario de déploiement intéressant est la création d'extensions Chrome avec TensorFlow.js. Par exemple, vous pouvez développer une extension qui permet aux utilisateurs de cliquer avec le bouton droit sur une image dans n'importe quelle page web pour la classifier à l'aide d'un modèle ML pré-entraîné. TensorFlow.js peut être intégré aux expériences de navigation web quotidiennes pour fournir des informations immédiates ou des augmentations basées sur l'apprentissage automatique.
Exporter des modèles YOLO11 vers TensorFlow.js
Vous pouvez étendre la compatibilité des modèles et la flexibilité du déploiement en convertissant les modèles YOLO11 au format TF.js.
Installation
Pour installer le paquet 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
Tous les modèles Ultralytics YOLO11 sont conçus pour prendre en charge l’exportation prête à l’emploi, ce qui facilite leur intégration à votre flux de travail de déploiement préféré. Vous pouvez consulter la liste complète des formats d’exportation et des options de configuration pris en charge pour choisir la meilleure configuration pour votre application.
Utilisation
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF.js format
model.export(format="tfjs") # creates '/yolo11n_web_model'
# Load the exported TF.js model
tfjs_model = YOLO("./yolo11n_web_model")
# Run inference
results = tfjs_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TF.js format
yolo export model=yolo11n.pt format=tfjs # creates '/yolo11n_web_model'
# Run inference with the exported model
yolo predict model='./yolo11n_web_model' source='https://ultralytics.com/images/bus.jpg'
Arguments d'exportation
Argument | Type | Par défaut | Description |
---|---|---|---|
format |
str |
'tfjs' |
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. |
half |
bool |
False |
Active la quantification FP16 (demi-précision), réduisant la taille du modèle et accélérant potentiellement l'inférence sur le matériel pris en charge. |
int8 |
bool |
False |
Active la quantification INT8, compressant davantage le modèle et accélérant l'inférence avec une perte de précision minimale, principalement pour les appareils périphériques. |
nms |
bool |
False |
Ajoute la suppression non maximale (NMS), essentielle pour un post-traitement de détection précis et efficace. |
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. |
device |
str |
None |
Spécifie le dispositif pour l'exportation : CPU (device=cpu ), MPS pour Apple Silicon (device=mps ). |
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 TensorFlow.js exportés
Maintenant que vous avez exporté votre modèle YOLO11 au format TF.js, l'étape suivante consiste à le déployer. La première étape, principale et recommandée, pour exécuter un modèle TF.js est d'utiliser le YOLO("./yolo11n_web_model")
méthode, comme indiqué précédemment dans l'extrait de code d'utilisation.
Cependant, pour des instructions détaillées sur le déploiement de vos modèles TF.js, consultez les ressources suivantes :
-
Extension Chrome : Voici la documentation du développeur sur la façon de déployer vos modèles TF.js sur une extension Chrome.
-
Exécuter TensorFlow.js dans Node.js : Un article de blog TensorFlow sur l'exécution de TensorFlow.js dans Node.js directement.
-
Déploiement de TensorFlow.js - Projet Node sur Cloud Platform : Un article de blog TensorFlow sur le déploiement d'un modèle TensorFlow.js sur une plateforme cloud.
Résumé
Dans ce guide, nous avons appris à exporter les modèles Ultralytics YOLO11 au format TensorFlow.js. En exportant vers TF.js, vous gagnez la flexibilité nécessaire pour optimiser, déployer et mettre à l'échelle vos modèles YOLO11 sur un large éventail de plateformes.
Pour plus de détails sur l'utilisation, consultez la documentation officielle de TensorFlow.js.
Pour plus d'informations sur l'intégration d'Ultralytics YOLO11 avec d'autres plateformes et frameworks, n'oubliez pas de consulter notre page de guide d'intégration. Elle regorge d'excellentes ressources pour vous aider à tirer le meilleur parti de YOLO11 dans vos projets.
FAQ
Comment exporter des modèles Ultralytics YOLO11 au format TensorFlow.js ?
L'exportation des modèles Ultralytics YOLO11 au format TensorFlow.js (TF.js) est simple. Vous pouvez suivre ces étapes :
Utilisation
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF.js format
model.export(format="tfjs") # creates '/yolo11n_web_model'
# Load the exported TF.js model
tfjs_model = YOLO("./yolo11n_web_model")
# Run inference
results = tfjs_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TF.js format
yolo export model=yolo11n.pt format=tfjs # creates '/yolo11n_web_model'
# Run inference with the exported model
yolo predict model='./yolo11n_web_model' source='https://ultralytics.com/images/bus.jpg'
Pour plus de détails sur les options d'exportation prises en charge, consultez la page de la documentation Ultralytics sur les options de déploiement.
Pourquoi devrais-je exporter mes modèles YOLO11 vers TensorFlow.js ?
L'exportation de modèles YOLO11 vers TensorFlow.js offre plusieurs avantages, notamment :
- Exécution locale : Les modèles peuvent s’exécuter directement dans le navigateur ou Node.js, ce qui réduit la latence et améliore l’expérience utilisateur.
- Prise en charge multiplateforme : TF.js prend en charge plusieurs environnements, ce qui permet une flexibilité de déploiement.
- Capacités hors ligne : Permet aux applications de fonctionner sans connexion Internet, assurant ainsi fiabilité et confidentialité.
- Accélération GPU : Exploite WebGL pour l'accélération GPU, optimisant les performances sur les appareils aux ressources limitées.
Pour un aperçu complet, consultez nos Intégrations avec TensorFlow.js.
Comment TensorFlow.js profite-t-il aux applications d'apprentissage automatique basées sur navigateur ?
TensorFlow.js est spécialement conçu pour l'exécution efficace de modèles ML dans les navigateurs et les environnements Node.js. Voici comment il profite aux applications basées sur navigateur :
- Réduit la latence : Exécute les modèles d'apprentissage automatique localement, fournissant des résultats immédiats sans dépendre des calculs côté serveur.
- Améliore la confidentialité : Conserve les données sensibles sur l'appareil de l'utilisateur, minimisant ainsi les risques de sécurité.
- Permet une utilisation hors ligne : Les modèles peuvent fonctionner sans connexion Internet, assurant une fonctionnalité constante.
- Prend en charge plusieurs backends : Offre une flexibilité avec des backends tels que CPU, WebGL, WebAssembly (WASM) et WebGPU pour différents besoins de calcul.
Vous souhaitez en savoir plus sur TF.js ? Consultez le guide officiel de TensorFlow.js.
Quelles sont les principales caractéristiques de TensorFlow.js pour le déploiement de modèles YOLO11 ?
Les principales caractéristiques de TensorFlow.js sont les suivantes :
- Prise en charge multiplateforme : TF.js peut être utilisé à la fois dans les navigateurs Web et dans Node.js, offrant une grande flexibilité de déploiement.
- Plusieurs backends : Prend en charge CPU, WebGL pour l’accélération GPU, WebAssembly (WASM) et WebGPU pour les opérations avancées.
- Capacités hors ligne : Les modèles peuvent s'exécuter directement dans le navigateur sans connectivité Internet, ce qui est idéal pour développer des applications web réactives.
Pour les scénarios de déploiement et des informations plus approfondies, consultez notre section sur les Options de déploiement avec TensorFlow.js.
Puis-je déployer un modèle YOLO11 sur des applications Node.js côté serveur en utilisant TensorFlow.js ?
Oui, TensorFlow.js permet le déploiement de modèles YOLO11 sur des environnements Node.js. Cela permet des applications d'apprentissage automatique côté serveur qui bénéficient de la puissance de traitement d'un serveur et de l'accès aux données côté serveur. Les cas d'utilisation typiques incluent le traitement des données en temps réel et les pipelines d'apprentissage automatique sur les serveurs backend.
Pour commencer avec le déploiement de Node.js, consultez le guide Exécuter TensorFlow.js dans Node.js de TensorFlow.