Informations sur l’évaluation et la mise au point des modèles
Introduction
Une fois que tu as formé ton modèle de vision par ordinateur, il est essentiel de l'évaluer et de l'affiner pour qu'il fonctionne de façon optimale. Il ne suffit pas de former ton modèle. Tu dois t'assurer que ton modèle est précis, efficace et qu'il remplit l'objectif de ton projet de vision par ordinateur. En évaluant et en affinant ton modèle, tu peux identifier ses faiblesses, améliorer sa précision et augmenter ses performances globales.
Dans ce guide, nous partagerons des idées sur l'évaluation et le réglage fin des modèles qui rendront cette étape d'un projet de vision par ordinateur plus accessible. Nous verrons comment comprendre les mesures d'évaluation et mettre en œuvre des techniques de réglage fin, ce qui te donnera les connaissances nécessaires pour améliorer les capacités de ton modèle.
Évaluation des performances du modèle à l’aide de métriques
L'évaluation des performances d'un modèle nous aide à comprendre l'efficacité de son fonctionnement. Diverses mesures sont utilisées pour évaluer les performances. Ces mesures de performance fournissent des informations claires et numériques qui peuvent guider les améliorations afin de s'assurer que le modèle atteint les objectifs prévus. 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 les plus élevés indiquant une plus grande confiance. Le score de confiance permet de filtrer les prédictions ; Seules les détections dont les scores de confiance sont supérieurs à un seuil spécifié sont considérées comme valides.
Petit conseil : Lorsque tu fais des déductions, si tu ne vois aucune prédiction et que tu as tout vérifié, essaie d'abaisser le score de confiance. Parfois, le seuil est trop élevé, ce qui fait que le modèle ignore les prédictions valides. L'abaissement du score permet au modèle d'envisager plus de possibilités. Cela ne répondra peut-être pas aux objectifs de ton projet, mais c'est un bon moyen de voir ce que le modèle peut faire et de décider comment l'affiner.
Intersection au-dessus de l’Union
L’intersection sur l’union (IoU) est une mesure de détection d’objets qui mesure dans quelle mesure la zone de délimitation prédite se chevauche avec la zone de délimitation de la vérité terrain. Les valeurs IoU vont de 0 à 1, où l’un représente une correspondance parfaite. L’IoU est essentiel car il mesure à quel point les limites prédites correspondent aux limites réelles de l’objet.
Précision moyenne moyenne
La précision moyenne (mAP) est un moyen de mesurer les performances d’un modèle de détection d’objets. Il examine la précision de la détection de chaque classe d’objets, fait la moyenne de ces scores et donne un nombre global qui montre la précision avec laquelle le modèle peut identifier et classer les objets.
Concentrons-nous sur deux mesures spécifiques du mAP :
- mAP@.5 : mesure la précision moyenne à un seul seuil IoU (Intersection over Union) de 0,5. Cette mesure permet de vérifier si le modèle peut trouver correctement des objets avec une exigence de précision plus faible. Elle se concentre sur la question de savoir si l'objet est à peu près au bon endroit, sans avoir besoin d'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 de l'IoU, de 0,5 à 0,95 par incréments de 0,05. Cette mesure est plus détaillée et plus 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 précise des objets.
Parmi les autres mesures mAP, on trouve mAP@0.75, qui utilise un seuil plus strict de 0,75, et mAP@small, medium, et large, qui évaluent la précision sur des objets de différentes tailles.
Évaluation YOLOv8 Performances du modèle
En ce qui concerne YOLOv8, tu peux utiliser le mode de validation pour évaluer le modèle. N'oublie pas non plus de jeter un coup d'œil à notre guide qui approfondit les mesures de performance deYOLOv8 et la façon dont elles peuvent être interprétées.
Questions courantes de la communauté
Lors de l’évaluation de votre YOLOv8 , vous pourriez rencontrer quelques ratés. Sur la base des questions courantes de la communauté, voici quelques conseils pour vous aider à tirer le meilleur parti de votre YOLOv8 modèle:
Gestion des tailles d’image variables
Évaluation de votre YOLOv8 avec des images de différentes tailles peut vous aider à comprendre ses performances sur divers ensembles de données. En utilisant le bouton rect=true
paramètre de validation, YOLOv8 Ajuste la foulée du réseau pour chaque lot en fonction de la taille des images, ce qui permet au modèle de gérer des images rectangulaires sans les forcer à une seule taille.
Le imgsz
Le paramètre de validation définit la dimension maximale pour le redimensionnement de l'image, qui est de 640 par défaut. Tu peux ajuster cette valeur en fonction des dimensions maximales de ton jeu de données et de la mémoire disponible sur GPU . Même avec imgsz
poser rect=true
Permet au modèle de gérer efficacement les différentes tailles d’image en ajustant dynamiquement la foulée.
Accéder YOLOv8 Métrique
Si vous souhaitez mieux comprendre votre YOLOv8 , vous pouvez facilement accéder à des mesures d’évaluation spécifiques avec quelques lignes de Python code. L’extrait de code ci-dessous vous permettra de charger votre modèle, d’exécuter une évaluation et d’imprimer diverses mesures qui montrent comment votre modèle se comporte.
Utilisation
from ultralytics import YOLO
# Load the model
model = YOLO("yolov8n.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 results inclut également des mesures 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 YOLOv8 pour de meilleures performances, ce qui le rend plus efficace pour votre cas d’utilisation spécifique.
Comment fonctionne le réglage fin ?
Le réglage fin consiste à prendre un modèle pré-entraîné et à ajuster ses paramètres pour améliorer les performances d’une tâche ou d’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 des données spécifiques qu’il rencontrera dans des applications réelles. Vous pouvez réentraîner votre modèle en fonction de votre évaluation de modèle pour obtenir des résultats optimaux.
Conseils pour affiner votre modèle
Affiner un modèle signifie porter une attention particulière à plusieurs paramètres et techniques vitaux pour obtenir des performances optimales. Voici quelques conseils essentiels pour vous guider tout au long du processus.
Commencer par un taux d’apprentissage plus élevé
Habituellement, pendant les périodes de formation initiale, le taux d’apprentissage commence bas et augmente progressivement pour stabiliser le processus de formation. Cependant, comme votre modèle a déjà appris certaines caractéristiques du jeu de données précédent, il peut être plus avantageux de commencer immédiatement par un taux d’apprentissage plus élevé.
Lors de l’évaluation de votre YOLOv8 , vous pouvez définir le modèle warmup_epochs
de validation pour warmup_epochs=0
pour éviter que le taux d’apprentissage ne commence trop élevé. En suivant ce processus, l’entraînement se poursuivra à partir des poids fournis, en s’adaptant aux nuances de vos nouvelles données.
Mosaïque d’images pour petits objets
La mosaïque d’images peut améliorer la précision de la détection des petits objets. En divisant des images plus grandes en segments plus petits, par exemple en divisant des images 1280x1280 en plusieurs segments 640x640, vous conservez la résolution d’origine et le modèle peut apprendre des fragments haute résolution. Lors de l’utilisation YOLOv8, veillez à ajuster correctement vos étiquettes pour ces nouveaux segments.
Engagez-vous 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 obstacles de vos projets. Voici d’excellentes façons d’apprendre, de résoudre les problèmes et de se connecter.
Trouver de l’aide et du soutien
- GitHub Issues : Explore le dépôt GitHub YOLOv8 et utilise l'onglet Issues pour poser des questions, signaler des bogues et suggérer des fonctionnalités. La communauté et les responsables sont disponibles pour t'aider à résoudre les problèmes que tu rencontres.
- Ultralytics Serveur Discord : Rejoins le serveur DiscordUltralytics pour te connecter avec d'autres utilisateurs et développeurs, obtenir de l'aide, partager des connaissances et trouver des idées.
Documentation officielle
- Ultralytics YOLOv8 Documentation : Consulte la documentation officielle de YOLOv8 pour obtenir des guides complets et des informations précieuses sur diverses tâches et projets de vision par ordinateur.
RĂ©flexions finales
L’évaluation et la mise au point de votre modèle de vision par ordinateur sont des étapes importantes pour un déploiement réussi du modèle. 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 paramètres permettant d'évaluer la performance du modèle YOLOv8 ?
Pour évaluer les performances du modèle YOLOv8 , les paramètres importants sont le score de confiance, l'intersection sur l'union (IoU) et la précision moyenne (mAP). La note de confiance mesure la certitude du modèle pour chaque classe d'objet détectée. L'intersection sur l'union évalue le degré de chevauchement de la boîte de délimitation prédite avec la vérité de terrain. La précision moyenne (mAP) regroupe les scores de précision entre les classes, mAP@.5 et mAP@.5 :.95 étant deux types courants pour les différents seuils de l'indice d'utilité. Pour en savoir plus sur ces mesures, consulte notre guide des mesures de performance surYOLOv8 .
Comment puis-je affiner un modèle pré-entraîné YOLOv8 pour mon ensemble de données spécifique ?
L'affinage d'un modèle YOLOv8 pré-entraîné consiste à ajuster ses paramètres pour améliorer les performances sur une tâche ou un ensemble de données spécifique. Commence par évaluer ton modèle à l'aide de métriques, puis fixe un taux d'apprentissage initial plus élevé en ajustant le paramètre warmup_epochs
à 0 pour une stabilité immédiate. Utilise des paramètres comme rect=true
pour traiter efficacement des images de tailles variées. Pour des conseils plus détaillés, reporte-toi à notre section sur les affiner les modèles YOLOv8.
Comment puis-je gérer des images de taille variable lorsque j'évalue mon modèle YOLOv8 ?
Pour gérer les tailles d'image variables pendant l'évaluation, utilise la fonction rect=true
dans YOLOv8, qui ajuste le pas du réseau pour chaque lot en fonction de la taille des images. Le imgsz
définit la dimension maximale pour le redimensionnement de l'image, la valeur par défaut étant 640. Ajuster imgsz
pour s'adapter à ton jeu de données et à la mémoire de GPU . Pour plus de détails, visite 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 YOLOv8 ?
L'amélioration de la précision moyenne (mAP) d'un modèle YOLOv8 comporte plusieurs étapes :
- Réglage des hyperparamètres: Expérimente avec différents taux d'apprentissage, tailles de lots et augmentations d'images.
- Augmentation des données: Utilise des techniques comme Mosaic et MixUp pour créer des échantillons de formation diversifiés.
- Mosaïque d'images: Divise les grandes images en tuiles plus petites pour améliorer la précision de la détection des petits objets. Reporte-toi à notre guide détaillé sur le réglage fin du modèle pour connaître les stratégies spécifiques.
Comment puis-je accéder aux mesures d'évaluation du modèle YOLOv8 dans Python?
Tu peux accéder aux mesures d'évaluation du modèle YOLOv8 à l'aide de Python en suivant les étapes suivantes :
Utilisation
from ultralytics import YOLO
# Load the model
model = YOLO("yolov8n.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 paramètres permet d'affiner et d'optimiser ton modèle YOLOv8 . Pour aller plus loin, consulte notre guide sur les indicateurs deYOLOv8 .