Non-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.

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?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
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
Non-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.

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?
Danke für Ihr Feedback!