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 |
---|
![]() |
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 True aktiviert, 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:
- 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 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.