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 par ordinateur comme Ultralytics YOLO11 plus efficace et 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 comme Ultralytics YOLO11, il existe de multiples techniques et options de déploiement parmi lesquelles vous pouvez choisir, et cela dépend de l'application spécifique que vous construisez. Par exemple, des techniques comme la conteneurisation peuvent simplifier le flux de travail 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 de 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

Prenons l'exemple d'une ville qui souhaite déployer un système de surveillance du trafic utilisant la vision par ordinateur pour détecter et classer les véhicules en temps réel. Le déploiement de ce système sur plusieurs sites, chacun ayant des conditions matérielles et de réseau différentes, peut s'avérer difficile. Les problèmes de compatibilité, les conflits de dépendances et les environnements incohérents peuvent entraîner des performances peu fiables.

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

__wf_reserved_inherit
Fig 4. Fonctionnement de Docker.

Par exemple, en déployant des modèles de vision artificielle conteneurisés avec Docker à plusieurs intersections, la ville peut analyser le flux de circulation, détecter les infractions et optimiser les feux de circulation. Étant donné que Docker facilite un environnement standardisé sur tous les sites, la maintenance est plus facile, les mises à jour sont transparentes et les performances restent cohérentes.

Déploiement de YOLO11 à l'aide de Docker

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

Par exemple, YOLO11 peut traiter des flux vidéo dans des applications de fitness pour suivre des exercices comme les pompes en utilisant l'estimation de 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 des entraînements et l'analyse des performances.

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

Si nous voulons déployer un tel modèle dans des applications du monde réel, 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 regroupant 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 rapide 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 de YOLO11 qui peuvent être déployées à l'aide de Docker

Passons en revue quelques exemples d'applications de vision par ordinateur qui peuvent être construites en utilisant YOLO11 et Docker. 

Surveillance du trafic à l'aide de YOLO11

Plus tôt, nous avons discuté 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 YOLO11 peut aider à construire 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 détecter et suivre les véhicules en temps réel. En identifiant en permanence les positions, les vitesses et les schémas de mouvement des véhicules, le système peut surveiller les niveaux de congestion, détecter les infractions au code de la route (telles que les passages au feu rouge ou les virages illégaux) et optimiser les feux de circulation en fonction des données en temps réel.

De plus, le déploiement de YOLO11 sur des appareils edge ou des plateformes basées sur le cloud à l'aide de Docker assure un traitement efficace et une évolutivité, 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.

Physiothérapie améliorée 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 de l'épaule mais ne lève pas le bras à la bonne hauteur ou compense avec une mauvaise posture, le système peut détecter ces erreurs et fournir des corrections instantanées. Cela permet aux thérapeutes d'ajuster les traitements en temps réel.

Les capacités d'estimation de pose de YOLO11 peuvent être utilisées pour détecter les points clés du corps et analyser les mouvements des articulations. Il peut traiter des flux vidéo en direct pour fournir une rétroaction instantanée, aidant ainsi les thérapeutes à corriger la posture, à améliorer la précision des mouvements et à prévenir les blessures. Cela facilite la création de 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 nature légère, portable et évolutive, ces technologies modifient la façon dont les modèles comme 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 garantissant 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 la fabrication. Explorez nos options de licence yolo pour commencer avec la Vision IA.

Construisons ensemble l'avenir
de l'IA !

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

Démarrer gratuitement
Lien copié dans le presse-papiers