Zum Inhalt springen

Entfernungsberechnung mit Ultralytics YOLO11

Was bedeutet Entfernungsberechnung?

Die Messung des Abstands zwischen zwei Objekten wird als Abstandsberechnung innerhalb eines bestimmten Raums bezeichnet. Im Fall von Ultralytics YOLO11wird der Schwerpunkt des Begrenzungsrahmens verwendet, um den Abstand für die vom Benutzer markierten Begrenzungsrahmen zu berechnen.



Beobachten: Entfernungsberechnung mit Ultralytics YOLO11

Bildmaterial

Entfernungsberechnung mit Ultralytics YOLO11
Ultralytics YOLO11 Berechnung der Entfernung

Vorteile der Entfernungsberechnung?

  • Präzision der Lokalisierung: Verbessert die genaue räumliche Positionierung bei Computer-Vision-Aufgaben.
  • Schätzung der Größe: Ermöglicht die Schätzung der Objektgröße für ein besseres kontextuelles Verständnis.
  • Szeneverständnis: Verbessert das 3D-Szenenverständnis für bessere Entscheidungen in Anwendungen wie autonomen Fahrzeugen und Überwachungssystemen.
  • Kollisionsvermeidung: Ermöglicht es Systemen, potenzielle Kollisionen zu erkennen, indem sie die Abstände zwischen sich bewegenden Objekten überwachen.
  • Räumliche Analyse: Erleichtert die Analyse von Objektbeziehungen und Interaktionen innerhalb der überwachten Umgebung.
Berechnung der Entfernung
  • Klicken Sie mit der linken Maustaste auf zwei beliebige Bounding Boxes, um den Abstand zu berechnen
  • Rechtsklick der Maus löscht alle gezeichneten Punkte
  • Maus Linksklick kann zum Zeichnen von Punkten verwendet werden
Entfernung ist Schätzung
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.

Entfernungsberechnung 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 .

Sie können auch auf verschiedene track Argumente im DistanceCalculation Lösung.

Argument Typ Standard Beschreibung
tracker str 'botsort.yaml' Gibt den zu verwendenden Verfolgungsalgorithmus an, z. B., bytetrack.yaml oder botsort.yaml.
conf float 0.3 Legt die Konfidenzschwelle für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch zu falsch positiven Ergebnissen führen.
iou float 0.5 Legt den Schwellenwert für die Überschneidung über die Vereinigung (IoU) zum Filtern von überlappenden Erkennungen fest.
classes list None Filtert die Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen.
verbose bool True Steuert die Anzeige der Verfolgungsergebnisse und liefert 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 dem Benutzer die Auswahl zwischen CPU, einem bestimmten GPU oder anderen Rechengeräten für die Modellausführung.

Außerdem sind die folgenden Visualisierungsargumente verfügbar:

Argument Typ Standard Beschreibung
show bool False Wenn Truezeigt die kommentierten Bilder oder Videos in einem Fenster an. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder des Testens.
line_width None or int None Gibt die Linienbreite von Begrenzungsrahmen an. Wenn Nonewird die Linienbreite automatisch an die Bildgröße angepasst. Bietet visuelle Anpassung für Klarheit.

Details zur Umsetzung

Die DistanceCalculation Klasse funktioniert, indem sie Objekte über Videobilder hinweg verfolgt und den euklidischen Abstand zwischen den Mittelpunkten ausgewählter Bounding Boxes berechnet. Wenn Sie auf zwei Objekte klicken, wird die Lösung angezeigt:

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

Die Implementierung verwendet die mouse_event_for_distance Methode zur Behandlung von Mausinteraktionen, die es dem Benutzer ermöglicht, Objekte auszuwählen und Auswahlen bei Bedarf zu löschen. Die process Methode übernimmt die Frame-by-Frame-Verarbeitung, die Verfolgung von Objekten und die Berechnung von Entfernungen.

Anwendungen

Die Entfernungsberechnung mit YOLO11 hat zahlreiche praktische Anwendungen:

  • Einzelhandelsanalyse: Messen Sie die Nähe der Kunden zu den Produkten und analysieren Sie die Effektivität des Ladenlayouts
  • Industrielle Sicherheit: Überwachung der Sicherheitsabstände zwischen Arbeitnehmern und Maschinen
  • Verkehrsmanagement: Analyse der Fahrzeugabstände und Erkennung von Überholmanövern
  • Sport-Analyse: Berechnen Sie Entfernungen zwischen Spielern, dem Ball und wichtigen Feldpositionen
  • Gesundheitswesen: Achten Sie auf die richtige Distanzierung in Wartebereichen und überwachen Sie die Bewegungen der Patienten
  • Robotik: Ermöglicht es Robotern, angemessene Abstände zu Hindernissen und Menschen einzuhalten

FAQ

Wie berechne ich Entfernungen zwischen Objekten mit Ultralytics YOLO11 ?

So berechnen Sie Entfernungen zwischen Objekten mit Ultralytics YOLO11müssen Sie die Mittelpunkte der Boundingboxen der erkannten Objekte ermitteln. Dieser Prozess beinhaltet die Initialisierung der DistanceCalculation Klasse von Ultralytics' solutions und verwendet die Tracking-Ausgaben des Modells, um die Entfernungen zu berechnen.

Was sind die Vorteile der Entfernungsberechnung mit Ultralytics YOLO11 ?

Die Entfernungsberechnung mit Ultralytics YOLO11 bietet mehrere Vorteile:

  • Präzision der Lokalisierung: Ermöglicht die genaue räumliche Positionierung von Objekten.
  • Schätzung der Größe: Hilft bei der Schätzung physischer Größen und trägt so zu einem besseren kontextuellen Verständnis bei.
  • Szeneverständnis: Verbessert das 3D-Szenenverständnis und trägt zu einer besseren Entscheidungsfindung bei Anwendungen wie autonomes Fahren und Überwachung bei.
  • Verarbeitung in Echtzeit: Führt Berechnungen im laufenden Betrieb durch und eignet sich daher für die Live-Videoanalyse.
  • Integrationsfähigkeiten: Funktioniert nahtlos mit anderen YOLO11 wie Objektverfolgung und Geschwindigkeitsschätzung.

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

Ja, Sie können Entfernungsberechnungen in Echtzeit-Videostreams mit Ultralytics YOLO11 durchführen. Der Prozess umfasst die Erfassung von Videobildern mit OpenCVLaufen YOLO11 Objekterkennungund die Verwendung der DistanceCalculation um Abstände zwischen Objekten in aufeinanderfolgenden Bildern zu berechnen. Für eine detaillierte Implementierung siehe die Beispiel für einen Videostream.

Wie lösche ich Punkte, die während der Entfernungsberechnung mit Ultralytics YOLO11 gezeichnet wurden?

Um Punkte zu löschen, die während der Entfernungsberechnung mit Ultralytics YOLO11 gezeichnet wurden, können Sie einen rechten Mausklick verwenden. Diese Aktion löscht alle von Ihnen gezeichneten Punkte. Weitere Einzelheiten finden Sie im Abschnitt "Hinweise" unter dem Beispiel für die Abstandsberechnung.

Was sind die Schlüsselargumente für die Initialisierung der Klasse DistanceCalculation in Ultralytics YOLO11 ?

Die wichtigsten Argumente für die Initialisierung der DistanceCalculation Klasse in Ultralytics YOLO11 enthalten:

  • model: Pfad zur YOLO11 .
  • tracker: Zu verwendender Verfolgungsalgorithmus (Standard ist 'botsort.yaml').
  • conf: Konfidenzschwelle für Entdeckungen.
  • show: Flagge zur Anzeige der Ausgabe.

Eine vollständige Liste und Standardwerte finden Sie in den Argumenten von DistanceCalculation.

📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 5 Tagen

Kommentare