Zum Inhalt springen

VisionEye View Objekt-Mapping mit Ultralytics YOLO26 🚀

Was ist VisionEye Object Mapping?

Ultralytics YOLO26 VisionEye bietet Computern die Fähigkeit, Objekte zu identifizieren und zu lokalisieren, wobei die Beobachtungs-präzision des menschlichen Auges simuliert wird. Diese Funktionalität ermöglicht es Computern, spezifische Objekte zu erkennen und sich auf diese zu konzentrieren, ähnlich der Art und Weise, wie das menschliche Auge Details von einem bestimmten Blickwinkel aus wahrnimmt.

VisionEye-Objektkartierung mit YOLO

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="yolo26n.pt",  # use any model that Ultralytics supports, e.g., YOLOv10
    classes=[0, 2],  # generate visioneye view for specific classes
    vision_point=(50, 50),  # the point where VisionEye 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

Die vision_point Das Tupel repräsentiert die Position des Beobachters in Pixelkoordinaten. Passen Sie es an die Kameraperspektive an, damit die gerenderten Strahlen korrekt veranschaulichen, wie Objekte mit dem gewählten Blickpunkt in Beziehung stehen.

VisionEye Argumente

Hier ist eine Tabelle mit den VisionEye Argumente:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics YOLO Modelldatei.
vision_pointtuple[int, int](20, 20)Der Punkt, an dem die Vision Objekte tracken und Pfade mithilfe der VisionEye Solution zeichnen wird.

Sie können auch verschiedene nutzen track Argumente innerhalb der VisionEye Lösung:

ArgumentTypStandardBeschreibung
trackerstr'botsort.yaml'Gibt den zu verwendenden Tracking-Algorithmus an, z. B. bytetrack.yaml oder botsort.yaml.
conffloat0.1Legt den Konfidenzschwellenwert für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch falsch positive Ergebnisse liefern.
ioufloat0.7Legt den Intersection over Union (IoU)-Schwellenwert für das Filtern überlappender Detektionen fest.
classeslistNoneFiltert Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen.
verboseboolTrueSteuert die Anzeige der Tracking-Ergebnisse und bietet eine visuelle Ausgabe der verfolgten Objekte.
devicestrNoneGibt 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:

ArgumentTypStandardBeschreibung
showboolFalseWenn 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_widthint or NoneNoneGibt 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_confboolTrueZeigt den Konfidenzwert für jede Erkennung zusammen mit der Beschriftung an. Gibt Einblick in die Sicherheit des Modells für jede Erkennung.
show_labelsboolTrueZeigt 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 der Entfernungsberechnung oder der Geschwindigkeitsabschätzung können Sie umfassende Systeme aufbauen, die Objekte nicht nur verfolgen, sondern auch deren räumliche 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 Nutzung von VisionEye Objekt-Mapping mit Ultralytics YOLO26?

Um mit der Nutzung von VisionEye Objekt-Mapping mit Ultralytics YOLO26 zu beginnen, müssen Sie zunächst das Ultralytics YOLO-Paket via 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="yolo26n.pt",  # use any model that Ultralytics supports, e.g., 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 YOLO26 für Objekt-Mapping und tracking verwenden?

Ultralytics YOLO26 ist bekannt für seine Geschwindigkeit, Genauigkeit und einfache Integration, was es zu einer Top-Wahl für Objekt-Mapping und tracking macht. Zu den Hauptvorteilen 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.

Für weitere Informationen zu Anwendungen und Vorteilen sehen Sie sich die Ultralytics YOLO26-Dokumentation an.

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

Ultralytics YOLO26 lässt sich nahtlos mit verschiedenen Machine-Learning-Tools wie Comet und ClearML integrieren, wodurch Experiment-tracking, Zusammenarbeit und Reproduzierbarkeit verbessert werden. Folgen Sie den detaillierten Anleitungen dazu, wie man YOLOv5 mit Comet verwendet und YOLO26 mit ClearML integriert, um loszulegen.

Weitere Erkundungen und Integrationsbeispiele finden Sie in unserem Ultralytics Integrationsleitfaden.



📅 Erstellt vor 2 Jahren ✏️ Aktualisiert vor 7 Tagen
glenn-jocherRizwanMunawarUltralyticsAssistantMatthewNoyceIvorZhu331RizwanMunawar

Kommentare