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 |
---|
![]() |
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 True zeigt 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 None wird 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:
- Extrahiert die Zentroide (Mittelpunkte) der ausgewählten Bounding Boxes
- Berechnet den euklidischen Abstand zwischen diesen Schwerpunkten in Pixeln
- 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.