Dépannage des problèmes courants sur le site YOLO
Introduction
Ce guide est une aide complète à la résolution des problèmes courants rencontrés lors de la collaboration avec YOLO11 dans le cadre de vos projets Ultralytics . La résolution de ces problèmes peut être un jeu d'enfant si vous bénéficiez des conseils appropriés, ce qui permet à vos projets de rester sur la bonne voie, sans retards inutiles.
Regarder : Ultralytics YOLO11 Problèmes courants - Erreurs d'installation, problèmes de formation au modèle
Problèmes communs
Erreurs d'installation
Les erreurs d'installation peuvent être dues à diverses raisons, telles que des versions incompatibles, des dépendances manquantes ou des configurations d'environnement incorrectes. Tout d'abord, vérifiez que vous effectuez les opérations suivantes :
-
Vous utilisez Python 3.8 ou une version ultérieure, comme recommandé.
-
Assurez-vous d'avoir installé la bonne version de PyTorch (1.8 ou supérieure).
-
Envisagez d'utiliser des environnements virtuels pour Ă©viter les conflits.
-
Suivez le guide d'installation officiel Ă©tape par Ă©tape.
En outre, voici quelques problèmes d'installation fréquemment rencontrés par les utilisateurs, ainsi que leurs solutions respectives :
-
Erreurs d'importation ou problèmes de dépendances - Si vous obtenez des erreurs lors de l'importation de YOLO11, ou si vous rencontrez des problèmes liés aux dépendances, envisagez les étapes de dépannage suivantes :
-
Nouvelle installation: Parfois, une nouvelle installation permet de résoudre des problèmes inattendus. En particulier avec des bibliothèques comme Ultralytics, où les mises à jour peuvent introduire des changements dans l'arborescence des fichiers ou dans les fonctionnalités.
-
Mettez régulièrement à jour: Assurez-vous que vous utilisez la dernière version de la bibliothèque. Les anciennes versions peuvent ne pas être compatibles avec les mises à jour récentes, ce qui peut entraîner des conflits ou des problèmes.
-
Vérifier les dépendances: Vérifiez que toutes les dépendances requises sont correctement installées et que leurs versions sont compatibles.
-
Examiner les modifications: Si vous avez initialement cloné ou installé une ancienne version, sachez que des mises à jour importantes peuvent affecter la structure ou les fonctionnalités de la bibliothèque. Reportez-vous toujours à la documentation officielle ou aux listes de modifications pour comprendre les changements majeurs.
-
N'oubliez pas que la mise à jour de vos bibliothèques et dépendances est cruciale pour une expérience fluide et sans erreur.
-
-
Faire fonctionner YOLO11 sur GPU - Si vous avez des difficultés à faire fonctionner YOLO11 sur GPU, suivez les étapes de dépannage suivantes :
-
Vérifier la compatibilité et l'installation de CUDA: Assurez-vous que votre GPU est compatible avec CUDA et que CUDA est correctement installé. Utilisez le
nvidia-smi
pour vérifier l'état de votre version NVIDIA GPU et CUDA . -
Vérifier l'intégration de PyTorch et CUDA: S'assurer que PyTorch peut utiliser CUDA en lançant
import torch; print(torch.cuda.is_available())
dans un terminal Python . S'il renvoie 'True', PyTorch est configuré pour utiliser CUDA. -
Activation de l'environnement: Assurez-vous que vous êtes dans l'environnement correct où tous les paquets nécessaires sont installés.
-
Mettez à jour vos paquets: Les paquets périmés peuvent ne pas être compatibles avec votre GPU. Maintenez-les à jour.
-
Configuration du programme: Vérifiez si le programme ou le code spécifie l'utilisation de GPU . Dans YOLO11, cela peut se trouver dans les paramètres ou la configuration.
-
Questions relatives à la formation au modèle
Cette section aborde les problèmes courants rencontrés lors de la formation, ainsi que leurs explications et solutions respectives.
Vérification des paramètres de configuration
Enjeu: Vous n'êtes pas sûr que les paramètres de configuration de l'application .yaml
sont appliqués correctement lors de l'apprentissage du modèle.
Solution: Les paramètres de configuration du .yaml
doit être appliqué lors de l'utilisation du fichier model.train()
fonction. Pour vous assurer que ces paramètres sont correctement appliqués, suivez les étapes suivantes :
- Confirmez que le chemin d'accès à votre
.yaml
est correct. - Assurez-vous de transmettre le chemin d'accès à votre
.yaml
en tant que fichierdata
lors de l'appel Ămodel.train()
comme indiqué ci-dessous :
Accélérer la formation avec plusieurs GPU
Problème: L'entraînement est lent sur un seul site GPU, et vous souhaitez accélérer le processus en utilisant plusieurs GPU.
Solution: L'augmentation de la taille des lots peut accélérer la formation, mais il est essentiel de tenir compte de la capacité de mémoire du site GPU . Pour accélérer l'entraînement avec plusieurs GPU, procédez comme suit :
-
Assurez-vous que vous disposez de plusieurs GPU.
-
Modifiez votre fichier de configuration .yaml pour spécifier le nombre de GPU à utiliser, par exemple, gpus : 4.
-
Augmentez la taille du lot en conséquence pour utiliser pleinement les multiples GPU sans dépasser les limites de mémoire.
-
Modifiez votre commande d'entraînement pour utiliser plusieurs GPU :
# Adjust the batch size and other settings as needed to optimize training speed
model.train(data="/path/to/your/data.yaml", batch=32, multi_scale=True)
Paramètres de surveillance continue
Question: Vous souhaitez savoir quels paramètres doivent être surveillés en permanence pendant l'entraînement, en dehors de la perte.
Solution: Si la perte est un paramètre crucial à surveiller, il est également essentiel de suivre d'autres paramètres pour optimiser les performances du modèle. Voici quelques mesures clés à surveiller pendant la formation :
- Précision
- Rappel
- Précision moyenne (mAP)
Vous pouvez accéder à ces mesures à partir des journaux d'entraînement ou en utilisant des outils comme TensorBoard ou wandb pour la visualisation. La mise en œuvre d'un arrêt précoce basé sur ces mesures peut vous aider à obtenir de meilleurs résultats.
Outils de suivi des progrès de la formation
Question: Vous recherchez des recommandations sur les outils permettant de suivre les progrès de la formation.
Solution: Pour suivre et visualiser les progrès de la formation, vous pouvez envisager d'utiliser les outils suivants :
- TensorBoard: TensorBoard est un choix populaire pour la visualisation des mesures de formation, y compris la perte, la précision et plus encore. Vous pouvez l'intégrer à votre processus de formation YOLO11 .
- CometLe site Comet fournit une boîte à outils complète pour le suivi et la comparaison d'expériences. Il vous permet de suivre les métriques, les hyperparamètres et même les poids des modèles. L'intégration avec les modèles YOLO est également simple, vous offrant une vue d'ensemble complète de votre cycle d'expérimentation.
- Ultralytics HUB: Ultralytics HUB offre un environnement spécialisé pour le suivi des modèles YOLO . Il s'agit d'une plateforme unique permettant de gérer les mesures, les ensembles de données et même de collaborer avec votre équipe. Étant donné qu'il se concentre sur YOLO, il offre des options de suivi plus personnalisées.
Chacun de ces outils offre ses propres avantages, et vous pouvez donc prendre en compte les besoins spécifiques de votre projet avant de faire votre choix.
Comment vérifier si la formation se déroule sur le site web GPU
Problème: La valeur "device" dans les journaux de formation est "null", et vous n'êtes pas sûr que la formation se déroule sur le site GPU.
Solution: Le fait que la valeur "device" soit "null" signifie généralement que le processus de formation est configuré pour utiliser automatiquement un site GPU disponible, ce qui est le comportement par défaut. Pour vous assurer que la formation se déroule sur un site GPU spécifique, vous pouvez définir manuellement la valeur "device" sur l'index GPU (par exemple, "0" pour le premier site GPU) dans votre fichier de configuration .yaml :
Cela affectera explicitement le processus de formation à l'adresse GPU spécifiée. Si vous souhaitez former sur le site CPU, définissez "device" sur "cpu".
Gardez un œil sur le dossier "runs" pour les journaux et les mesures afin de suivre efficacement les progrès de l'entraînement.
Considérations clés pour une formation efficace sur le modèle
Voici quelques points à garder à l'esprit si vous êtes confronté à des problèmes liés à la formation au mannequinat.
Format des données et étiquettes
-
Importance : Le fondement de tout modèle d'apprentissage automatique repose sur la qualité et le format des données sur lesquelles il est formé.
-
Recommandation : Veillez à ce que votre jeu de données personnalisé et les étiquettes qui lui sont associées respectent le format attendu. Il est essentiel de vérifier que les annotations sont exactes et de haute qualité. Des annotations incorrectes ou de mauvaise qualité peuvent faire dérailler le processus d'apprentissage du modèle, entraînant des résultats imprévisibles.
Convergence des modèles
-
Importance : La convergence du modèle garantit que le modèle a suffisamment appris à partir des données d'apprentissage.
-
Recommandation : Lors de l'entraînement d'un modèle "à partir de zéro", il est essentiel de veiller à ce que le modèle atteigne un niveau de convergence satisfaisant. Cela peut nécessiter une durée d'entraînement plus longue, avec davantage d'époques, que lorsque vous affinez un modèle existant.
Taux d'apprentissage et taille des lots
-
Importance : Ces hyperparamètres jouent un rôle essentiel dans la détermination de la manière dont le modèle met à jour ses poids au cours de l'apprentissage.
-
Recommandation : Évaluez régulièrement si le taux d'apprentissage et la taille du lot choisis sont optimaux pour votre ensemble de données spécifique. Des paramètres qui ne sont pas en harmonie avec les caractéristiques de l'ensemble de données peuvent entraver les performances du modèle.
RĂ©partition par classe
-
Importance : La distribution des classes dans votre ensemble de données peut influencer les tendances de prédiction du modèle.
-
Recommandation : Évaluez régulièrement la distribution des classes au sein de votre ensemble de données. En cas de déséquilibre entre les classes, le modèle risque de développer un biais en faveur de la classe la plus répandue. Ce biais peut être évident dans la matrice de confusion, où le modèle peut prédire de manière prédominante la classe majoritaire.
Vérification croisée avec les poids pré-entraînés
-
Importance : L'utilisation de poids pré-entraînés peut constituer un point de départ solide pour l'apprentissage du modèle, en particulier lorsque les données sont limitées.
-
Recommandation : En guise de diagnostic, envisagez d'entraîner votre modèle en utilisant les mêmes données, mais en l'initialisant avec des poids pré-entraînés. Si cette approche produit une matrice de confusion bien formée, cela pourrait suggérer que le modèle "à partir de zéro" pourrait nécessiter une formation ou des ajustements supplémentaires.
Questions relatives aux prédictions des modèles
Cette section aborde les problèmes courants rencontrés lors de la prédiction des modèles.
Obtenir des prédictions de la boîte englobante avec votre modèle personnalisé YOLO11
Problème: Lors de l'exécution de prédictions avec un modèle personnalisé YOLO11 , le format et la visualisation des coordonnées de la boîte de délimitation posent des problèmes.
Solution:
- Format des coordonnées : YOLO11 fournit les coordonnées du cadre de délimitation en valeurs absolues de pixels. Pour les convertir en coordonnées relatives (comprises entre 0 et 1), vous devez les diviser par les dimensions de l'image. Par exemple, supposons que la taille de votre image soit de 640x640. Vous devez alors procéder comme suit :
# Convert absolute coordinates to relative coordinates
x1 = x1 / 640 # Divide x-coordinates by image width
x2 = x2 / 640
y1 = y1 / 640 # Divide y-coordinates by image height
y2 = y2 / 640
- Nom du fichier : Pour obtenir le nom du fichier de l'image sur laquelle vous effectuez la prédiction, accédez au chemin du fichier de l'image directement à partir de l'objet résultat dans votre boucle de prédiction.
Filtrage des objets dans les prédictions YOLO11
Problème: Problèmes liés à la manière de filtrer et d'afficher uniquement des objets spécifiques dans les résultats de prédiction lors de l'exécution de YOLO11 à l'aide de la bibliothèque Ultralytics .
Solution: Pour détecter des classes spécifiques, utilisez l'argument classes pour spécifier les classes que vous souhaitez inclure dans le résultat. Par exemple, pour détecter uniquement les voitures (en supposant que les "voitures" ont un indice de classe 2) :
Comprendre les mesures de précision dans les YOLO11
Problème: Confusion concernant la différence entre la précision de la boîte, la précision du masque et la précision de la matrice de confusion dans YOLO11.
Solution: La précision des boîtes mesure la précision des boîtes de délimitation prédites par rapport aux boîtes réelles de la vérité terrain en utilisant l'IoU (Intersection over Union) comme métrique. La précision des masques évalue la concordance entre les masques de segmentation prédits et les masques de vérité terrain dans la classification des objets par pixel. La précision de la matrice de confusion, quant à elle, se concentre sur la précision globale de la classification pour toutes les classes et ne tient pas compte de la précision géométrique des prédictions. Il est important de noter qu'une boîte englobante peut être géométriquement exacte (vrai positif) même si la prédiction de la classe est erronée, ce qui entraîne des différences entre la précision de la boîte et la précision de la matrice de confusion. Ces mesures évaluent des aspects distincts de la performance d'un modèle, ce qui reflète la nécessité de disposer de mesures d'évaluation différentes pour diverses tâches.
Extraction des dimensions des objets dans les YOLO11
Problème: Difficulté à récupérer la longueur et la hauteur des objets détectés dans YOLO11, en particulier lorsque plusieurs objets sont détectés dans une image.
Solution: Pour récupérer les dimensions des boîtes de délimitation, utilisez d'abord le modèle Ultralytics YOLO11 pour prédire les objets dans une image. Ensuite, extrayez les informations relatives à la largeur et à la hauteur des boîtes englobantes à partir des résultats de la prédiction.
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Specify the source image
source = "https://ultralytics.com/images/bus.jpg"
# Make predictions
results = model.predict(source, save=True, imgsz=320, conf=0.5)
# Extract bounding box dimensions
boxes = results[0].boxes.xywh.cpu()
for box in boxes:
x, y, w, h = box
print(f"Width of Box: {w}, Height of Box: {h}")
Défis en matière de déploiement
GPU Questions relatives au déploiement
Problème : Le déploiement de modèles dans un environnement multi-GPU peut parfois conduire à des comportements inattendus tels que l'utilisation inattendue de la mémoire, des résultats incohérents entre les GPU, etc.
Solution : Vérifiez l'initialisation par défaut de GPU . Certains frameworks, comme PyTorch, peuvent initialiser les opérations CUDA sur un GPU par défaut avant de passer aux GPU désignés. Pour éviter les initialisations par défaut inattendues, spécifiez le site GPU directement lors du déploiement et de la prédiction. Utilisez ensuite des outils pour surveiller l'utilisation de GPU et l'utilisation de la mémoire afin d'identifier toute anomalie en temps réel. Assurez-vous également que vous utilisez la dernière version du framework ou de la bibliothèque.
Problèmes de conversion/exportation de modèles
Problème : Au cours du processus de conversion ou d'exportation de modèles d'apprentissage automatique vers différents formats ou plateformes, les utilisateurs peuvent rencontrer des erreurs ou des comportements inattendus.
Solution :
-
Vérification de la compatibilité : Assurez-vous que vous utilisez des versions de bibliothèques et de cadres compatibles entre elles. Des versions incompatibles peuvent entraîner des erreurs inattendues lors de la conversion.
-
Réinitialisation de l'environnement : Si vous utilisez un environnement interactif comme Jupyter ou Colab, pensez à redémarrer votre environnement après avoir effectué des modifications ou des installations importantes. Un nouveau départ peut parfois résoudre des problèmes sous-jacents.
-
Documentation officielle : Reportez-vous toujours à la documentation officielle de l'outil ou de la bibliothèque que vous utilisez pour la conversion. Elle contient souvent des directives spécifiques et des bonnes pratiques pour l'exportation de modèles.
-
Soutien de la communauté : Consultez le dépôt officiel de la bibliothèque ou du framework pour trouver des problèmes similaires signalés par d'autres utilisateurs. Les responsables ou la communauté peuvent avoir fourni des solutions ou des solutions de contournement dans des fils de discussion.
-
Mettez régulièrement à jour : Assurez-vous que vous utilisez la dernière version de l'outil ou de la bibliothèque. Les développeurs publient fréquemment des mises à jour qui corrigent les bogues connus ou améliorent les fonctionnalités.
-
Testez progressivement : Avant d'effectuer une conversion complète, testez le processus avec un modèle ou un ensemble de données plus petit afin d'identifier les problèmes potentiels dès le début.
Communauté et soutien
L'engagement auprès d'une communauté de personnes partageant les mêmes idées peut considérablement améliorer votre expérience et votre succès dans le travail avec YOLO11. Vous trouverez ci-dessous quelques canaux et ressources qui pourraient vous être utiles.
Forums et canaux pour obtenir de l'aide
Questions sur GitHub : Le dépôt YOLO11 sur GitHub a un onglet Issues où vous pouvez poser des questions, signaler des bogues et suggérer de nouvelles fonctionnalités. La communauté et les mainteneurs sont actifs ici, et c'est un endroit idéal pour obtenir de l'aide sur des problèmes spécifiques.
Ultralytics Serveur Discord : Ultralytics dispose d'un serveur Discord où vous pouvez interagir avec les autres utilisateurs et les développeurs.
Documentation et ressources officielles
Ultralytics YOLO11 Docs: La documentation officielle fournit une vue d'ensemble de YOLO11, ainsi que des guides sur l'installation, l'utilisation et le dépannage.
Ces ressources devraient constituer une base solide pour le dépannage et l'amélioration de vos projets YOLO11 , ainsi que pour la mise en relation avec d'autres membres de la communauté YOLO11 .
Conclusion
Le dépannage fait partie intégrante de tout processus de développement, et le fait de disposer des bonnes connaissances peut réduire de manière significative le temps et les efforts consacrés à la résolution des problèmes. Ce guide a pour but d'aborder les problèmes les plus courants rencontrés par les utilisateurs du modèle YOLO11 au sein de l'écosystème Ultralytics . En comprenant et en résolvant ces problèmes courants, vous pouvez assurer une progression plus fluide de votre projet et obtenir de meilleurs résultats dans vos tâches de vision par ordinateur.
N'oubliez pas que la communauté Ultralytics est une ressource précieuse. L'échange avec des collègues développeurs et des experts peut fournir des informations et des solutions supplémentaires qui ne sont peut-être pas couvertes par la documentation standard. Continuez toujours à apprendre, à expérimenter et à partager vos expériences pour contribuer au savoir collectif de la communauté.
Bon dépannage !
FAQ
Comment résoudre les erreurs d'installation avec YOLO11?
Les erreurs d'installation sont souvent dues à des problèmes de compatibilité ou à des dépendances manquantes. Assurez-vous d'utiliser Python 3.8 ou une version ultérieure et d'avoir installé PyTorch 1.8 ou une version ultérieure. Il est préférable d'utiliser des environnements virtuels pour éviter les conflits. Pour un guide d'installation étape par étape, suivez notre guide d'installation officiel. Si vous rencontrez des erreurs d'importation, essayez une nouvelle installation ou mettez à jour la bibliothèque avec la dernière version.
Pourquoi l'apprentissage de mon modèle YOLO11 est-il lent sur un seul site GPU?
La formation sur un seul site GPU peut être lente en raison de la taille importante des lots ou d'une mémoire insuffisante. Pour accélérer l'entraînement, utilisez plusieurs GPU. Assurez-vous que votre système dispose de plusieurs GPU et ajustez vos paramètres d'entraînement. .yaml
pour spécifier le nombre de GPU, par exemple, gpus: 4
. Augmentez la taille du lot en conséquence pour utiliser pleinement les GPU sans dépasser les limites de mémoire. Exemple de commande :
Comment puis-je m'assurer que mon modèle YOLO11 s'entraîne sur le site GPU?
Si la valeur "device" indique "null" dans les journaux de formation, cela signifie généralement que le processus de formation est configuré pour utiliser automatiquement un GPU disponible. Pour attribuer explicitement une adresse GPU spécifique, définissez la valeur "device" dans votre fichier .yaml
fichier de configuration. Par exemple :
Cela définit le processus de formation à la première GPU. Consulter le nvidia-smi
pour confirmer la configuration de CUDA .
Comment puis-je suivre les progrès de ma formation sur le modèle YOLO11 ?
Le suivi et la visualisation des progrès de la formation peuvent être gérés efficacement grâce à des outils tels que TensorBoard, Cometet Ultralytics HUB. Ces outils vous permettent d'enregistrer et de visualiser des mesures telles que la perte, la précision, le rappel et le mAP. La mise en œuvre d'un arrêt précoce basé sur ces mesures peut également aider à obtenir de meilleurs résultats de formation.
Que dois-je faire si YOLO11 ne reconnaît pas le format de mon jeu de données ?
Assurez-vous que votre jeu de données et vos étiquettes sont conformes au format attendu. Vérifiez que les annotations sont précises et de qualité. Si vous rencontrez des problèmes, consultez le guide de collecte et d'annotation des données pour connaître les meilleures pratiques. Pour des conseils plus spécifiques aux jeux de données, consultez la section Jeux de données de la documentation.