Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Suppression Non Maximale (NMS) | Détection d'Objets
Principes Fondamentaux de la Vision par Ordinateur

bookSuppression Non Maximale (NMS)

Les modèles de détection d'objets prédisent souvent plusieurs boîtes englobantes qui se chevauchent pour un même objet. Cela se produit parce que les modèles analysent une image à différentes échelles et positions, ce qui conduit à des prédictions redondantes. La suppression non maximale (NMS) est une étape de post-traitement essentielle qui affine ces détections en sélectionnant les boîtes englobantes les plus pertinentes tout en éliminant celles qui sont inutiles.

nms

Pourquoi plusieurs boîtes qui se chevauchent apparaissent-elles ?

Les détecteurs d'objets prédisent plusieurs boîtes englobantes pour un seul objet en raison de :

  • Boîtes d'ancrage : certains modèles, comme Faster R-CNN et YOLO, utilisent des boîtes d'ancrage prédéfinies de différentes tailles, ce qui conduit à plusieurs détections du même objet ;
  • Approches par fenêtre glissante : certaines méthodes de détection analysent une image par petites régions, provoquant des détections répétées d'un objet dans des zones qui se chevauchent ;
  • Scores de confiance élevés : le modèle attribue des scores de confiance à chaque prédiction, et des prédictions similaires avec une forte confiance peuvent se chevaucher de manière significative.

Si ces boîtes redondantes ne sont pas filtrées, elles peuvent nuire aux performances de la détection d'objets en augmentant la complexité computationnelle et en rendant le comptage des objets peu fiable.

Fonctionnement de la suppression non maximale (NMS)

La NMS est appliquée pour supprimer les détections dupliquées tout en conservant la boîte englobante la plus confiante. Elle suit les étapes suivantes :

  • Tri des scores : organiser toutes les boîtes englobantes prédites par ordre décroissant de leur score de confiance ;
  • Sélection de la meilleure boîte : choisir la boîte ayant le score le plus élevé et l’ajouter à la liste finale des détections ;
  • Calcul de l’IoU : calculer l’Intersection over Union (IoU) entre la boîte sélectionnée et toutes les boîtes restantes ;
  • Seuil de suppression : supprimer les boîtes ayant un IoU supérieur à un seuil défini (par exemple, 0,5), car elles représentent probablement le même objet ;
  • Répétition : répéter ce processus pour la boîte suivante avec le score le plus élevé jusqu’à ce que toutes les boîtes soient traitées.
import numpy as np

def non_max_suppression(boxes, scores, iou_threshold=0.5):
    # Sort boxes by confidence scores in descending order
    sorted_indices = np.argsort(scores)[::-1]
    selected_boxes = []
    
    while len(sorted_indices) > 0:
        # Pick the highest confidence box
        best_idx = sorted_indices[0]  
        selected_boxes.append(boxes[best_idx])
        
        # Compute IoU with the remaining boxes
        remaining_boxes = boxes[sorted_indices[1:]]
        ious = np.array([compute_iou(boxes[best_idx], box) for box in remaining_boxes])
        
        # Suppress boxes with IoU above threshold
        sorted_indices = sorted_indices[1:][ious < iou_threshold]
    
    return selected_boxes

Soft-NMS : une alternative plus intelligente

La NMS standard supprime toutes les boîtes qui se chevauchent au-dessus d’un certain seuil d’IoU, ce qui peut parfois éliminer des détections utiles. Soft-NMS améliore ce processus en diminuant les scores de confiance des boîtes qui se chevauchent au lieu de les supprimer complètement. Cette méthode permet une suppression plus progressive et peut améliorer les performances de détection dans des scénarios d’objets denses.

Principales différences entre la NMS standard et la Soft-NMS :

  • NMS standard : supprime les boîtes qui se chevauchent au-dessus du seuil d’IoU ;
  • Soft-NMS : réduit les scores de confiance des boîtes qui se chevauchent au lieu de les éliminer, ce qui la rend plus flexible pour la détection d’objets partiellement occultés.

Équilibrer précision et rapidité dans la NMS

Le choix du bon seuil d’IoU est crucial :

  • Seuils plus élevés (par exemple, 0,6 - 0,7) : filtrage plus agressif, ne conservant que les boîtes les plus confiantes mais risquant de manquer certaines détections valides ;
  • Seuils plus bas (par exemple, 0,3 - 0,4) : conserve davantage de boîtes qui se chevauchent, ce qui peut être utile dans des scènes encombrées mais peut augmenter les faux positifs.

L’utilisation d’implémentations optimisées, telles que les fonctions NMS intégrées de TensorFlow ou OpenCV, peut accélérer le traitement pour les applications en temps réel.

La suppression non maximale (NMS) est une technique essentielle en détection d'objets permettant de supprimer les boîtes englobantes redondantes et d'améliorer la précision du modèle. La NMS standard élimine efficacement les détections dupliquées, tandis que la Soft-NMS affine le processus en ajustant les scores de confiance au lieu de supprimer directement. En ajustant finement les seuils d'IoU, il est possible de trouver le bon équilibre entre précision de détection et efficacité computationnelle.

1. Quel est le principal objectif de la suppression non maximale (NMS) en détection d'objets ?

2. Comment la NMS standard détermine-t-elle quelles boîtes englobantes supprimer ?

3. Quelle est la principale différence entre la NMS standard et la Soft-NMS ?

question mark

Quel est le principal objectif de la suppression non maximale (NMS) en détection d'objets ?

Select the correct answer

question mark

Comment la NMS standard détermine-t-elle quelles boîtes englobantes supprimer ?

Select the correct answer

question mark

Quelle est la principale différence entre la NMS standard et la Soft-NMS ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 5

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 3.45

bookSuppression Non Maximale (NMS)

Glissez pour afficher le menu

Les modèles de détection d'objets prédisent souvent plusieurs boîtes englobantes qui se chevauchent pour un même objet. Cela se produit parce que les modèles analysent une image à différentes échelles et positions, ce qui conduit à des prédictions redondantes. La suppression non maximale (NMS) est une étape de post-traitement essentielle qui affine ces détections en sélectionnant les boîtes englobantes les plus pertinentes tout en éliminant celles qui sont inutiles.

nms

Pourquoi plusieurs boîtes qui se chevauchent apparaissent-elles ?

Les détecteurs d'objets prédisent plusieurs boîtes englobantes pour un seul objet en raison de :

  • Boîtes d'ancrage : certains modèles, comme Faster R-CNN et YOLO, utilisent des boîtes d'ancrage prédéfinies de différentes tailles, ce qui conduit à plusieurs détections du même objet ;
  • Approches par fenêtre glissante : certaines méthodes de détection analysent une image par petites régions, provoquant des détections répétées d'un objet dans des zones qui se chevauchent ;
  • Scores de confiance élevés : le modèle attribue des scores de confiance à chaque prédiction, et des prédictions similaires avec une forte confiance peuvent se chevaucher de manière significative.

Si ces boîtes redondantes ne sont pas filtrées, elles peuvent nuire aux performances de la détection d'objets en augmentant la complexité computationnelle et en rendant le comptage des objets peu fiable.

Fonctionnement de la suppression non maximale (NMS)

La NMS est appliquée pour supprimer les détections dupliquées tout en conservant la boîte englobante la plus confiante. Elle suit les étapes suivantes :

  • Tri des scores : organiser toutes les boîtes englobantes prédites par ordre décroissant de leur score de confiance ;
  • Sélection de la meilleure boîte : choisir la boîte ayant le score le plus élevé et l’ajouter à la liste finale des détections ;
  • Calcul de l’IoU : calculer l’Intersection over Union (IoU) entre la boîte sélectionnée et toutes les boîtes restantes ;
  • Seuil de suppression : supprimer les boîtes ayant un IoU supérieur à un seuil défini (par exemple, 0,5), car elles représentent probablement le même objet ;
  • Répétition : répéter ce processus pour la boîte suivante avec le score le plus élevé jusqu’à ce que toutes les boîtes soient traitées.
import numpy as np

def non_max_suppression(boxes, scores, iou_threshold=0.5):
    # Sort boxes by confidence scores in descending order
    sorted_indices = np.argsort(scores)[::-1]
    selected_boxes = []
    
    while len(sorted_indices) > 0:
        # Pick the highest confidence box
        best_idx = sorted_indices[0]  
        selected_boxes.append(boxes[best_idx])
        
        # Compute IoU with the remaining boxes
        remaining_boxes = boxes[sorted_indices[1:]]
        ious = np.array([compute_iou(boxes[best_idx], box) for box in remaining_boxes])
        
        # Suppress boxes with IoU above threshold
        sorted_indices = sorted_indices[1:][ious < iou_threshold]
    
    return selected_boxes

Soft-NMS : une alternative plus intelligente

La NMS standard supprime toutes les boîtes qui se chevauchent au-dessus d’un certain seuil d’IoU, ce qui peut parfois éliminer des détections utiles. Soft-NMS améliore ce processus en diminuant les scores de confiance des boîtes qui se chevauchent au lieu de les supprimer complètement. Cette méthode permet une suppression plus progressive et peut améliorer les performances de détection dans des scénarios d’objets denses.

Principales différences entre la NMS standard et la Soft-NMS :

  • NMS standard : supprime les boîtes qui se chevauchent au-dessus du seuil d’IoU ;
  • Soft-NMS : réduit les scores de confiance des boîtes qui se chevauchent au lieu de les éliminer, ce qui la rend plus flexible pour la détection d’objets partiellement occultés.

Équilibrer précision et rapidité dans la NMS

Le choix du bon seuil d’IoU est crucial :

  • Seuils plus élevés (par exemple, 0,6 - 0,7) : filtrage plus agressif, ne conservant que les boîtes les plus confiantes mais risquant de manquer certaines détections valides ;
  • Seuils plus bas (par exemple, 0,3 - 0,4) : conserve davantage de boîtes qui se chevauchent, ce qui peut être utile dans des scènes encombrées mais peut augmenter les faux positifs.

L’utilisation d’implémentations optimisées, telles que les fonctions NMS intégrées de TensorFlow ou OpenCV, peut accélérer le traitement pour les applications en temps réel.

La suppression non maximale (NMS) est une technique essentielle en détection d'objets permettant de supprimer les boîtes englobantes redondantes et d'améliorer la précision du modèle. La NMS standard élimine efficacement les détections dupliquées, tandis que la Soft-NMS affine le processus en ajustant les scores de confiance au lieu de supprimer directement. En ajustant finement les seuils d'IoU, il est possible de trouver le bon équilibre entre précision de détection et efficacité computationnelle.

1. Quel est le principal objectif de la suppression non maximale (NMS) en détection d'objets ?

2. Comment la NMS standard détermine-t-elle quelles boîtes englobantes supprimer ?

3. Quelle est la principale différence entre la NMS standard et la Soft-NMS ?

question mark

Quel est le principal objectif de la suppression non maximale (NMS) en détection d'objets ?

Select the correct answer

question mark

Comment la NMS standard détermine-t-elle quelles boîtes englobantes supprimer ?

Select the correct answer

question mark

Quelle est la principale différence entre la NMS standard et la Soft-NMS ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 5
some-alt