Zum Inhalt springen

VisionEye View Object Mapping mit Ultralytics YOLO11 🚀

Was ist VisionEye Object Mapping?

Ultralytics YOLO11 VisionEye bietet Computern die Möglichkeit, Objekte zu identifizieren und zu lokalisieren und so die Beobachtungs-Präzision des menschlichen Auges zu simulieren. Diese Funktionalität ermöglicht es Computern, bestimmte Objekte zu erkennen und sich auf sie zu konzentrieren, ähnlich wie das menschliche Auge Details aus einem bestimmten Blickwinkel betrachtet.

VisionEye View Objektkartierung mit Objektverfolgung unter Verwendung von Ultralytics YOLO11

VisionEye-Mapping mit Ultralytics YOLO

# Monitor objects position with visioneye
yolo solutions visioneye show=True

# Pass a source video
yolo solutions visioneye source="path/to/video.mp4"

# Monitor the specific classes
yolo solutions visioneye classes="[0, 5]"
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("visioneye_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize vision eye object
visioneye = solutions.VisionEye(
    show=True,  # display the output
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e, YOLOv10
    classes=[0, 2],  # generate visioneye view for specific classes
    vision_point=(50, 50),  # the point, where vision will view objects and draw tracks
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    results = visioneye(im0)

    print(results)  # access the output

    video_writer.write(results.plot_im)  # write the video file

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

VisionEye Argumente

Hier ist eine Tabelle mit den VisionEye Argumente:

Argument Typ Standard Beschreibung
model str None Pfad zur Ultralytics YOLO Modelldatei.
vision_point tuple[int, int] (20, 20) Der Punkt, an dem Vision Objekte verfolgt und Pfade mithilfe der VisionEye-Lösung zeichnet.

Sie können auch verschiedene nutzen track Argumente innerhalb der VisionEye 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 werden einige Visualisierungsargumente unterstützt, die unten aufgeführt sind:

Argument Typ Standard Beschreibung
show bool False Wenn 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_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.

Wie VisionEye funktioniert

VisionEye funktioniert, indem ein fester Sichtpunkt im Frame festgelegt und Linien von diesem Punkt zu erkannten Objekten gezogen werden. Dies simuliert, wie das menschliche Sehen mehrere Objekte von einem einzigen Standpunkt aus fokussiert. Die Lösung verwendet Objektverfolgung, um eine konsistente Identifizierung von Objekten über Frames hinweg aufrechtzuerhalten und eine visuelle Darstellung der räumlichen Beziehung zwischen dem Betrachter (Sichtpunkt) und den Objekten in der Szene zu erstellen.

Die process Die Methode in der VisionEye-Klasse führt mehrere Schlüsseloperationen aus:

  1. Extrahiert Tracks (Begrenzungsrahmen, Klassen und Masken) aus dem Eingabebild
  2. Erstellt einen Annotator zum Zeichnen von Begrenzungsrahmen und Beschriftungen
  3. Für jedes erkannte Objekt wird eine Box-Beschriftung gezeichnet und eine Sichtlinie vom Sichtpunkt aus erstellt.
  4. Gibt das annotierte Bild mit Tracking-Statistiken zurück

Dieser Ansatz ist besonders nützlich für Anwendungen, die räumliches Bewusstsein und die Visualisierung von Objektbeziehungen erfordern, wie z. B. Überwachungssysteme, autonome Navigation und interaktive Installationen.

Anwendungen von VisionEye

Das VisionEye-Objekt-Mapping bietet zahlreiche praktische Anwendungen in verschiedenen Branchen:

  • Sicherheit und Überwachung: Überwachen Sie mehrere Objekte von Interesse von einer festen Kameraposition aus
  • Einzelhandelsanalytik: Verfolgen Sie Kundenbewegungsmuster in Bezug auf Warenauslagen
  • Sportanalyse: Analysieren Sie die Positionierung und Bewegung der Spieler aus der Perspektive eines Trainers
  • Autonome Fahrzeuge: Visualisieren Sie, wie ein Fahrzeug Objekte in seiner Umgebung "sieht" und priorisiert.
  • Mensch-Computer-Interaktion: Schaffen Sie intuitivere Schnittstellen, die auf räumliche Beziehungen reagieren

Durch die Kombination von VisionEye mit anderen Ultralytics-Lösungen wie Abstandsberechnung oder Geschwindigkeitsschätzung können Sie umfassende Systeme erstellen, die nicht nur Objekte verfolgen, sondern auch ihre räumlichen Beziehungen und Verhaltensweisen verstehen.

Hinweis

Bei Fragen können Sie diese gerne im Ultralytics Issue Bereich oder im unten erwähnten Diskussionsbereich posten.

FAQ

Wie beginne ich mit der Verwendung von VisionEye Object Mapping mit Ultralytics YOLO11?

Um mit der VisionEye-Objektzuordnung mit Ultralytics YOLO11 zu beginnen, müssen Sie zuerst das Ultralytics YOLO-Paket über pip installieren. Anschließend können Sie den in der Dokumentation bereitgestellten Beispielcode verwenden, um die Objekterkennung mit VisionEye einzurichten. Hier ist ein einfaches Beispiel für den Einstieg:

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("vision-eye-mapping.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init vision eye object
visioneye = solutions.VisionEye(
    show=True,  # display the output
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e, YOLOv10
    classes=[0, 2],  # generate visioneye view for specific classes
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    results = visioneye(im0)

    print(results)  # access the output

    video_writer.write(results.plot_im)  # write the video file

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

Warum sollte ich Ultralytics YOLO11 für Objektmapping und -verfolgung verwenden?

Ultralytics YOLO11 ist bekannt für seine Geschwindigkeit, Genauigkeit und einfache Integration, was es zu einer Top-Wahl für die Objektzuordnung und -verfolgung macht. Zu den wichtigsten Vorteilen gehören:

  1. Modernste Leistung: Bietet hohe Genauigkeit bei der Echtzeit-Objekterkennung.
  2. Flexibilität: Unterstützt verschiedene Aufgaben wie Erkennung, Verfolgung und Entfernungsberechnung.
  3. Community und Support: Umfangreiche Dokumentation und aktive GitHub-Community für Fehlerbehebung und Erweiterungen.
  4. Benutzerfreundlichkeit: Die intuitive API vereinfacht komplexe Aufgaben und ermöglicht eine schnelle Bereitstellung und Iteration.

Weitere Informationen zu Anwendungen und Vorteilen finden Sie in der Ultralytics YOLO11-Dokumentation.

Wie kann ich VisionEye in andere Machine-Learning-Tools wie Comet oder ClearML integrieren?

Ultralytics YOLO11 lässt sich nahtlos in verschiedene Machine-Learning-Tools wie Comet und ClearML integrieren und verbessert so die Experimentverfolgung, Zusammenarbeit und Reproduzierbarkeit. Befolgen Sie die detaillierten Anleitungen zur Verwendung von YOLOv5 mit Comet und zur Integration von YOLO11 mit ClearML, um loszulegen.

Weitere Erkundungen und Integrationsbeispiele finden Sie in unserem Ultralytics Integrationsleitfaden.



📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 4 Monaten

Kommentare