Abstandsberechnung mit Ultralytics YOLO26
Was ist Distanzberechnung?
Das Messen des Abstands zwischen zwei Objekten wird als Abstandsberechnung innerhalb eines definierten Raums bezeichnet. Im Falle von Ultralytics YOLO26 wird der Schwerpunkt der Bounding Box verwendet, um den Abstand für vom Benutzer hervorgehobene Bounding Boxes zu berechnen.
Ansehen: So schätzen Sie den Abstand zwischen erkannten Objekten mit Ultralytics YOLO in Pixeln 🚀
Visualisierungen
| Abstandsberechnung mit Ultralytics YOLO26 |
|---|
![]() |
Vorteile der Distanzberechnung
- Lokalisierungs-Präzision: Verbessert die genaue räumliche Positionierung in Computer Vision-Aufgaben.
- Größenschätzung: Ermöglicht die Schätzung der Objektgröße für ein besseres kontextuelles Verständnis.
- Szenenverständnis: Verbessert das 3D-Szenenverständnis für eine bessere Entscheidungsfindung in Anwendungen wie autonomen Fahrzeugen und Überwachungssystemen.
- Kollisionsvermeidung: Ermöglicht Systemen, potenzielle Kollisionen zu detect, indem Abstände zwischen sich bewegenden Objekten überwacht werden.
- Räumliche Analyse: Ermöglicht die Analyse von Objektbeziehungen und Interaktionen innerhalb der überwachten Umgebung.
Entfernungsberechnung
- Klicken Sie mit der linken Maustaste auf zwei beliebige Bounding Boxes, um den Abstand zu berechnen.
- Verwenden Sie die rechte Maustaste, um alle gezeichneten Punkte zu löschen.
- Klicken Sie mit der linken Maustaste beliebig im Rahmen, um neue Punkte hinzuzufügen.
Die Entfernung ist eine Schätzung.
Die Entfernung ist eine Schätzung und möglicherweise nicht vollständig genau, da sie anhand von 2D-Daten berechnet wird, denen Tiefeninformationen fehlen.
Distanzberechnung mit Ultralytics YOLO
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("distance_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize distance calculation object
distancecalculator = solutions.DistanceCalculation(
model="yolo26n.pt", # path to the YOLO26 model file.
show=True, # display the output
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = distancecalculator(im0)
print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
DistanceCalculation() Argumente
Hier ist eine Tabelle mit den DistanceCalculation Argumente:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer Ultralytics YOLO Modelldatei. |
Sie können auch verschiedene nutzen track Argumente in der DistanceCalculation Lösung.
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Gibt den zu verwendenden Tracking-Algorithmus an, z. B. bytetrack.yaml oder botsort.yaml. |
conf | float | 0.1 | Legt den Konfidenzschwellenwert für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch falsch positive Ergebnisse liefern. |
iou | float | 0.7 | Legt den Intersection over Union (IoU)-Schwellenwert für das Filtern überlappender Detektionen fest. |
classes | list | None | Filtert Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen. |
verbose | bool | True | Steuert die Anzeige der Tracking-Ergebnisse und bietet eine visuelle Ausgabe der verfolgten Objekte. |
device | str | None | Gibt das Gerät für die Inferenz an (z. B. cpu, cuda:0 oder 0). Ermöglicht es Benutzern, zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten für die Modellausführung zu wählen. |
Darüber hinaus stehen die folgenden Visualisierungsargumente zur Verfügung:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
show | bool | False | Wenn Trueaktiviert, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder des Testens. |
line_width | int or None | None | Gibt die Linienbreite der Begrenzungsrahmen an. Wenn None, wird die Linienbreite automatisch an die Bildgröße angepasst. Bietet eine visuelle Anpassung für mehr Klarheit. |
show_conf | bool | True | Zeigt den Konfidenzwert für jede Erkennung zusammen mit der Beschriftung an. Gibt Einblick in die Sicherheit des Modells für jede Erkennung. |
show_labels | bool | True | Zeigt Beschriftungen für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte. |
Implementierungsdetails
Die DistanceCalculation Klasse funktioniert, indem Objekte über Video-Frames hinweg verfolgt und die euklidische Distanz zwischen den Schwerpunkten ausgewählter Begrenzungsrahmen berechnet wird. Wenn Sie auf zwei Objekte klicken, ist die Lösung:
- Extrahiert die Zentroide (Mittelpunkte) der ausgewählten Begrenzungsrahmen
- Berechnet die euklidische Distanz zwischen diesen Schwerpunkten in Pixeln
- Zeigt die Distanz auf dem Frame mit einer Verbindungslinie zwischen den Objekten an.
Die Implementierung verwendet die mouse_event_for_distance Methode zur Behandlung von Mausinteraktionen, die es Benutzern ermöglicht, Objekte auszuwählen und Auswahlen nach Bedarf zu löschen. Die process Die Methode übernimmt die Frame-für-Frame-Verarbeitung, die Verfolgung von Objekten und die Berechnung von Entfernungen.
Anwendungen
Die Abstandsberechnung mit YOLO26 hat zahlreiche praktische Anwendungen:
- Einzelhandelsanalytik: Messen Sie die Kundennähe zu Produkten und analysieren Sie die Effektivität der Ladengestaltung.
- Industrielle Sicherheit: Überwachung des Sicherheitsabstands zwischen Arbeitern und Maschinen
- Verkehrsmanagement: Fahrzeugabstände analysieren und dichtes Auffahren detect.
- Sportanalyse: Berechnen Sie die Entfernungen zwischen Spielern, dem Ball und wichtigen Feldpositionen
- Healthcare: Sicherstellung des richtigen Abstands in Wartebereichen und Überwachung der Patientenbewegung
- Robotik: Ermöglicht es Robotern, angemessene Abstände zu Hindernissen und Personen einzuhalten.
FAQ
Wie berechne ich Abstände zwischen Objekten mit Ultralytics YOLO26?
So berechnen Sie Abstände zwischen Objekten mit Ultralytics YOLO26müssen Sie die Schwerpunkte der Begrenzungsrahmen der erkannten Objekte identifizieren. Dieser Prozess umfasst die Initialisierung des/der/des DistanceCalculation Klasse von Ultralytics solutions Modul und verwendet die Tracking-Ausgaben des Modells, um die Entfernungen zu berechnen.
Welche Vorteile bietet die Verwendung der Abstandsberechnung mit Ultralytics YOLO26?
Die Verwendung der Abstandsberechnung mit Ultralytics YOLO26 bietet mehrere Vorteile:
- Lokalisierungspräzision: Bietet eine genaue räumliche Positionierung für Objekte.
- Größenschätzung: Hilft bei der Schätzung physischer Größen und trägt zu einem besseren kontextuellen Verständnis bei.
- Szenenverständnis: Verbessert das 3D-Szenenverständnis und unterstützt eine verbesserte Entscheidungsfindung in Anwendungen wie autonomes Fahren und Überwachung.
- Echtzeitverarbeitung: Führt Berechnungen on-the-fly durch und eignet sich daher für Live-Videoanalysen.
- Integrationsmöglichkeiten: Funktioniert nahtlos mit anderen YOLO26-Lösungen wie Objekt-Tracking und Geschwindigkeitsschätzung.
Kann ich die Abstandsberechnung in Echtzeit-Videostreams mit Ultralytics YOLO26 durchführen?
Ja, Sie können mit Ultralytics YOLO26 Distanzberechnungen in Echtzeit-Videostreams durchführen. Der Prozess umfasst das Erfassen von Videobildern mittels OpenCV, Ausführen von YOLO26 Objekterkennung durchzuführen, und unter Verwendung des DistanceCalculation Klasse zur Berechnung von Abständen zwischen Objekten in aufeinanderfolgenden Frames. Für eine detaillierte Implementierung siehe die Beispiel für einen Video-Stream.
Wie lösche ich Punkte, die während der Abstandsberechnung mit Ultralytics YOLO26 gezeichnet wurden?
Um während der Distanzberechnung mit Ultralytics YOLO26 gezeichnete Punkte zu löschen, können Sie einen rechten Mausklick verwenden. Diese Aktion löscht alle von Ihnen gezeichneten Punkte. Weitere Details finden Sie im Hinweisbereich unter dem Beispiel zur Distanzberechnung.
Was sind die wichtigsten Argumente für die Initialisierung der DistanceCalculation-Klasse in Ultralytics YOLO26?
Die wichtigsten Argumente für die Initialisierung der DistanceCalculation Klasse in Ultralytics YOLO26 umfassen:
model: Pfad zur YOLO26-Modelldatei.tracker: Zu verwendender Tracking-Algorithmus (Standard ist 'botsort.yaml').conf: Konfidenzschwellenwert für Erkennungen.show: Kennzeichen zur Anzeige der Ausgabe.
Eine vollständige Liste mit Standardwerten finden Sie unter den Argumenten von DistanceCalculation.
