Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Non-Maximum Suppression (NMS) | Objekterkennung
Grundlagen der Computer Vision

bookNon-Maximum Suppression (NMS)

Objekterkennungsmodelle sagen häufig mehrere überlappende Begrenzungsrahmen für dasselbe Objekt voraus. Dies geschieht, weil Modelle ein Bild auf verschiedenen Skalen und Positionen analysieren, was zu redundanten Vorhersagen führt. Non-Max Suppression (NMS) ist ein entscheidender Nachbearbeitungsschritt, der diese Erkennungen verfeinert, indem die relevantesten Begrenzungsrahmen ausgewählt und unnötige verworfen werden.

nms

Warum mehrere überlappende Rahmen entstehen

Objektdetektoren sagen mehrere Begrenzungsrahmen für ein einzelnes Objekt voraus aufgrund von:

  • Ankerboxen: Einige Modelle, wie Faster R-CNN und YOLO, verwenden vordefinierte Ankerboxen unterschiedlicher Größe, was zu mehrfachen Erkennungen desselben Objekts führt;
  • Sliding-Window-Ansätzen: Einige Erkennungsmethoden analysieren ein Bild in kleinen Regionen, wodurch wiederholte Erkennungen eines Objekts in überlappenden Bereichen entstehen;
  • Hohe Konfidenzwerte: Das Modell weist jeder Vorhersage einen Konfidenzwert zu, und ähnliche Vorhersagen mit hoher Konfidenz können sich stark überlappen.

Wenn diese redundanten Rahmen nicht gefiltert werden, kann dies die Leistung der Objekterkennung negativ beeinflussen, indem die Rechenkomplexität erhöht und die Objektanzahl unzuverlässig wird.

Funktionsweise von Non-Max Suppression

NMS wird angewendet, um doppelte Erkennungen zu entfernen und dabei die Bounding Box mit der höchsten Konfidenz beizubehalten. Das Verfahren umfasst folgende Schritte:

  • Score-Sortierung: Anordnung aller vorhergesagten Bounding Boxes in absteigender Reihenfolge basierend auf ihren Konfidenzwerten;
  • Auswahl der besten Box: Auswahl der Box mit dem höchsten Score und Hinzufügen zur endgültigen Liste der Erkennungen;
  • IoU-Berechnung: Berechnung des Intersection over Union (IoU) zwischen der ausgewählten Box und allen verbleibenden Boxen;
  • Schwellwertsetzung: Unterdrückung (Entfernung) von Boxen mit einem IoU über einem festgelegten Schwellenwert (z. B. 0,5), da diese wahrscheinlich dasselbe Objekt darstellen;
  • Wiederholung: Fortsetzung dieses Prozesses mit der nächsthöher bewerteten Box, bis alle Boxen verarbeitet wurden.
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: Eine intelligentere Alternative

Standard-NMS entfernt alle überlappenden Boxen oberhalb eines bestimmten IoU-Schwellenwerts, was manchmal nützliche Erkennungen ausschließen kann. Soft-NMS verbessert dies, indem die Konfidenzwerte der überlappenden Boxen verringert werden, anstatt sie vollständig zu entfernen. Dieses Verfahren ermöglicht eine sanftere Unterdrückung und kann die Erkennungsleistung in Szenarien mit vielen Objekten verbessern.

Wichtige Unterschiede zwischen Standard-NMS und Soft-NMS:

  • Standard-NMS: entfernt überlappende Boxen oberhalb des IoU-Schwellenwerts;
  • Soft-NMS: reduziert die Konfidenzwerte überlappender Boxen anstatt sie zu eliminieren, wodurch eine flexiblere Erkennung von teilweise verdeckten Objekten möglich ist.

Ausgleich zwischen Genauigkeit und Geschwindigkeit bei NMS

Die Wahl des richtigen IoU-Schwellenwerts ist entscheidend:

  • Höhere Schwellenwerte (z. B. 0,6 - 0,7): aggressivere Filterung, wobei nur die Boxen mit der höchsten Konfidenz beibehalten werden, was jedoch dazu führen kann, dass einige gültige Erkennungen verloren gehen;
  • Niedrigere Schwellenwerte (z. B. 0,3 - 0,4): mehr überlappende Boxen bleiben erhalten, was in überfüllten Szenen nützlich sein kann, jedoch die Anzahl der Fehlalarme erhöhen kann.

Die Verwendung optimierter Implementierungen, wie die integrierten NMS-Funktionen von TensorFlow oder OpenCV, kann die Verarbeitung für Echtzeitanwendungen beschleunigen.

Non-Max Suppression ist eine entscheidende Technik in der Objekterkennung, um redundante Begrenzungsrahmen zu entfernen und die Modellgenauigkeit zu verbessern. Standard-NMS eliminiert effizient doppelte Erkennungen, während Soft-NMS den Prozess verfeinert, indem die Konfidenzwerte angepasst und nicht vollständig entfernt werden. Durch die Feinabstimmung der IoU-Schwellenwerte lässt sich ein ausgewogenes Verhältnis zwischen Erkennungsgenauigkeit und Recheneffizienz erzielen.

1. Was ist der Hauptzweck von Non-Max Suppression (NMS) in der Objekterkennung?

2. Wie bestimmt das Standard-NMS, welche Begrenzungsrahmen unterdrückt werden?

3. Was ist der Hauptunterschied zwischen Standard-NMS und Soft-NMS?

question mark

Was ist der Hauptzweck von Non-Max Suppression (NMS) in der Objekterkennung?

Select the correct answer

question mark

Wie bestimmt das Standard-NMS, welche Begrenzungsrahmen unterdrückt werden?

Select the correct answer

question mark

Was ist der Hauptunterschied zwischen Standard-NMS und Soft-NMS?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 5

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain how to choose the best IoU threshold for my application?

What are the main advantages of using Soft-NMS over standard NMS?

Can you provide more details on how IoU is calculated?

Awesome!

Completion rate improved to 3.45

bookNon-Maximum Suppression (NMS)

Swipe um das Menü anzuzeigen

Objekterkennungsmodelle sagen häufig mehrere überlappende Begrenzungsrahmen für dasselbe Objekt voraus. Dies geschieht, weil Modelle ein Bild auf verschiedenen Skalen und Positionen analysieren, was zu redundanten Vorhersagen führt. Non-Max Suppression (NMS) ist ein entscheidender Nachbearbeitungsschritt, der diese Erkennungen verfeinert, indem die relevantesten Begrenzungsrahmen ausgewählt und unnötige verworfen werden.

nms

Warum mehrere überlappende Rahmen entstehen

Objektdetektoren sagen mehrere Begrenzungsrahmen für ein einzelnes Objekt voraus aufgrund von:

  • Ankerboxen: Einige Modelle, wie Faster R-CNN und YOLO, verwenden vordefinierte Ankerboxen unterschiedlicher Größe, was zu mehrfachen Erkennungen desselben Objekts führt;
  • Sliding-Window-Ansätzen: Einige Erkennungsmethoden analysieren ein Bild in kleinen Regionen, wodurch wiederholte Erkennungen eines Objekts in überlappenden Bereichen entstehen;
  • Hohe Konfidenzwerte: Das Modell weist jeder Vorhersage einen Konfidenzwert zu, und ähnliche Vorhersagen mit hoher Konfidenz können sich stark überlappen.

Wenn diese redundanten Rahmen nicht gefiltert werden, kann dies die Leistung der Objekterkennung negativ beeinflussen, indem die Rechenkomplexität erhöht und die Objektanzahl unzuverlässig wird.

Funktionsweise von Non-Max Suppression

NMS wird angewendet, um doppelte Erkennungen zu entfernen und dabei die Bounding Box mit der höchsten Konfidenz beizubehalten. Das Verfahren umfasst folgende Schritte:

  • Score-Sortierung: Anordnung aller vorhergesagten Bounding Boxes in absteigender Reihenfolge basierend auf ihren Konfidenzwerten;
  • Auswahl der besten Box: Auswahl der Box mit dem höchsten Score und Hinzufügen zur endgültigen Liste der Erkennungen;
  • IoU-Berechnung: Berechnung des Intersection over Union (IoU) zwischen der ausgewählten Box und allen verbleibenden Boxen;
  • Schwellwertsetzung: Unterdrückung (Entfernung) von Boxen mit einem IoU über einem festgelegten Schwellenwert (z. B. 0,5), da diese wahrscheinlich dasselbe Objekt darstellen;
  • Wiederholung: Fortsetzung dieses Prozesses mit der nächsthöher bewerteten Box, bis alle Boxen verarbeitet wurden.
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: Eine intelligentere Alternative

Standard-NMS entfernt alle überlappenden Boxen oberhalb eines bestimmten IoU-Schwellenwerts, was manchmal nützliche Erkennungen ausschließen kann. Soft-NMS verbessert dies, indem die Konfidenzwerte der überlappenden Boxen verringert werden, anstatt sie vollständig zu entfernen. Dieses Verfahren ermöglicht eine sanftere Unterdrückung und kann die Erkennungsleistung in Szenarien mit vielen Objekten verbessern.

Wichtige Unterschiede zwischen Standard-NMS und Soft-NMS:

  • Standard-NMS: entfernt überlappende Boxen oberhalb des IoU-Schwellenwerts;
  • Soft-NMS: reduziert die Konfidenzwerte überlappender Boxen anstatt sie zu eliminieren, wodurch eine flexiblere Erkennung von teilweise verdeckten Objekten möglich ist.

Ausgleich zwischen Genauigkeit und Geschwindigkeit bei NMS

Die Wahl des richtigen IoU-Schwellenwerts ist entscheidend:

  • Höhere Schwellenwerte (z. B. 0,6 - 0,7): aggressivere Filterung, wobei nur die Boxen mit der höchsten Konfidenz beibehalten werden, was jedoch dazu führen kann, dass einige gültige Erkennungen verloren gehen;
  • Niedrigere Schwellenwerte (z. B. 0,3 - 0,4): mehr überlappende Boxen bleiben erhalten, was in überfüllten Szenen nützlich sein kann, jedoch die Anzahl der Fehlalarme erhöhen kann.

Die Verwendung optimierter Implementierungen, wie die integrierten NMS-Funktionen von TensorFlow oder OpenCV, kann die Verarbeitung für Echtzeitanwendungen beschleunigen.

Non-Max Suppression ist eine entscheidende Technik in der Objekterkennung, um redundante Begrenzungsrahmen zu entfernen und die Modellgenauigkeit zu verbessern. Standard-NMS eliminiert effizient doppelte Erkennungen, während Soft-NMS den Prozess verfeinert, indem die Konfidenzwerte angepasst und nicht vollständig entfernt werden. Durch die Feinabstimmung der IoU-Schwellenwerte lässt sich ein ausgewogenes Verhältnis zwischen Erkennungsgenauigkeit und Recheneffizienz erzielen.

1. Was ist der Hauptzweck von Non-Max Suppression (NMS) in der Objekterkennung?

2. Wie bestimmt das Standard-NMS, welche Begrenzungsrahmen unterdrückt werden?

3. Was ist der Hauptunterschied zwischen Standard-NMS und Soft-NMS?

question mark

Was ist der Hauptzweck von Non-Max Suppression (NMS) in der Objekterkennung?

Select the correct answer

question mark

Wie bestimmt das Standard-NMS, welche Begrenzungsrahmen unterdrückt werden?

Select the correct answer

question mark

Was ist der Hauptunterschied zwischen Standard-NMS und Soft-NMS?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 5
some-alt