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 Boxen 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 Boxen 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:
- Sortierung nach Score: 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;
- Berechnung des IoU: Berechnung des Intersection Over Union (IoU) zwischen der ausgewählten Box und allen verbleibenden Boxen;
- Schwellwertanwendung: Unterdrückung (Entfernung) von Boxen mit einem IoU über einem festgelegten Schwellwert (z. B. 0,5), da diese wahrscheinlich dasselbe Objekt darstellen;
- Wiederholung: Fortsetzung dieses Prozesses mit der nächsthöchst 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-Schwellwerts, 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-Schwellwerts;
- Soft-NMS: reduziert die Konfidenzwerte der überlappenden Boxen anstatt sie zu eliminieren, was die Erkennung von teilweise verdeckten Objekten flexibler macht.
Ausgleich zwischen Genauigkeit und Geschwindigkeit bei NMS
Die Wahl des richtigen IoU-Schwellwerts ist entscheidend:
- Höhere Schwellwerte (z. B. 0,6 - 0,7): aggressivere Filterung, wobei nur die Boxen mit der höchsten Konfidenz beibehalten werden, aber möglicherweise einige gültige Erkennungen verloren gehen;
- Niedrigere Schwellwerte (z. B. 0,3 - 0,4): es bleiben mehr überlappende Boxen erhalten, was in überfüllten Szenen nützlich sein kann, aber 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 wichtige 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 kann ein ausgewogenes Verhältnis zwischen Erkennungsgenauigkeit und Recheneffizienz erreicht werden.
1. Was ist der Hauptzweck von Non-Max Suppression (NMS) in der Objekterkennung?
2. Wie entscheidet 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