Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant

Conteneurisation avec Docker pour rationaliser le déploiement de modèles

Abirami Vina

5 min de lecture

5 février 2025

Découvrez comment l'utilisation de Docker pour la conteneurisation rend le déploiement de modèles de vision artificielle comme Ultralytics YOLO11 plus efficace et plus simple.

Le processus de construction d'une solution de vision par ordinateur implique plus d'étapes que la simple formation et le test d'un modèle. En fait, l'une des parties les plus intéressantes de la création de modèles de pointe est de les voir avoir un impact dans des environnements réels. L'utilisation de la vision par ordinateur pour résoudre des problèmes conduit naturellement au déploiement en production des modèles de vision par ordinateur que vous développez.

Le déploiement de modèles implique diverses étapes, notamment l'optimisation des modèles pour la fiabilité, l'évolutivité et la performance dans diverses conditions. Un flux de travail de déploiement bien structuré comble le fossé entre le développement du modèle et l'impact significatif du modèle qui fait la différence. 

Souvent, lors du déploiement de modèles de vision par ordinateur tels que Ultralytics YOLO11il existe plusieurs techniques et options de déploiement que vous pouvez choisir, et cela dépend de l'application spécifique que vous construisez. Par exemple, des techniques telles que la conteneurisation peuvent simplifier le processus de déploiement. 

La conteneurisation aide à empaqueter un modèle et ses dépendances, comme les bibliothèques, les frameworks et les configurations, dans une seule unité autonome appelée conteneur. L'une des façons les plus efficaces et les plus populaires de le faire est avec Docker, une plateforme open-source qui facilite la construction, l'expédition et l'exécution d'applications conteneurisées.

Dans cet article, nous allons explorer comment la conteneurisation et Docker rationalisent le déploiement de modèles, assurant une évolutivité et une efficacité transparentes dans les applications Vision AI du monde réel.

Qu'est-ce que le déploiement de modèles ?

Le déploiement de modèle est l'étape finale du cycle de vie du machine learning, où le modèle entraîné est introduit dans un environnement de production pour faire des prédictions dans le monde réel. Un déploiement réussi est un élément clé pour que le modèle fonctionne de manière fiable dans des conditions pratiques. 

Par exemple, prenons un modèle de vision artificielle conçu pour identifier les plaques d'immatriculation pour la perception automatisée des péages. Bien qu'il puisse atteindre une grande précision dans un environnement contrôlé avec des ensembles de données bien étiquetés, son déploiement sur des caméras routières peut introduire des problèmes de latence en raison de facteurs tels que le traitement d'images haute résolution, les retards de réseau, les limitations matérielles et les contraintes d'inférence en temps réel. 

Des prédictions lentes pourraient entraîner des retards dans le traitement des péages, des embouteillages, voire des détections manquées. Des stratégies de déploiement de modèles appropriées peuvent aider à réduire la latence, à améliorer l'efficacité et à assurer des performances fiables dans les applications du monde réel.

__wf_reserved_inherit
Fig. 1. Détection des plaques d'immatriculation à l'aide de YOLO11.

De plus, il y a plusieurs éléments à garder à l'esprit lors du déploiement de modèles. L'un d'eux est la scalabilité, où les modèles fonctionnent bien pendant l'entraînement, mais peuvent avoir du mal à gérer des données à grande échelle.

Un autre problème est celui des inadéquations environnementales, comme les différences de matériel, lorsqu'un modèle est entraîné sur des GPU (Graphics Processing Units) haute performance, mais déployé sur des appareils dotés d'une puissance de traitement limitée. Ces incohérences dans le déploiement peuvent entraîner un comportement imprévisible du modèle. Des solutions avancées comme la conteneurisation peuvent être utilisées pour relever ces défis.

Conteneurisation

La conteneurisation peut être comparée à la préparation de votre boîte à lunch, qui contient tout ce dont vous avez besoin pour un repas, comme de la nourriture, des couverts et des condiments. Vous pouvez manger n'importe où sans vous soucier de trouver une cuisine ou des ustensiles spécifiques. 

De même, la conteneurisation regroupe un modèle avec toutes ses dépendances, telles que les bibliothèques, les frameworks et les configurations, dans une seule unité appelée conteneur. Ces conteneurs garantissent que le modèle fonctionne de manière cohérente en fournissant les mêmes dépendances sur n'importe quel système, quel que soit l'environnement sous-jacent. Contrairement aux machines virtuelles, qui transportent des systèmes d'exploitation entiers, les conteneurs sont légers et portables, ce qui en fait une alternative efficace.

__wf_reserved_inherit
Fig 2. Un aperçu de la conteneurisation.

Voici quelques-uns des principaux avantages de la conteneurisation :

  • Contrôle de version : Grâce à la conteneurisation, différentes versions d'un modèle ou d'une pile logicielle peuvent coexister, ce qui permet des restaurations et des mises à jour faciles sans perturber les systèmes de production.
  • Sécurité : Les conteneurs isolent les applications du système sous-jacent, réduisant ainsi le risque de conflits, de vulnérabilités et d'accès non autorisés.
  • Déploiement rapide : Les images de conteneurs préconfigurées permettent des déploiements rapides et reproductibles, réduisant le temps de configuration et minimisant les erreurs de déploiement.

Docker : simplification de la conteneurisation

Bien que la conteneurisation soit un excellent moyen d'exécuter des applications dans des environnements isolés, sa configuration peut être compliquée. C'est là que Docker entre en jeu. Docker est une plateforme open source qui simplifie la création, le déploiement et la gestion d'applications conteneurisées.

Il fournit un environnement cohérent et isolé, ainsi que les outils et frameworks nécessaires pour tester le modèle. Plus précisément, Docker est connu pour son écosystème solide et sa facilité d'utilisation. Il facilite le déploiement des modèles d'IA en simplifiant le processus, en fonctionnant de manière fluide avec les plateformes cloud et en permettant aux modèles d'IA de fonctionner efficacement sur les appareils edge pour des résultats plus rapides.

De nombreuses industries l'utilisent activement pour déployer et gérer efficacement des applications conteneurisées. Le déploiement de modèles basé sur Docker comprend généralement trois composantes principales :

  • Dockerfile : Un fichier de configuration textuel qui sert de plan pour la création d'une image Docker. Il contient toutes les instructions nécessaires, y compris l'image de base, les dépendances requises, les paramètres d'environnement et les commandes pour exécuter le modèle.
  • Images Docker : Fichiers de paquets préconfigurés qui incluent tout ce qui est nécessaire à l'exécution du modèle, tels que le code, les bibliothèques, les environnements d'exécution et les dépendances. Ces images garantissent que le modèle s'exécute avec la même configuration sur n'importe quel système.
  • Conteneurs Docker : Exécution d'instances d'images Docker qui fournissent un environnement isolé et sécurisé pour l'exécution du modèle. Dans cet environnement, le modèle peut être entraîné, testé et affiné sans interférer avec d'autres applications ou avec le système hôte.
__wf_reserved_inherit
Fig. 3. Comprendre les composants clés de Docker.

Exploration d'une application de vision par ordinateur utilisant Docker

Supposons qu'une ville souhaite déployer un système de surveillance du trafic utilisant la vision par ordinateur pour detect et classify véhicules en temps réel. Le déploiement de ce système sur plusieurs sites, chacun avec un matériel et des conditions de réseau différents, peut s'avérer difficile. Les problèmes de compatibilité, les conflits de dépendance et les environnements incohérents peuvent entraîner un manque de fiabilité des performances.

En utilisant Docker, les développeurs peuvent regrouper l'ensemble du modèle de vision par ordinateur, ainsi que ses dépendances (telles que les cadres d'IA comme TensorFlow et les scripts personnalisés), dans un conteneur. Cela permet de s'assurer que le modèle fonctionne de manière cohérente dans différents environnements, qu'il s'agisse de développement local, de serveurs basés sur le cloud ou même d'appareils périphériques installés sur des caméras de circulation.

__wf_reserved_inherit
Fig 4. Fonctionnement de Docker.

Par exemple, en déployant des modèles de vision artificielle Dockerisés à plusieurs carrefours, la ville peut analyser le flux de circulation, detect infractions et optimiser les feux de circulation. Comme Docker facilite un environnement standardisé sur tous les sites, la maintenance est plus facile, les mises à jour sont transparentes et les performances restent constantes.

Déployer YOLO11 avec Docker

YOLO11, avec sa capacité à effectuer des tâches complexes de vision par ordinateur, peut être utilisé dans diverses industries, telles que la fabrication, les soins de santé, la conduite autonome et l'agriculture. 

Par exemple, YOLO11 peut traiter les flux vidéo dans les applications de fitness pour track exercices comme les pompes en utilisant l'estimation de la pose. En détectant les mouvements du corps et en comptant les répétitions en temps réel, il contribue à améliorer le suivi de l'entraînement et l'analyse des performances.

__wf_reserved_inherit
Fig. 5. Suivi d'une séance d'entraînement à l'aide de YOLO11.

Si nous voulons déployer un tel modèle dans des applications réelles, nous devons gérer les dépendances, optimiser le matériel et garantir des performances cohérentes dans différents environnements. L'utilisation de Docker simplifie ce processus en empaquetant YOLO11 avec toutes les bibliothèques et configurations nécessaires, ce qui rend le déploiement plus efficace, évolutif et fiable.

Voici un aperçu des avantages du déploiement de YOLO11 à l'aide de Docker:

  • Maintenance simplifiée: Docker simplifie le processus de mise à jour et de maintenance de YOLO11 et de ses dépendances. Les mises à jour peuvent être appliquées à l'image du conteneur sans affecter le système hôte, ce qui garantit une gestion fluide et efficace du modèle.
  • Collaboration simplifiée : les développeurs et les chercheurs peuvent facilement partager des conteneurs Docker préconfigurés, garantissant ainsi que les équipes travaillent avec le même environnement et évitant les problèmes de compatibilité.
  • Efficacité des ressources : Contrairement aux machines virtuelles traditionnelles, les conteneurs Docker partagent le système d'exploitation hôte, ce qui réduit la surcharge et améliore l'utilisation des ressources, ce qui est essentiel pour les tâches d'inférence en temps réel.

Applications YOLO11 pouvant être déployées à l'aide de Docker

Voyons quelques exemples d'applications de vision par ordinateur qui peuvent être créées à l'aide de YOLO11 et de Docker. 

Surveillance du trafic à l'aide de YOLO11

Précédemment, nous avons parlé de la surveillance du trafic à l'aide de la vision par ordinateur. Il est intéressant de noter que la prise en charge du suivi d'objets par YOLO11peut contribuer à la mise en place d'un système complet de gestion du trafic. Comment cela fonctionne-t-il ?

YOLO11 peut analyser les flux vidéo en direct des caméras de circulation pour detect et track véhicules en temps réel. En identifiant en permanence la position, la vitesse et les mouvements des véhicules, le système peut surveiller les niveaux d'encombrement, detect infractions au code de la route (comme le franchissement de feux rouges ou les virages illégaux) et optimiser les feux de signalisation sur la base de données en temps réel.

En outre, le déploiement de YOLO11 sur des appareils périphériques ou des plateformes basées sur le cloud à l'aide de Docker garantit un traitement et une évolutivité efficaces, ce qui en fait un outil précieux pour la gestion du trafic dans les villes intelligentes.

__wf_reserved_inherit
Fig. 6. Suivi et comptage de véhicules à l'aide de YOLO11.

Amélioration de la physiothérapie avec YOLO11

Dans le domaine de la santé, la physiothérapie est essentielle à la rééducation, et une posture et des mouvements appropriés sont cruciaux pour une récupération réussie. Un retour d'information en temps réel provenant d'un système de surveillance des patients basé sur la vision peut aider les thérapeutes à identifier des problèmes tels que des angles articulaires incorrects ou des déséquilibres musculaires. 

Par exemple, si un patient effectue une élévation des épaules mais ne lève pas son bras à la bonne hauteur ou compense par une mauvaise posture, le système peut detect ces erreurs et fournir des corrections instantanées. Les thérapeutes peuvent ainsi ajuster les traitements en temps réel.

Les capacités d'estimation de la pose de YOLO11peuvent être utilisées pour detect points clés du corps et analyser les mouvements des articulations. Il peut traiter des flux vidéo en direct pour fournir un retour d'information instantané, aidant ainsi les thérapeutes à corriger la posture, à améliorer la précision des mouvements et à prévenir les blessures. Il est ainsi plus facile de créer des plans de traitement personnalisés en fonction des progrès de chaque patient.

__wf_reserved_inherit
Fig. 7. Exemple de suivi de la physiothérapie avec YOLO11.

En ce qui concerne le déploiement de ce type de solution, l'utilisation de Docker peut garantir un fonctionnement fluide dans différents environnements, que ce soit dans les cliniques ou pour la surveillance à distance des patients. Docker simplifie le déploiement, améliore l'évolutivité et maintient la cohérence du système, ce qui rend les outils de physiothérapie basés sur l'IA plus fiables et accessibles.

Principaux points à retenir

Le déploiement d'un modèle de vision par ordinateur est une étape essentielle pour le faire passer du développement à une utilisation réelle. Un processus de déploiement fluide garantit que le modèle entraîné fonctionne de manière fiable dans les applications pratiques. Des outils tels que Docker et la conteneurisation ont facilité ce processus en supprimant de nombreux défis traditionnels. 

Grâce à leur légèreté, leur portabilité et leur évolutivité, ces technologies modifient la manière dont les modèles tels que YOLO11 sont construits et déployés. En utilisant la conteneurisation, les entreprises peuvent gagner du temps, réduire les coûts et améliorer l'efficacité tout en s'assurant que les modèles fonctionnent de manière cohérente dans différents environnements.

Rejoignez notre communauté et consultez notre dépôt GitHub pour en savoir plus sur l'IA. Découvrez diverses applications de la vision par ordinateur dans le domaine de la santé et de l 'IA dans le secteur de la fabrication. Explorez nos options de licence yolo pour commencer à utiliser Vision AI.

Construisons ensemble l'avenir
de l'IA !

Commencez votre parcours avec l'avenir de l'apprentissage automatique

Démarrer gratuitement