Zum Inhalt springen

Entfernungsberechnung mit Ultralytics YOLO11

Was ist Distanzberechnung?

Die Messung der Lücke zwischen zwei Objekten wird als Abstandsberechnung innerhalb eines bestimmten Raums bezeichnet. Im Fall von Ultralytics YOLO11 wird der Bounding-Box-Zentroid verwendet, um den Abstand für vom Benutzer hervorgehobene Bounding Boxes zu berechnen.



Ansehen: Entfernungsberechnung mit Ultralytics YOLO11

Visualisierungen

Entfernungsberechnung mit Ultralytics YOLO11
Ultralytics YOLO11 Distanzberechnung

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.
  • Collision Avoidance: Ermöglicht es Systemen, potenzielle Kollisionen zu erkennen, indem sie die Abstände zwischen sich bewegenden Objekten überwachen.
  • 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 Begrenzungsrahmen, um die Entfernung zu berechnen
  • Mit der rechten Maustaste werden alle gezeichneten Punkte gelöscht
  • Mit der linken Maustaste können Punkte gezeichnet werden
Entfernung ist geschätzt
Distance will be an estimate and may not be fully accurate, as it is calculated using 2-dimensional data,
which lacks information about the object's depth.

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="yolo11n.pt",  # path to the YOLO11 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 zur 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.3 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.5 Legt den Intersection over Union (IoU)-Schwellenwert zum Filtern überlappender Erkennungen 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 None or int 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:

  1. Extrahiert die Zentroide (Mittelpunkte) der ausgewählten Begrenzungsrahmen
  2. Berechnet die euklidische Distanz zwischen diesen Schwerpunkten in Pixeln
  3. 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 Distanzberechnung mit YOLO11 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: Analysieren Sie den Fahrzeugabstand und erkennen Sie Drängeln
  • 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 YOLO11?

So berechnen Sie Abstände zwischen Objekten mit Ultralytics YOLO11mü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 Distanzberechnung mit Ultralytics YOLO11?

Die Verwendung von Distanzberechnungen mit Ultralytics YOLO11 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 YOLO11-Lösungen wie Objektverfolgung und Geschwindigkeitsmessung.

Kann ich mit Ultralytics YOLO11 eine Abstandsberechnung in Echtzeit-Videostreams durchführen?

Ja, Sie können mit Ultralytics YOLO11 die Distanzberechnung in Echtzeit-Videostreams durchführen. Der Prozess umfasst das Erfassen von Videobildern mit OpenCVYOLO11 ausführen 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 YOLO11 gezeichnet wurden?

Um Punkte zu löschen, die während der Distanzberechnung mit Ultralytics YOLO11 gezeichnet wurden, können Sie einen Rechtsklick mit der Maus verwenden. Diese Aktion löscht alle von Ihnen gezeichneten Punkte. Weitere Informationen finden Sie im Abschnitt "Hinweis" unter dem Beispiel zur Distanzberechnung.

Welche Hauptargumente gibt es für die Initialisierung der DistanceCalculation-Klasse in Ultralytics YOLO11?

Die wichtigsten Argumente für die Initialisierung der DistanceCalculation Klassen in Ultralytics YOLO11 umfassen:

  • model: Pfad zur YOLO11 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.



📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 4 Monaten

Kommentare