Entdecken Sie Non-Maximum SuppressionNMS) für die Objekterkennung. Erfahren Sie, wie es die Ergebnisse verfeinert, die Genauigkeit erhöht und KI-Anwendungen wie YOLO unterstützt.
Non-Maximum SuppressionNMS) ist eine wichtige Nachbearbeitungstechnik, die in der Computer Vision zur Verfeinerung der Ergebnisse von Objekterkennungsalgorithmen zu verfeinern. Wenn ein Modell ein Bild analysiert ein Bild analysiert, sagt es häufig mehrere überlappende Bounding Boxes für ein einzelnes Objekt, jedes mit einer bestimmten Wahrscheinlichkeit. NMS filtert diese redundanten Vorhersagen, um sicherzustellen, dass jedes einzigartige Objekt genau einmal identifiziert wird. identifiziert wird, wobei nur die genaueste Box beibehalten und der Rest verworfen wird. Dieser Prozess ist entscheidend für eine hohe Präzision in realen Anwendungen und verhindert, dass Systeme verhindern, dass Systeme "Geister"-Duplikate desselben Ziels erkennen.
Der NMS funktioniert wie ein Filter, der die Rohausgabe eines Deep-Learning-Modells bereinigt. Er stützt sich stark auf zwei Schlüssel Metriken: dem Konfidenzwert, der angibt, wie sicher wie sicher das Modell ist, dass eine Box ein Objekt enthält, und die Intersection over Union (IoU), die die die räumliche Überlappung zwischen zwei Boxen misst.
Der Standard-Greedy-Algorithmus für NMS folgt im Allgemeinen diese Schritte:
Fortgeschrittene Varianten, wie NMS, verringern die Erkennungsergebnisse von überlappenden Boxen ab, anstatt sie ganz zu eliminieren, was in belebten Szenen, in denen sich die Objekte gegenseitig verdecken, von Vorteil sein kann. sich gegenseitig verdecken.
NMS ist allgegenwärtig in Systemen, die sich auf künstliche Intelligenz zur Interpretation visueller Daten angewiesen sind. Seine Rolle ist besonders wichtig in sicherheitskritischen und hochpräzisen Umgebungen.
In der Ultralytics YOLO11 Rahmenwerk ist NMS direkt in die direkt in die Vorhersage-Pipeline integriert. Die Benutzer können NMS wie den IoU leicht anpassen, um ein Gleichgewicht zwischen zwischen dem Entfernen von Duplikaten und dem Trennen eng beieinander liegender Objekte.
Das folgende Codeschnipsel zeigt, wie die Inferenz ausgeführt und die NMS mithilfe der
ultralytics Paket:
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on an image
# 'iou=0.5' sets the NMS threshold; boxes with >50% overlap are suppressed
# 'conf=0.25' filters out boxes with low confidence before NMS runs
results = model.predict("https://ultralytics.com/images/bus.jpg", iou=0.5, conf=0.25)
# Display the number of detected objects after NMS
print(f"Objects detected: {len(results[0].boxes)}")
Es ist wichtig, NMS von anderen Begriffen zu unterscheiden, die in Detektionspipelines vorkommen.
Für Entwickler, die diese Modelle effizient einsetzen wollen, ist das Verständnis der Auswirkungen von NMS auf Echtzeit-Inferenz entscheidend. Tools wie TensorRT enthalten oft optimierte NMS , um diesen Schritt Schritt während der Modellbereitstellung zu beschleunigen.