Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Nicht-Maximum-UnterdrückungNMS)

Erfahren Sie, wie Non-Maximum Suppression (NMS) doppelte Begrenzungsrahmen bei der Objekterkennung eliminiert. Entdecken Sie, wie Ultralytics native NMS bietet.

Die Nicht-Maximalunterdrückung (NMS) ist eine Nachbearbeitungstechnik, die bei der Objekterkennung eingesetzt wird, um die Rohvorhersagen eines Modells zu verfeinern. Wenn ein Objekterkennungsmodell ein Bild analysiert, generiert es häufig mehrere überlappende Begrenzungsrahmen für ein einzelnes Objekt, jeweils mit einem zugehörigen Konfidenzwert. Diese redundanten Vorhersagen treten auf, weil das Modell möglicherweise detect in leicht unterschiedlichen Maßstäben oder Positionen detect . NMS diese Ausgabe, indem es nur den genauesten Begrenzungsrahmen für jedes Objekt beibehält und die anderen verwirft, wodurch sichergestellt wird, dass die endgültige Ausgabe sauber, präzise und frei von Duplikaten ist.

Wie Non-Maximum Suppression funktioniert

Der NMS arbeitet mit einer Liste von in Frage kommenden Begrenzungsrahmen und den entsprechenden Konfidenzwerten. Das Ziel besteht darin, den besten Rahmen für ein Objekt auszuwählen und alle anderen Rahmen, die sich erheblich mit diesem überschneiden, zu unterdrücken (zu entfernen), da es sich dabei wahrscheinlich um doppelte Erkennungen desselben Objekts handelt. Der Prozess umfasst in der Regel die folgenden Schritte:

  1. Filtern: Alle Begrenzungsrahmen mit Konfidenzwerten unter einem bestimmten Schwellenwert (z. B. 0,25) werden entfernt, um schwache Vorhersagen sofort zu eliminieren.
  2. Sortieren: Sortieren Sie die verbleibenden Kästchen in absteigender Reihenfolge nach ihren Konfidenzwerten.
  3. Auswahl: Wählen Sie das Feld mit dem höchsten Konfidenzwert als gültige Erkennung aus.
  4. Vergleich: Vergleichen Sie dieses ausgewählte Feld mit allen anderen verbleibenden Feldern mithilfe von Intersection over Union (IoU), einer Metrik, die die Überschneidung zwischen zwei Feldern misst.
  5. Unterdrückung: Wenn die IoU dem ausgewählten Kasten und einem anderen Kasten einen vordefinierten Schwellenwert überschreitet (z. B. 0,45), wird der Kasten mit der niedrigeren Punktzahl als Duplikat betrachtet und entfernt.
  6. Iteration: Wiederholen Sie den Vorgang mit dem Feld mit der nächsthöchsten Punktzahl, das noch nicht unterdrückt oder ausgewählt wurde, bis alle Felder verarbeitet sind.

Anwendungsfälle in der Praxis

NMS unverzichtbar in Szenarien, in denen Präzision von größter Bedeutung ist und doppelte Erkennungen nachgelagerte Systeme verwirren können.

  • Autonomes Fahren: In selbstfahrenden Autosystemen detect Kameras detect , andere Fahrzeuge und Verkehrszeichen. Ein Modell könnte drei leicht unterschiedliche Kästchen für einen einzelnen Fußgänger vorhersagen. NMS , dass das Planungssystem des Fahrzeugs nur eine Koordinate für diesen Fußgänger erhält, wodurch unregelmäßiges Bremsen oder Fehler bei der Wegplanung verhindert werden, die durch „Phantom”-Hindernisse verursacht werden.
  • Bestandsverwaltung im Einzelhandel: Bei der Verwendung von Computer Vision zur Zählung von Produkten in einem Regal liegen die Artikel oft dicht beieinander. Ohne NMS könnte eine einzelne Getränkedose aufgrund sich überschneidender Vorhersagen doppelt gezählt werden, was zu ungenauen Bestandsangaben führen würde. NMS diese Erkennungen, um sicherzustellen, dass die Bestandszählung mit der Realität übereinstimmt.

NMS mit PyTorch

Obwohl viele moderne Frameworks NMS verarbeiten, hilft das Verständnis der Implementierung bei der Optimierung der Parameter. Das folgende Beispiel zeigt, wie NMS der PyTorch angewendet wird:

import torch
import torchvision.ops as ops

# Example bounding boxes: [x1, y1, x2, y2]
boxes = torch.tensor(
    [
        [100, 100, 200, 200],  # Box A
        [105, 105, 195, 195],  # Box B (High overlap with A)
        [300, 300, 400, 400],  # Box C (Distinct object)
    ],
    dtype=torch.float32,
)

# Confidence scores for each box
scores = torch.tensor([0.9, 0.8, 0.95], dtype=torch.float32)

# Apply NMS with an IoU threshold of 0.5
# Boxes with IoU > 0.5 relative to the highest scoring box are suppressed
keep_indices = ops.nms(boxes, scores, iou_threshold=0.5)

print(f"Indices to keep: {keep_indices.tolist()}")
# Output will likely be [2, 0] corresponding to Box C (0.95) and Box A (0.9),
# while Box B (0.8) is suppressed due to overlap with A.

NMS . End-to-End-Erkennung

Traditionell NMS ein obligatorischer „Aufräumschritt”, der außerhalb des Hauptneuronalen Netzwerks stattfand und die Inferenzlatenz NMS . Das Gebiet entwickelt sich jedoch in Richtung End-to-End-Architekturen.

  • NMS: Ein heuristischer Prozess, der eine manuelle Anpassung des IoU erfordert. Ist der Schwellenwert zu niedrig, können gültige Objekte, die nahe beieinander liegen, übersehen werden (geringe Erinnerungsrate). Ist er zu hoch, bleiben Duplikate erhalten (geringe Genauigkeit).
  • End-to-End-Modelle: Modelle der nächsten Generation wie YOLO26 sind von Grund auf als End-to-End-Modelle konzipiert. Sie lernen während des Trainings, genau eine Box pro Objekt vorherzusagen, wodurch sie den NMS effektiv verinnerlichen. Dadurch entfällt die Notwendigkeit einer externen Nachbearbeitung, was zu schnelleren Inferenzgeschwindigkeiten und einfacheren Bereitstellungspipelines auf der Ultralytics führt.

Verwandte Konzepte

  • NMS: Eine Variante, bei der überlappende Boxen nicht vollständig entfernt werden, sondern ihre Konfidenzwerte reduziert werden. Dadurch können sich teilweise überlappende Objekte (wie Menschen in einer Menschenmenge) weiterhin erkannt werden, wenn ihre Werte nach dem Verfall hoch genug bleiben.
  • Ankerboxen: Vordefinierte Boxformen, die von vielen Detektoren zur Schätzung der Objektgröße verwendet werden. NMS auf die endgültigen Vorhersagen angewendet, die aus diesen Ankern verfeinert wurden.
  • Intersection over Union (IoU): Die von NMS verwendete mathematische Formel NMS Bestimmung des Überlappungsgrades zweier Boxen, die als Entscheidungsschwelle für die Unterdrückung dient.

Werden Sie Mitglied der Ultralytics

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten