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 fokussieren, indem es die Beobachtungsgenauigkeit des menschlichen Auges simuliert. Diese Funktion ermöglicht es Computern, bestimmte Objekte zu erkennen und zu fokussieren, ähnlich der Art und Weise, wie das menschliche Auge Details von einem bestimmten Standpunkt aus wahrnimmt.

VisionEye View Object Mapping mit Objektverfolgung mit 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 .
vision_point tuple[int, int] (50, 50) Der Punkt, an dem die VisionEye-Lösung Objekte verfolgt und Pfade zeichnet.

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

Argument Typ Standard Beschreibung
show bool False Wenn Truezeigt 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 Nonewird die Linienbreite automatisch an die Bildgröße angepasst. Bietet visuelle Anpassung für Klarheit.

Wie VisionEye funktioniert

VisionEye legt einen festen Blickpunkt im Bild fest und zieht von diesem Punkt aus Linien zu den erkannten Objekten. Auf diese Weise wird simuliert, wie das menschliche Sehvermögen mehrere Objekte von einem einzigen Blickpunkt aus fokussiert. Die Lösung nutzt die Objektverfolgung, um eine konsistente Identifizierung von Objekten über mehrere Bilder hinweg zu gewährleisten und eine visuelle Darstellung der räumlichen Beziehung zwischen dem Beobachter (Sichtpunkt) und den Objekten in der Szene zu erstellen.

Die process in der Klasse VisionEye führt mehrere wichtige Operationen durch:

  1. Extrahiert Spuren (Begrenzungsrahmen, Klassen und Masken) aus dem Eingabebild
  2. Erstellt einen Annotator zum Zeichnen von Begrenzungsrahmen und Beschriftungen
  3. Zeichnet für jedes erkannte Objekt ein Feldetikett und erstellt eine Sichtlinie vom Sichtpunkt aus
  4. Gibt das kommentierte Bild mit Tracking-Statistiken zurück

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

Anwendungen von VisionEye

VisionEye Object Mapping hat zahlreiche praktische Anwendungen in verschiedenen Branchen:

  • Sicherheit und Überwachung: Überwachen Sie mehrere Objekte von Interesse von einer festen Kameraposition aus
  • Einzelhandelsanalyse: Verfolgen Sie die Bewegungsmuster der Kunden in Bezug auf die Ladenauslagen
  • Sportliche Analyse: Analysieren Sie die Positionierung und Bewegung von Spielern aus der Sicht eines Trainers
  • Autonome Fahrzeuge: Visualisieren, wie ein Fahrzeug Objekte in seiner Umgebung "sieht" und priorisiert
  • Interaktion zwischen Mensch und Computer: Schaffung intuitiverer Schnittstellen, die auf räumliche Beziehungen reagieren

Durch die Kombination von VisionEye mit anderen Ultralytics wie Entfernungsberechnung oder Geschwindigkeitsschätzung können Sie umfassende Systeme aufbauen, die nicht nur Objekte verfolgen, sondern auch deren räumliche Beziehungen und Verhalten verstehen.

Hinweis

Wenn Sie Fragen haben, können Sie diese gerne im BereichUltralytics oder im unten genannten Diskussionsbereich stellen.

FAQ

Wie verwende ich VisionEye Object Mapping mit Ultralytics YOLO11 ?

Um VisionEye Object Mapping mit Ultralytics YOLO11 zu verwenden, müssen Sie zunächst das Paket Ultralytics YOLO über pip installieren. Anschließend können Sie den in der Dokumentation enthaltenen Beispielcode verwenden, um die Objekterkennung mit VisionEye einzurichten. Hier ist ein einfaches Beispiel für den Anfang:

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 Objektzuordnung und -verfolgung verwenden?

Ultralytics YOLO11 ist bekannt für seine Schnelligkeit, Genauigkeit und einfache Integration, was es zur ersten Wahl für Objektmapping und -verfolgung macht. Die wichtigsten Vorteile sind:

  1. Leistung auf dem neuesten Stand der Technik: Hohe Genauigkeit bei der Objekterkennung in Echtzeit.
  2. Flexibel: Unterstützt verschiedene Aufgaben wie Erkennung, Verfolgung und Entfernungsberechnung.
  3. Gemeinschaft und Unterstützung: Umfangreiche Dokumentation und aktive GitHub-Community für Fehlerbehebung und Erweiterungen.
  4. Benutzerfreundlichkeit: Intuitive API vereinfacht komplexe Aufgaben und ermöglicht eine schnelle Bereitstellung und Wiederholung.

Weitere Informationen über Anwendungen und Vorteile finden Sie in der DokumentationUltralytics YOLO11 .

Wie kann ich VisionEye mit anderen Machine-Learning-Tools wie Comet oder ClearML integrieren?

Ultralytics YOLO11 kann nahtlos in verschiedene Tools für maschinelles Lernen wie Comet und ClearML integriert werden, wodurch die Verfolgung von Experimenten, die Zusammenarbeit und die Reproduzierbarkeit verbessert werden. Folgen Sie den detaillierten Anleitungen zur Verwendung von YOLOv5 mit Comet und zur Integration von YOLO11 mit ClearML, um loszulegen.

Weitere Informationen und Integrationsbeispiele finden Sie in unserem Ultralytics Integrationsleitfaden.

📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 5 Tagen

Kommentare