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: Wie schätzt man den Abstand zwischen erkannten Objekten mit Ultralytics YOLO in Pixeln 🚀?

Visualisierungen

Entfernungsberechnung mit Ultralytics YOLO11
Ultralytics YOLO11 Distanzberechnung

Vorteile der Entfernungsberechnung

  • 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 den Abstand zu berechnen.
  • Verwenden Sie die rechte Maustaste, um alle gezeichneten Punkte zu löschen.
  • Klicken Sie mit der linken Maustaste auf eine beliebige Stelle des Rahmens, um neue Punkte hinzuzufügen.
Entfernung ist geschätzt

Die Entfernung ist eine Schätzung und möglicherweise nicht ganz genau, da sie anhand von 2D-Daten berechnet wird, die keine Tiefeninformationen enthalten.

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:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics YOLO .

Sie können auch verschiedene nutzen track Argumente in der DistanceCalculation Lösung.

ArgumentTypStandardBeschreibung
trackerstr'botsort.yaml'Gibt den zu verwendenden Tracking-Algorithmus an, z. B. bytetrack.yaml oder botsort.yaml.
conffloat0.3Legt den Konfidenzschwellenwert für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch falsch positive Ergebnisse liefern.
ioufloat0.5Legt den Intersection over Union (IoU)-Schwellenwert zum Filtern überlappender Erkennungen fest.
classeslistNoneFiltert Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen.
verboseboolTrueSteuert die Anzeige der Tracking-Ergebnisse und bietet eine visuelle Ausgabe der verfolgten Objekte.
devicestrNoneGibt 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:

ArgumentTypStandardBeschreibung
showboolFalseWenn 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_widthNone or intNoneGibt 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_confboolTrueZeigt den Konfidenzwert für jede Erkennung zusammen mit der Beschriftung an. Gibt Einblick in die Sicherheit des Modells für jede Erkennung.
show_labelsboolTrueZeigt 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 5 Tagen
glenn-jocherRizwanMunawarMatthewNoyceUltralyticsAssistantjk4eIvorZhu331AyushExel

Kommentare