Link to this sectionAbstandsberechnung mit Ultralytics YOLO26#
Link to this sectionWas ist eine Abstandsberechnung?#
Die Abstandsberechnung ist der Prozess der Messung des Raums zwischen zwei erkannten Objekten innerhalb eines Bildes oder Videoframes. Im Falle von Ultralytics YOLO26 wird der Schwerpunkt des Begrenzungsrahmens verwendet, um den Abstand für vom Benutzer markierte Begrenzungsrahmen zu berechnen.
Watch: How to estimate distance between detected objects with Ultralytics YOLO in Pixels 🚀
Link to this sectionVisualisierungen#
| Abstandsberechnung mit Ultralytics YOLO26 |
|---|
![]() |
Link to this sectionVorteile der Abstandsberechnung#
- Lokalisierungs-Präzision: Verbessert die genaue räumliche Positionierung bei 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 Verständnis von 3D-Szenen für eine bessere Entscheidungsfindung in Anwendungen wie autonomen Fahrzeugen und Überwachungssystemen.
- Kollisionsvermeidung: Ermöglicht Systemen, potenzielle Kollisionen durch Überwachung der Abstände zwischen sich bewegenden Objekten zu erkennen.
- Räumliche Analyse: Erleichtert die Analyse von Objektbeziehungen und Interaktionen innerhalb der überwachten Umgebung.
Abstandsberechnung
- Klicke mit der linken Maustaste auf zwei beliebige Begrenzungsrahmen, um den Abstand zu berechnen.
- Verwende die rechte Maustaste, um alle gezeichneten Punkte zu löschen.
- Klicke mit der linken Maustaste an eine beliebige Stelle im Frame, um neue Punkte hinzuzufügen.
Die Entfernung ist ein Schätzwert
Die Entfernung ist ein Schätzwert und möglicherweise nicht vollständig genau, da sie mithilfe von 2D-Daten berechnet wird, denen Tiefeninformationen fehlen.
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="yolo26n.pt", # path to the YOLO26 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 windowsLink to this sectionDistanceCalculation() Argumente#
Hier ist eine Tabelle mit den DistanceCalculation-Argumenten:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer Ultralytics YOLO-Modelldatei. |
Du kannst auch verschiedene track-Argumente in der DistanceCalculation-Lösung nutzen.
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Legt den zu verwendenden Tracking-Algorithmus fest. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Legt den Konfidenz-Schwellenwert für Detektionen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber zu falsch-positiven Ergebnissen führen. |
iou | float | 0.7 | Legt den IoU-Schwellenwert für das Filtern überlappender Detektionen fest. |
classes | list | None | Filtert Ergebnisse nach Klassenindex. Zum Beispiel verfolgt classes=[0, 2, 3] 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 die Wahl zwischen CPU, einer spezifischen GPU oder anderen Rechengeräten für die Modellausführung. |
Darüber hinaus sind die folgenden Visualisierungsargumente verfügbar:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
show | bool | False | Wenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder Tests. |
line_width | int or None | None | Legt die Linienbreite der BBoxen fest. Wenn None, wird die Linienbreite automatisch basierend auf der Bildgröße angepasst. Bietet visuelle Anpassungsmöglichkeiten für mehr Klarheit. |
show_conf | bool | True | Zeigt den Konfidenzwert für jede Erkennung neben dem Label an. Bietet Einblick in die Gewissheit des Modells für jede Erkennung. |
show_labels | bool | True | Zeigt Labels für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte. |
Link to this sectionImplementierungsdetails#
Die DistanceCalculation-Klasse funktioniert, indem Objekte über Video-Frames hinweg verfolgt und der euklidische Abstand zwischen den Schwerpunkten ausgewählter Begrenzungsrahmen berechnet wird. Wenn du auf zwei Objekte klickst, führt die Lösung folgende Schritte aus:
- Extrahiert die Schwerpunkte (Mittelpunkte) der ausgewählten Begrenzungsrahmen
- Berechnet den euklidischen Abstand zwischen diesen Schwerpunkten in Pixeln
- Zeigt den Abstand auf dem Frame mit einer Verbindungslinie zwischen den Objekten an
Die Implementierung verwendet die mouse_event_for_distance-Methode, um Mausinteraktionen zu verarbeiten, was es Benutzern ermöglicht, Objekte auszuwählen und Auswahlen bei Bedarf zu löschen. Die process-Methode übernimmt die Frame-für-Frame-Verarbeitung, das Tracking von Objekten und die Berechnung von Abständen.
Link to this sectionAnwendungen#
Die Abstandsberechnung mit YOLO26 hat zahlreiche praktische Anwendungen:
- Einzelhandelsanalyse: Miss die Kundennähe zu Produkten und analysiere die Effektivität des Ladenlayouts
- Industrielle Sicherheit: Überwache Sicherheitsabstände zwischen Arbeitern und Maschinen
- Verkehrsmanagement: Analysiere Fahrzeugabstände und erkenne dichtes Auffahren
- Sportanalyse: Berechne Abstände zwischen Spielern, dem Ball und wichtigen Spielfeldpositionen
- Gesundheitswesen: Stelle die Einhaltung angemessener Abstände in Wartebereichen sicher und überwache Patientenbewegungen
- Robotik: Ermögliche Robotern, angemessene Abstände zu Hindernissen und Personen einzuhalten
Link to this sectionFAQ#
Link to this sectionWie berechne ich Abstände zwischen Objekten mit Ultralytics YOLO26?#
Um Abstände zwischen Objekten mit Ultralytics YOLO26 zu berechnen, musst du die Schwerpunkte der Begrenzungsrahmen der erkannten Objekte identifizieren. Dieser Prozess beinhaltet die Initialisierung der DistanceCalculation-Klasse aus dem solutions-Modul von Ultralytics und die Verwendung der Tracking-Ausgaben des Modells zur Berechnung der Abstände.
Link to this sectionWas sind die Vorteile der Verwendung der Abstandsberechnung mit Ultralytics YOLO26?#
Die Verwendung der Abstandsberechnung mit Ultralytics YOLO26 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 autonomem Fahren und Überwachung.
- Echtzeitverarbeitung: Führt Berechnungen sofort durch, wodurch sie für die Live-Videoanalyse geeignet ist.
- Integrationsmöglichkeiten: Funktioniert nahtlos mit anderen YOLO26-Lösungen wie Objekt-Tracking und Geschwindigkeitsschätzung.
Link to this sectionKann ich eine Abstandsberechnung in Echtzeit-Videostreams mit Ultralytics YOLO26 durchführen?#
Ja, du kannst eine Abstandsberechnung in Echtzeit-Videostreams mit Ultralytics YOLO26 durchführen. Der Prozess umfasst das Aufnehmen von Videoframes mit OpenCV, das Ausführen der YOLO26-Objekterkennung und die Verwendung der DistanceCalculation-Klasse, um Abstände zwischen Objekten in aufeinanderfolgenden Frames zu berechnen. Für eine detaillierte Implementierung siehe das Videostream-Beispiel.
Link to this sectionWie lösche ich Punkte, die während der Abstandsberechnung mit Ultralytics YOLO26 gezeichnet wurden?#
Um während der Abstandsberechnung mit Ultralytics YOLO26 gezeichnete Punkte zu löschen, kannst du einen Rechtsklick mit der Maus verwenden. Diese Aktion löscht alle von dir gezeichneten Punkte. Weitere Details findest du im Hinweis-Abschnitt unter dem Abstandsberechnungs-Beispiel.
Link to this sectionWas sind die wichtigsten Argumente für die Initialisierung der DistanceCalculation-Klasse in Ultralytics YOLO26?#
Zu den wichtigsten Argumenten für die Initialisierung der DistanceCalculation-Klasse in Ultralytics YOLO26 gehören:
model: Pfad zur YOLO26-Modelldatei.tracker: Zu verwendender Tracking-Algorithmus (Standard ist 'botsort.yaml').conf: Konfidenz-Schwellenwert für Erkennungen.show: Flag, um die Ausgabe anzuzeigen.
Für eine vollständige Liste und Standardwerte siehe die Argumente von DistanceCalculation.
