Aperçu de l'évaluation et du réglage fin des modèles
Introduction
Une fois que vous avez entraîné votre modèle de vision par ordinateur, il est essentiel de l'évaluer et de l'affiner pour qu'il fonctionne de manière optimale. Il ne suffit pas d'entraîner votre modèle. Vous devez vous assurer que votre modèle est précis, efficace et remplit l'objectif de votre projet de vision par ordinateur. En évaluant et en affinant votre modèle, vous pouvez identifier les faiblesses, améliorer sa précision et améliorer ses performances globales.
Regarder : Aperçu de l'évaluation et du réglage fin du modèle | Conseils pour améliorer la précision moyenne
Dans ce guide, nous partagerons des informations sur l'évaluation et le réglage fin des modèles, ce qui rendra cette étape d'un projet de vision par ordinateur plus accessible. Nous verrons comment comprendre les métriques d'évaluation et mettre en œuvre des techniques de réglage fin, ce qui vous donnera les connaissances nécessaires pour améliorer les capacités de votre modèle.
Évaluation des performances du modèle à l'aide de mesures
L'évaluation des performances d'un modèle nous aide à comprendre son efficacité. Diverses mesures sont utilisées pour mesurer les performances. Ces mesures de performance fournissent des informations numériques claires qui peuvent guider les améliorations afin de s'assurer que le modèle atteint ses objectifs. Examinons de plus près quelques mesures clés.
Score de confiance
Le score de confiance représente la certitude du modèle qu'un objet détecté appartient à une classe particulière. Il varie de 0 à 1, les scores plus élevés indiquant une plus grande confiance. Le score de confiance aide à filtrer les prédictions ; seules les détections avec des scores de confiance supérieurs à un seuil spécifié sont considérées comme valides.
Conseil rapide : Lors de l'exécution d'inférences, si vous ne voyez aucune prédiction et que vous avez tout vérifié, essayez de réduire le score de confiance. Parfois, le seuil est trop élevé, ce qui amène le modèle à ignorer les prédictions valides. La réduction du score permet au modèle de considérer davantage de possibilités. Cela pourrait ne pas correspondre aux objectifs de votre projet, mais c'est un bon moyen de voir ce que le modèle peut faire et de décider comment l'affiner.
Intersection sur Union
L'intersection sur l'union (IoU) est une mesure dans la détection d'objets qui mesure la qualité du chevauchement de la boîte englobante prédite avec la boîte englobante de vérité terrain. Les valeurs d'IoU varient de 0 à 1, où 1 représente une correspondance parfaite. L'IoU est essentiel, car il mesure la précision avec laquelle les limites prédites correspondent aux limites réelles de l'objet.
Précision moyenne
La précision moyenne (mAP) est une façon de mesurer la performance d'un modèle de détection d'objets. Elle examine la précision de la détection de chaque classe d'objets, calcule la moyenne de ces scores et donne un chiffre global qui montre avec quelle précision le modèle peut identifier et classer les objets.
Concentrons-nous sur deux mesures mAP spécifiques :
- mAP@.5: Mesure la précision moyenne à un seul seuil IoU (Intersection sur Union) de 0,5. Cette métrique vérifie si le modèle peut correctement trouver des objets avec une exigence de précision plus souple. Elle se concentre sur la question de savoir si l'objet est à peu près au bon endroit, sans nécessiter un placement parfait. Elle permet de voir si le modèle est généralement bon pour repérer les objets.
- mAP@.5:.95: Fait la moyenne des valeurs mAP calculées à plusieurs seuils IoU, de 0,5 à 0,95 par incréments de 0,05. Cette métrique est plus détaillée et stricte. Elle donne une image plus complète de la précision avec laquelle le modèle peut trouver des objets à différents niveaux de rigueur et est particulièrement utile pour les applications qui nécessitent une détection d'objets précise.
Les autres mesures mAP incluent mAP@0.75, qui utilise un seuil IoU plus strict de 0.75, et mAP@small, medium et large, qui évaluent la précision sur des objets de différentes tailles.
Évaluation des performances du modèle YOLO11
En ce qui concerne YOLO11, vous pouvez utiliser le mode de validation pour évaluer le modèle. Assurez-vous également de consulter notre guide qui examine en profondeur les métriques de performance de YOLO11 et comment elles peuvent être interprétées.
Questions fréquentes de la communauté
Lors de l'évaluation de votre modèle YOLO11, vous pourriez rencontrer quelques problèmes. Sur la base des questions courantes de la communauté, voici quelques conseils pour vous aider à tirer le meilleur parti de votre modèle YOLO11 :
Gestion des tailles d'image variables
L'évaluation de votre modèle YOLO11 avec des images de différentes tailles peut vous aider à comprendre ses performances sur divers ensembles de données. En utilisant le rect=true
paramètre de validation, YOLO11 ajuste le pas du réseau pour chaque lot en fonction de la taille des images, ce qui permet au modèle de gérer les images rectangulaires sans les forcer à une taille unique.
L'argument imgsz
Le paramètre de validation définit la dimension maximale pour le redimensionnement de l'image, qui est de 640 par défaut. Vous pouvez l'ajuster en fonction des dimensions maximales de votre jeu de données et de la mémoire GPU disponible. Même avec imgsz
définir, rect=true
Permet au modèle de gérer efficacement les différentes tailles d'image en ajustant dynamiquement le pas.
Accéder aux métriques YOLO11
Si vous souhaitez approfondir votre compréhension des performances de votre modèle YOLO11, vous pouvez facilement accéder à des métriques d'évaluation spécifiques avec quelques lignes de code Python. L'extrait de code ci-dessous vous permettra de charger votre modèle, d'exécuter une évaluation et d'imprimer diverses métriques qui montrent la performance de votre modèle.
Utilisation
from ultralytics import YOLO
# Load the model
model = YOLO("yolo11n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Average precision:", results.box.ap)
print("Average precision at IoU=0.50:", results.box.ap50)
print("Class indices for average precision:", results.box.ap_class_index)
print("Class-specific results:", results.box.class_result)
print("F1 score:", results.box.f1)
print("F1 score curve:", results.box.f1_curve)
print("Overall fitness score:", results.box.fitness)
print("Mean average precision:", results.box.map)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean average precision at IoU=0.75:", results.box.map75)
print("Mean average precision for different IoU thresholds:", results.box.maps)
print("Mean results for different metrics:", results.box.mean_results)
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Precision:", results.box.p)
print("Precision curve:", results.box.p_curve)
print("Precision values:", results.box.prec_values)
print("Specific precision metrics:", results.box.px)
print("Recall:", results.box.r)
print("Recall curve:", results.box.r_curve)
L'objet de résultats comprend également des métriques de vitesse telles que le temps de prétraitement, le temps d'inférence, la perte et le temps de post-traitement. En analysant ces métriques, vous pouvez affiner et optimiser votre modèle YOLO11 pour de meilleures performances, le rendant plus efficace pour votre cas d'utilisation spécifique.
Comment fonctionne le réglage fin ?
L'affinage implique de prendre un modèle pré-entraîné et d'ajuster ses paramètres pour améliorer les performances sur une tâche ou un ensemble de données spécifique. Le processus, également connu sous le nom de réentraînement du modèle, permet au modèle de mieux comprendre et de prédire les résultats pour les données spécifiques qu'il rencontrera dans les applications du monde réel. Vous pouvez réentraîner votre modèle en fonction de l'évaluation de votre modèle afin d'obtenir des résultats optimaux.
Conseils pour l'ajustement fin de votre modèle
L'affinage d'un modèle signifie qu'il faut accorder une attention particulière à plusieurs paramètres et techniques essentiels pour obtenir des performances optimales. Voici quelques conseils essentiels pour vous guider tout au long du processus.
Commencer avec un taux d'apprentissage plus élevé
Habituellement, pendant les epochs d'entraînement initial, le taux d'apprentissage commence bas et augmente progressivement pour stabiliser le processus d'entraînement. Cependant, étant donné que votre modèle a déjà appris certaines caractéristiques de l'ensemble de données précédent, il peut être plus avantageux de commencer immédiatement avec un taux d'apprentissage plus élevé.
Lors de l'évaluation de votre modèle YOLO11, vous pouvez définir le warmup_epochs
paramètre de validation à warmup_epochs=0
afin d'éviter que le taux d'apprentissage ne commence trop haut. En suivant ce processus, l'entraînement se poursuivra à partir des poids fournis, en s'adaptant aux nuances de vos nouvelles données.
Tiling d'images pour les petits objets
Le tiling d'images peut améliorer la précision de la détection des petits objets. En divisant les grandes images en segments plus petits, par exemple en divisant des images de 1280x1280 en plusieurs segments de 640x640, vous conservez la résolution d'origine, et le modèle peut apprendre à partir de fragments haute résolution. Lorsque vous utilisez YOLO11, assurez-vous d'ajuster correctement vos étiquettes pour ces nouveaux segments.
Interagir avec la communauté
Partager vos idées et vos questions avec d'autres passionnés de vision par ordinateur peut inspirer des solutions créatives aux blocages de vos projets. Voici d'excellents moyens d'apprendre, de dépanner et de se connecter.
Trouver de l'aide et de l'assistance
- Problèmes GitHub : Explorez le dépôt YOLO11 GitHub et utilisez l'onglet Problèmes pour poser des questions, signaler des bugs et suggérer des fonctionnalités. La communauté et les mainteneurs sont disponibles pour vous aider en cas de problème.
- Serveur Discord Ultralytics : Rejoignez le serveur Discord Ultralytics pour vous connecter avec d'autres utilisateurs et développeurs, obtenir de l'aide, partager des connaissances et échanger des idées.
Documentation officielle
- Documentation Ultralytics YOLO11 : Consultez la documentation officielle de YOLO11 pour des guides complets et des informations précieuses sur diverses tâches et projets de vision par ordinateur.
Dernières réflexions
L'évaluation et le réglage fin de votre modèle de vision par ordinateur sont des étapes importantes pour une déploiement de modèle réussi. Ces étapes permettent de s'assurer que votre modèle est précis, efficace et adapté à votre application globale. La clé pour former le meilleur modèle possible est l'expérimentation et l'apprentissage continus. N'hésitez pas à modifier les paramètres, à essayer de nouvelles techniques et à explorer différents ensembles de données. Continuez à expérimenter et à repousser les limites du possible !
FAQ
Quels sont les principaux indicateurs pour évaluer les performances d'un modèle YOLO11 ?
Pour évaluer les performances du modèle YOLO11, les mesures importantes incluent le score de confiance, l’intersection sur l’union (IoU) et la précision moyenne (mAP). Le score de confiance mesure la certitude du modèle pour chaque classe d’objet détectée. L’IoU évalue la qualité du chevauchement entre la boîte englobante prédite et la vérité terrain. La précision moyenne (mAP) regroupe les scores de précision entre les classes, avec mAP@.5 et mAP@.5:.95 étant deux types courants pour différents seuils d’IoU. Pour en savoir plus sur ces mesures, consultez notre guide des mesures de performance YOLO11.
Comment puis-je affiner un modèle YOLO11 pré-entraîné pour mon ensemble de données spécifique ?
L'affinage d'un modèle YOLO11 pré-entraîné implique l'ajustement de ses paramètres afin d'améliorer les performances sur une tâche ou un ensemble de données spécifique. Commencez par évaluer votre modèle à l'aide de mesures, puis définissez un taux d'apprentissage initial plus élevé en ajustant le warmup_epochs
paramètre à 0 pour une stabilité immédiate. Utilisez des paramètres comme rect=true
pour gérer efficacement les différentes tailles d'image. Pour des conseils plus détaillés, consultez notre section sur l'affinage des modèles YOLO11.
Comment puis-je gérer les tailles d'image variables lors de l'évaluation de mon modèle YOLO11 ?
Pour gérer les tailles d'image variables pendant l'évaluation, utilisez le rect=true
paramètre dans YOLO11, qui ajuste le pas du réseau pour chaque lot en fonction de la taille des images. Le imgsz
Le paramètre définit la dimension maximale pour le redimensionnement de l'image, par défaut à 640. Ajustez le imgsz
en fonction de votre ensemble de données et de la mémoire de votre GPU. Pour plus de détails, consultez notre section sur la gestion des tailles d'image variables.
Quelles mesures pratiques puis-je prendre pour améliorer la précision moyenne de mon modèle YOLO11 ?
L'amélioration de la précision moyenne (mAP) pour un modèle YOLO11 implique plusieurs étapes :
- Réglage des hyperparamètres: Expérimentez avec différents taux d’apprentissage, tailles de lots et augmentations d’images.
- Augmentation des données : Utilisez des techniques telles que Mosaic et MixUp pour créer divers échantillons d'entraînement.
- Tuilage d'images : Divisez les grandes images en tuiles plus petites pour améliorer la précision de la détection des petits objets. Consultez notre guide détaillé sur le réglage fin du modèle pour des stratégies spécifiques.
Comment puis-je accéder aux métriques d’évaluation du modèle YOLO11 dans Python ?
Vous pouvez accéder aux métriques d'évaluation du modèle YOLO11 en utilisant Python en suivant les étapes suivantes :
Utilisation
from ultralytics import YOLO
# Load the model
model = YOLO("yolo11n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean recall:", results.box.mr)
L'analyse de ces métriques permet d'affiner et d'optimiser votre modèle YOLO11. Pour une exploration plus approfondie, consultez notre guide sur les métriques YOLO11.