Contrôle vert
Lien copié dans le presse-papiers

Conteneurisation à l'aide de Docker pour rationaliser le déploiement des modèles.

Découvre 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 plus simple.

Le processus de création d'une solution de vision par ordinateur comporte plus d'étapes que la simple formation et le test d'un modèle. En fait, l'une des parties les plus passionnantes de la création de modèles de pointe est de les voir avoir un impact dans des environnements réels. L'utilisation de l'IA de vision pour résoudre des problèmes conduit naturellement à déployer les modèles de vision par ordinateur que tu développes en production.

Le déploiement d'un modèle comporte plusieurs étapes, notamment l'optimisation des modèles en termes de fiabilité, d'évolutivité et de performance dans diverses conditions. Un flux de travail de déploiement bien structuré permet de combler le fossé entre le développement du modèle et le modèle ayant un impact significatif qui fait la différence. 

Souvent, lorsqu'on déploie des modèles de vision par ordinateur comme Ultralytics YOLO11il existe plusieurs techniques et options de déploiement parmi lesquelles tu peux choisir, et cela dépend de l'application spécifique que tu es en train de construire. Par exemple, des techniques comme la conteneurisation peuvent simplifier le flux de travail de déploiement. 

La conteneurisation permet d'empaqueter un modèle et ses dépendances, comme les bibliothèques, les frameworks et les configurations, dans une unité unique et 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 des modèles, garantissant 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 du modèle est l'étape finale du cycle de vie de l'apprentissage automatique, où le modèle formé 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. 

Prenons l'exemple d'un modèle de vision par ordinateur conçu pour identifier les plaques d'immatriculation dans le cadre d'un système de péage automatisé. 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 en bord de route 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 peuvent entraîner des retards dans le traitement des péages, des encombrements ou même 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 à soutenir des performances fiables dans les applications du monde réel.

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

De plus, il y a plusieurs considérations à garder à l'esprit lors du déploiement des modèles. L'un d'entre eux est l'évolutivité, où les modèles fonctionnent bien pendant la formation mais peuvent avoir du mal à gérer des données à grande échelle.

Une autre est l'inadéquation de l'environnement, comme les différences matérielles, lorsqu'un modèle est entraîné sur des GPU (unités de traitement graphique) très performants mais déployé sur des appareils dont la puissance de traitement est limitée. Ces incohérences dans le déploiement peuvent entraîner un comportement imprévu 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 à l'emballage de ta boîte à lunch, qui contient tout ce dont tu as besoin pour un repas, comme la nourriture, les couverts et les condiments. Tu peux manger n'importe où sans te 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 cadres et les configurations, en une seule unité appelée conteneur. Ces conteneurs permettent de s'assurer 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.

Fig 2. Vue d'ensemble de la conteneurisation.

Voici quelques-uns des principaux avantages de la conteneurisation :

  • Contrôle de version : Avec la conteneurisation, différentes versions d'un modèle ou d'une pile logicielle peuvent coexister, ce qui permet des retours en arrière et des mises à jour faciles sans perturber les systèmes de production.
  • Sécurité : Les conteneurs isolent les applications du système sous-jacent, ce qui réduit les risques 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, ce qui réduit le temps de configuration et minimise les erreurs de déploiement.

Docker : simplifier la conteneurisation

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

Il fournit un environnement cohérent et isolé ainsi que les outils et cadres nécessaires pour tester le modèle. Plus précisément, Docker est connu pour son solide écosystème et sa facilité d'utilisation. Il facilite le déploiement des modèles d'IA en simplifiant le processus, en fonctionnant sans problème avec les plateformes cloud et en permettant aux modèles d'IA de s'exécuter efficacement sur les appareils périphériques pour des résultats plus rapides.

De nombreux secteurs l'utilisent activement pour déployer et gérer efficacement les applications conteneurisées.Le déploiement de modèles basés sur Docker implique généralement trois composants principaux :

  • Dockerfile : Un fichier de configuration textuel qui sert de plan directeur 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 - comme 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 : Instances en cours d'exécution 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 le système hôte.
Fig 3. Comprendre les composants clés de Docker.

Exploration d'une application de vision par ordinateur à l'aide de Docker.

Imaginons qu'une ville veuille 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 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 conduire à des performances peu fiables.

En utilisant Docker, les développeurs peuvent regrouper l'ensemble du modèle de vision par ordinateur, ainsi que ses dépendances (comme les cadres d'IA tels que TensorFlow et les scripts personnalisés), dans un conteneur. Cela permet de s'assurer 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 dispositifs de périphérie installés sur les caméras de circulation.

Fig 4. Comment fonctionne Docker.

Par exemple, en déployant des modèles de vision par ordinateur Dockerisés à plusieurs intersections, la ville peut analyser le flux de circulation, détecter les 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 à l'aide de Docker

YOLO11, grâce à sa capacité à effectuer des tâches complexes de vision par ordinateur, peut être utilisé dans divers secteurs, tels 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 suivre des 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 permet d'améliorer le suivi des séances d'entraînement et l'analyse des performances.

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 assurer des performances cohérentes dans différents environnements. L'utilisation de Docker simplifie ce processus en emballant YOLO11 avec toutes les bibliothèques et configurations nécessaires, ce qui rend le déploiement plus efficace, plus évolutif et plus fiable.

Voici un coup d'œil rapide sur les avantages du déploiement de YOLO11 à l'aide de Docker:

  • Maintenance rationalisé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, ce qui garantit que les équipes travaillent avec le même environnement et évite 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 les frais généraux et améliore l'utilisation des ressources, ce qui est crucial pour les tâches d'inférence en temps réel.

Les applications YOLO11 qui peuvent être déployées à l'aide de Docker.

Parcourons quelques exemples d'applications de vision par ordinateur qui peuvent être construites à l'aide de YOLO11 et de Docker. 

Surveiller le trafic à l'aide de YOLO11

Plus tôt, 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 des objets par YOLO11peut 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 déplacement des véhicules, le système peut surveiller les niveaux d'encombrement, détecter les infractions au code de la route (comme les passages au feu rouge ou les virages illégaux) et optimiser les feux de signalisation en fonction des données en temps réel.

De plus, 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.

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

Amélioration de la physiothérapie avec YOLO11

En matière de soins de santé, la physiothérapie est cruciale pour la rééducation, et une posture et des mouvements corrects sont essentiels pour une récupération réussie. Le retour d'information en temps réel d'un système de surveillance des patients basé sur la vision peut aider les thérapeutes à repérer des problèmes tels que des angles d'articulation 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 en adoptant une mauvaise posture, le système peut détecter 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 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 un retour d'information instantané, ce qui aide 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.

Fig 7. Un 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 alimentés par l'IA plus fiables et plus accessibles.

Principaux enseignements

Le déploiement d'un modèle de vision par ordinateur est une étape critique pour le faire passer du développement à l'utilisation dans le monde réel. Un processus de déploiement fluide permet de s'assurer que le modèle entraîné fonctionne de manière fiable dans les applications pratiques. Des outils comme Docker et la conteneurisation ont facilité ce processus en éliminant de nombreux défis traditionnels. 

Grâce à leur nature légère, portable et évolutive, ces technologies changent 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 s'assurant que les modèles s'exécutent de manière cohérente dans différents environnements.

Rejoins notre communauté et consulte notre dépôt GitHub pour en savoir plus sur l'IA. Lis les diverses applications de la vision par ordinateur dans le domaine de la santé et de l 'IA dans le domaine de la fabrication. Explore nos options de licence yolo pour commencer à utiliser Vision AI.

Logo FacebookLogo de TwitterLogo LinkedInSymbole du lien de copie

Lire la suite dans cette catégorie

Construisons ensemble le futur
de l'IA !

Commence ton voyage avec le futur de l'apprentissage automatique.