Découvrez la suppression non maximale (NMS) pour la détection d'objets. Apprenez comment elle affine les résultats, améliore la précision et alimente des applications d'IA telles que YOLO.
La suppression non maximale (NMS) est un algorithme de post-traitement fondamental utilisé en vision artificielle, en particulier dans les tâches de détection d'objets. Son objectif principal est de nettoyer la sortie d'un modèle de détection en filtrant les boîtes de délimitation redondantes et qui se chevauchent afin de s'assurer que chaque objet n'est identifié qu'une seule fois. Lorsqu'un modèle de détection d'objets, tel qu'Ultralytics YOLO, effectue des prédictions, il génère souvent plusieurs boîtes candidates autour du même objet, chacune ayant un score de confiance différent. NMS sélectionne intelligemment la meilleure boîte englobante pour chaque objet et supprime, ou élimine, toutes les autres boîtes qui se chevauchent et qui sont considérées comme non maximales.
Le NMS est un composant crucial dans de nombreuses applications d'intelligence artificielle du monde réel qui reposent sur une détection précise des objets.
Le NMS est spécifiquement une étape de post-traitement appliquée après qu' un modèle de détection d'objets a généré son ensemble initial de boîtes de délimitation candidates. Il ne doit pas être confondu avec l'architecture de détection proprement dite, comme la différence entre les détecteurs basés sur les ancres et les détecteurs sans ancres. Ces architectures définissent la manière dont les boîtes potentielles sont proposées, tandis que le NMS affine ces propositions.
Il est intéressant de noter que le coût de calcul et les goulets d'étranglement potentiels associés au NMS ont stimulé la recherche sur les détecteurs d'objets sans NMS. Des modèles comme YOLOv10 intègrent des mécanismes pendant l'apprentissage pour éviter de manière inhérente de prédire des boîtes redondantes, dans le but de réduire la latence de l'inférence et de permettre une détection véritablement de bout en bout. Cela contraste avec les approches traditionnelles comme Ultralytics YOLOv8 ou YOLOv5, où le NMS reste une partie standard et essentielle du pipeline d'inférence. Vous pouvez explorer les comparaisons techniques, telles que YOLOv10 vs. YOLOv8, dans notre documentation. Des variantes comme Soft-NMS offrent des approches alternatives qui diminuent les scores des boîtes qui se chevauchent au lieu de les éliminer complètement.
NMS est intégré de manière transparente dans l'écosystème Ultralytics. Les modèles YOLO d'Ultralytics appliquent automatiquement le SGN pendant la période de prédiction (predict
) et validation (val
) Les utilisateurs reçoivent ainsi des résultats de détection propres et précis par défaut. Les paramètres contrôlant le comportement du NMS (comme le seuil d'intégrité et le seuil de confiance) peuvent souvent être ajustés en fonction des besoins spécifiques de l'application.
Des plateformes comme Ultralytics HUB font abstraction de ces détails, permettant aux utilisateurs d'entraîner des modèles et de les déployer où le NMS est géré automatiquement dans le cadre du pipeline optimisé. Cette intégration garantit que les utilisateurs, quelle que soit leur expertise technique approfondie en matière de MLOps, peuvent bénéficier de résultats de pointe en matière de détection d'objets pour diverses tâches de vision par ordinateur. Les détails de l'implémentation spécifique dans le cadre d'Ultralytics peuvent être explorés dans la référence des utilitaires Ultralytics. Pour plus de définitions, consultez le glossaire principal d'Ultralytics.
Comment fonctionne la suppression non maximale
L'algorithme NMS fonctionne par itération à travers les boîtes englobantes prédites et prend des décisions basées sur deux mesures clés : les scores de confiance et le seuil d'intersection sur l'union (Intersection over Union - IoU). Le processus peut être résumé comme suit :
Le seuil de l'indice d'intégrité est un hyperparamètre critique défini par l'utilisateur. Un seuil d'UI faible entraînera moins de détections, car il supprimera les boîtes qui se chevauchent, même faiblement, alors qu'un seuil élevé pourrait permettre plusieurs détections pour le même objet. Le réglage précis de ce seuil fait souvent partie de l'optimisation des performances d'un modèle sur un ensemble de données spécifique.