Meet YOLO26: next-gen vision AI.

Link to this sectionAbstandsberechnung mit Ultralytics YOLO26#

Link to this sectionWas ist Abstandsberechnung?#

Die Abstandsberechnung ist der Prozess zur Messung des Raums zwischen zwei erkannten Objekten in einem Bild oder Videorahmen. Im Fall von Ultralytics YOLO26 wird der Schwerpunkt der Bounding Box verwendet, um den Abstand für vom Benutzer hervorgehobene Bounding Boxes zu berechnen.



Watch: How to estimate distance between detected objects with Ultralytics YOLO in Pixels 🚀

Link to this sectionVisualisierungen#

Abstandsberechnung mit Ultralytics YOLO26
Ultralytics YOLO26 Abstandsberechnung

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 es Systemen, potenzielle Kollisionen durch die Ü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 Bounding Boxes, um den Abstand zu berechnen.
  • Verwende die rechte Maustaste, um alle gezeichneten Punkte zu löschen.
  • Klicke mit der linken Maustaste irgendwo in den Rahmen, um neue Punkte hinzuzufügen.
Die Distanz ist eine Schätzung

Die Distanz ist eine Schätzung und möglicherweise nicht vollständig genau, da sie unter Verwendung von 2D-Daten berechnet wird, denen es an Tiefeninformationen fehlt.

Abstandsberechnung 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="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 windows

Link to this sectionDistanceCalculation() Argumente#

Hier ist eine Tabelle mit den DistanceCalculation Argumenten:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics YOLO Modelldatei.

Du kannst auch verschiedene track Argumente in der DistanceCalculation Lösung verwenden.

ArgumentTypStandardBeschreibung
trackerstr'botsort.yaml'Gibt den zu verwendenden Tracking-Algorithmus an, z.B. bytetrack.yaml oder botsort.yaml.
conffloat0.1Legt den Konfidenz-Schwellenwert für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber falsch-positive Ergebnisse enthalten.
ioufloat0.7Legt den Intersection over Union (IoU) Schwellenwert zum Filtern überlappender Erkennungen fest.
classeslistNoneFiltert Ergebnisse nach Klassenindex. Zum Beispiel verfolgt classes=[0, 2, 3] nur die angegebenen Klassen.
verboseboolTrueSteuert die Anzeige von Tracking-Ergebnissen und liefert eine visuelle Ausgabe der verfolgten Objekte.
devicestrNoneGibt das Gerät für die Inferenz an (z.B. cpu, cuda:0 oder 0). Ermöglicht Benutzern die Auswahl zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten für die Modellausführung.

Darüber hinaus sind die folgenden Visualisierungsargumente verfügbar:

ArgumentTypStandardBeschreibung
showboolFalseWenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder beim Testen.
line_widthint or NoneNoneGibt die Linienbreite der Bounding Boxes an. Wenn None, wird die Linienbreite automatisch basierend auf der Bildgröße angepasst. Bietet visuelle Anpassung für mehr Klarheit.
show_confboolTrueZeigt den Konfidenzwert für jede Erkennung neben dem Label an. Gibt Aufschluss über die Sicherheit des Modells für jede Erkennung.
show_labelsboolTrueZeigt Labels für jede Erkennung in der visuellen Ausgabe an. Bietet sofortiges Verständnis der erkannten Objekte.

Link to this sectionImplementierungsdetails#

Die DistanceCalculation Klasse funktioniert durch das Verfolgen von Objekten über Videobilder hinweg und die Berechnung des euklidischen Abstands zwischen den Schwerpunkten ausgewählter Bounding Boxes. Wenn du auf zwei Objekte klickst, macht die Lösung folgendes:

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

Die Implementierung verwendet die Methode mouse_event_for_distance, um Mausinteraktionen zu verarbeiten, sodass Benutzer Objekte auswählen und Auswahlen bei Bedarf löschen können. Die process Methode übernimmt die bildweise Verarbeitung, das Tracking der Objekte und die Berechnung der Abstände.

Link to this sectionAnwendungen#

Die Abstandsberechnung mit YOLO26 hat zahlreiche praktische Anwendungen:

  • Einzelhandelsanalyse: Miss die Nähe von Kunden zu Produkten und analysiere die Wirksamkeit des Ladenlayouts
  • Industrielle Sicherheit: Überwache Sicherheitsabstände zwischen Arbeitern und Maschinen
  • Verkehrsmanagement: Analysiere den Fahrzeugabstand und erkenne zu dichtes Auffahren
  • Sportanalyse: Berechne Abstände zwischen Spielern, dem Ball und wichtigen Spielfeldpositionen
  • Gesundheitswesen: Stelle die korrekte Distanzierung in Wartebereichen sicher und überwache die Patientenbewegung
  • Robotik: Ermögliche Robotern, angemessene Abstände zu Hindernissen und Menschen 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 Bounding Boxes 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, um die Abstände zu berechnen.

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 physikalischer Größen und trägt zu einem besseren kontextuellen Verständnis bei.
  • Szenenverständnis: Verbessert das Verständnis von 3D-Szenen und unterstützt eine verbesserte Entscheidungsfindung in Anwendungen wie autonomem Fahren und Überwachung.
  • Echtzeitverarbeitung: Führt Berechnungen on-the-fly durch, wodurch sie für Live-Videoanalysen geeignet ist.
  • Integrationsmöglichkeiten: Funktioniert nahtlos mit anderen YOLO26 Lösungen wie Objekt-Tracking und Geschwindigkeitsschätzung.

Link to this sectionKann ich die Abstandsberechnung in Echtzeit-Videostreams mit Ultralytics YOLO26 durchführen?#

Ja, du kannst die Abstandsberechnung in Echtzeit-Videostreams mit Ultralytics YOLO26 durchführen. Der Prozess umfasst das Erfassen von Videobildern mithilfe von OpenCV, das Ausführen der YOLO26 Objekterkennung und die Verwendung der DistanceCalculation Klasse, um Abstände zwischen Objekten in aufeinanderfolgenden Bildern 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 Punkte zu löschen, die während der Abstandsberechnung mit Ultralytics YOLO26 gezeichnet wurden, 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 Beispiel zur Abstandsberechnung.

Link to this sectionWas sind die wichtigsten Argumente für die Initialisierung der DistanceCalculation Klasse in Ultralytics YOLO26?#

Die wichtigsten Argumente für die Initialisierung der DistanceCalculation Klasse in Ultralytics YOLO26 beinhalten:

  • model: Pfad zur YOLO26 Modelldatei.
  • tracker: Zu verwendender Tracking-Algorithmus (Standard ist 'botsort.yaml').
  • conf: Konfidenz-Schwellenwert für Erkennungen.
  • show: Flag zur Anzeige der Ausgabe.

Für eine vollständige Liste und Standardwerte, siehe die Argumente von DistanceCalculation.

Kommentare