YOLO Vision 2026:

Abstandsberechnung mit Ultralytics YOLO26#

Was ist eine Abstandsberechnung?#

Die Distanzberechnung ist der Prozess der Messung des Raums zwischen zwei erkannten Objekten in einem Bild oder Videoframed. Im Fall von Ultralytics YOLO26 wird der Schwerpunkt des bounding box verwendet, um die Distanz für vom Benutzer hervorgehobene bounding box zu berechnen.



Watch: How to estimate distance between detected objects with Ultralytics YOLO in Pixels 🚀

Visualisierungen#

Abstandsberechnung mit Ultralytics YOLO26
Ultralytics YOLO26 Distance Calculation

Vorteile der Abstandsberechnung#

  • Lokalisierungs-Präzision: Verbessert die genaue räumliche Positionierung bei 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 Verständnis von 3D-Szenen für eine bessere Entscheidungsfindung in Anwendungen wie autonomous vehicles und Überwachungssystemen.
  • Kollisionsvermeidung: Ermöglicht Systemen, potenzielle Kollisionen durch Überwachung der Abstände zwischen sich bewegenden Objekten zu erkennen.
  • Räumliche Analyse: Erleichtert die Analyse von Objektbeziehungen und Interaktionen innerhalb der überwachten Umgebung.
Abstandsberechnung
  • Klicke mit der linken Maustaste auf zwei beliebige Begrenzungsrahmen, um den Abstand zu berechnen.
  • Verwende die rechte Maustaste, um alle gezeichneten Punkte zu löschen.
  • Klicke mit der linken Maustaste an eine beliebige Stelle im Frame, um neue Punkte hinzuzufügen.
Die Entfernung ist ein Schätzwert

Die Entfernung ist ein Schätzwert und möglicherweise nicht vollständig genau, da sie mithilfe von 2D-Daten berechnet wird, denen Tiefeninformationen fehlen.

Entfernungen mit YOLO26 berechnen#

Die DistanceCalculation-Lösung verfolgt Objekte über Frames hinweg und misst den euklidischen Abstand in Pixeln zwischen den Schwerpunkten von zwei beliebigen bounding box, die du mit der Maus auswählst. Führe das folgende Beispiel aus, klicke dann mit der linken Maustaste auf zwei Objekte, um die Verbindungslinie zu zeichnen und die Distanz abzulesen; klicke mit der rechten Maustaste, um deine Auswahl zu löschen.

Abstandsberechnung 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-Argumenten:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics YOLO-Modelldatei.
line_widthint2Linienstärke für die Boxen, Keypoints und Zählungen, die die Lösung zeichnet.
verboseboolTrueAktiviert das pro-Frame-Protokoll der Lösung für Eingabeform, Klassenzahlen und Verarbeitungsgeschwindigkeit. Der Tracking-Aufruf selbst verläuft immer im Hintergrund.

Du kannst auch verschiedene track-Argumente in der DistanceCalculation-Lösung nutzen.

ArgumentTypStandardBeschreibung
trackerstr'botsort.yaml'Gibt den zu verwendenden Tracking-Algorithmus an. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Legt den Konfidenz-Schwellenwert für Detektionen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber zu falsch-positiven Ergebnissen führen.
ioufloat0.7Legt den Schwellenwert für die Intersection over Union (IoU) zum Filtern überlappender Detektionen fest.
classeslistNoneFiltert Ergebnisse nach Klassenindex. Zum Beispiel verfolgt classes=[0, 2, 3] nur die angegebenen Klassen.
devicestrNoneGibt das Gerät für die Inferenz an (z. B. cpu, cuda:0 oder 0). Ermöglicht Benutzern die Auswahl zwischen CPU, einer spezifischen GPU oder anderen Rechengeräten für die Modellausführung.

Darüber hinaus sind die folgenden Visualisierungsargumente verfügbar:

ArgumentTypStandardBeschreibung
showboolFalseFalls True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für unmittelbares visuelles Feedback während der Entwicklung oder des Testens.
show_confboolTrueZeigt den Konfidenzwert für jede Erkennung neben dem Label an. Bietet Einblick in die Gewissheit des Modells für jede Erkennung.
show_labelsboolTrueZeigt Labels für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte.

Implementierungsdetails#

Die DistanceCalculation-Klasse funktioniert, indem sie Objekte über Video-Frames hinweg verfolgt und den euklidischen Abstand zwischen den Schwerpunkten ausgewählter bounding box berechnet. Wenn du auf zwei Objekte klickst, tut die Lösung Folgendes:

  1. Extrahiert die Schwerpunkte (Mittelpunkte) der ausgewählten Begrenzungsrahmen
  2. Berechnet den euklidischen Abstand zwischen diesen Schwerpunkten in Pixeln
  3. Zeigt den Abstand auf dem Frame mit einer Verbindungslinie zwischen den Objekten an

Die Implementierung verwendet die mouse_event_for_distance-Methode, um Mauseingaben zu verarbeiten, sodass Benutzer Objekte auswählen und Ausdrücke nach Bedarf löschen können. Die process-Methode übernimmt die Frame-für-Frame-Verarbeitung, die Verfolgung von Objekten und die Berechnung von Distanzen.

Anwendungen#

Die Abstandsberechnung mit YOLO26 hat zahlreiche praktische Anwendungen:

  • Einzelhandelsanalyse: Miss die Kundennähe zu Produkten und analysiere die Effektivität des Ladenlayouts
  • Industrielle Sicherheit: Überwache Sicherheitsabstände zwischen Arbeitern und Maschinen
  • Verkehrsmanagement: Analysiere Fahrzeugabstände und erkenne dichtes Auffahren
  • Sportanalyse: Berechne Abstände zwischen Spielern, dem Ball und wichtigen Spielfeldpositionen
  • Gesundheitswesen: Stelle die Einhaltung angemessener Abstände in Wartebereichen sicher und überwache Patientenbewegungen
  • Robotik: Ermögliche Robotern, angemessene Abstände zu Hindernissen und Personen einzuhalten

FAQ#

  • Um Distanzen zwischen Objekten mit Ultralytics YOLO26 zu berechnen, musst du die Schwerpunkte der bounding box der erkannten Objekte identifizieren. Dieser Prozess beinhaltet das Initialisieren der DistanceCalculation-Klasse aus dem solutions-Modul von Ultralytics und die Verwendung der Tracking-Ausgaben des Modells, um die Distanzen zu berechnen.

  • 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 autonomem Fahren und Überwachung.
    • Echtzeitverarbeitung: Führt Berechnungen sofort durch, wodurch sie für die Live-Videoanalyse geeignet ist.
    • Integrationsfunktionen: Funktioniert nahtlos mit anderen YOLO26-Lösungen wie object tracking und speed estimation.
  • Ja, du kannst Distanzberechnungen in Echtzeit-Videostreams mit Ultralytics YOLO26 durchführen. Der Prozess umfasst das Erfassen von Videoframes mit OpenCV, das Ausführen der YOLO26-object detection und die Verwendung der DistanceCalculation-Klasse zur Berechnung von Distanzen zwischen Objekten in aufeinanderfolgenden Frames. Eine detaillierte Implementierung findest du im video stream example.

  • Um Punkte zu löschen, die während der Distanzberechnung mit Ultralytics YOLO26 gezeichnet wurden, kannst du einen Rechtsklick der Maus verwenden. Diese Aktion löscht alle von dir gezeichneten Punkte. Weitere Details findest du im Hinweisabschnitt unter dem distance calculation example.

  • Die wichtigsten Argumente für die Initialisierung der DistanceCalculation-Klasse in Ultralytics YOLO26 umfassen:

    • model: Pfad zur YOLO26-Modelldatei.
    • tracker: Zu verwendender Tracking-Algorithmus (Solutions verwenden standardmäßig botsort.yaml).
    • conf: Konfidenz-Schwellenwert für Erkennungen.
    • show: Flag, um die Ausgabe anzuzeigen.

    Eine vollständige Liste und Standardwerte findest du unter den arguments of DistanceCalculation.

Kommentare