VisionEye View Objekt-Mapping mit Ultralytics YOLO26 🚀#
Was ist VisionEye Objekt-Mapping?#
Ultralytics YOLO26 VisionEye bietet Computern die Möglichkeit, Objekte zu identifizieren und zu lokalisieren, wodurch die Beobachtungspräzision des menschlichen Auges simuliert wird. Diese Funktionalität ermöglicht es Computern, bestimmte Objekte zu erkennen und zu fokussieren, ganz ähnlich wie das menschliche Auge Details von einem bestimmten Blickwinkel aus betrachtet.
Objekte mit YOLO26 zuordnen#
VisionEye legt einen einzelnen Beobachtungspunkt im Frame fest und zieht einen Strahl von diesem zu jedem verfolgten Objekt, sodass du visualisieren kannst, wie eine Szene aus einem Blickwinkel aussieht. Setze vision_point auf die Pixelkoordinaten des Beobachters und führe die Lösung dann mit der Python API oder der CLI über dein Video aus.
# 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]"VisionEye-Argumente#
Hier ist eine Tabelle mit den VisionEye-Argumenten:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer Ultralytics YOLO-Modelldatei. |
vision_point | tuple[int, int] | (20, 20) | Der Punkt, an dem VisionEye Objekte verfolgt und Pfade zeichnet. |
line_width | int | 2 | Linienstärke für die Boxen, Keypoints und Zählungen, die die Lösung zeichnet. |
verbose | bool | True | Aktiviert das pro-Frame-Protokoll der Lösung für Eingabeform, Klassenzahlen und Verarbeitungsgeschwindigkeit. Der Tracking-Aufruf selbst verläuft immer im Hintergrund. |
Du kannst auch verschiedene track-Argumente innerhalb der VisionEye-Lösung verwenden:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Gibt den zu verwendenden Tracking-Algorithmus an. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | 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 Schwellenwert für die Intersection over Union (IoU) zum Filtern überlappender Detektionen fest. |
classes | list | None | Filtert Ergebnisse nach Klassenindex. Zum Beispiel verfolgt classes=[0, 2, 3] nur die angegebenen Klassen. |
device | str | None | Gibt das Gerät für die Inferenz an (z. B. cpu, cuda:0 oder 0). Ermöglicht Benutzern die Auswahl zwischen CPU, einer spezifischen GPU oder anderen Rechengeräten für die Modellausführung. |
Darüber hinaus werden einige Visualisierungsargumente unterstützt, wie unten aufgelistet:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
show | bool | False | Falls True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für unmittelbares visuelles Feedback während der Entwicklung oder des Testens. |
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. |
Wie VisionEye funktioniert#
VisionEye funktioniert, indem ein fester Sichtpunkt im Frame eingerichtet und Linien von diesem Punkt zu erkannten Objekten gezogen werden. Dies simuliert, wie das menschliche Sehen sich aus einem einzigen Blickwinkel auf mehrere Objekte konzentriert. Die Lösung nutzt Objektverfolgung, um die konsistente Identifizierung von Objekten über Frames hinweg aufrechtzuerhalten, wodurch eine visuelle Darstellung der räumlichen Beziehung zwischen dem Beobachter (Sichtpunkt) und den Objekten in der Szene entsteht.
Die Methode process in der VisionEye-Klasse führt mehrere wichtige Operationen aus:
- Extrahiert Tracks (BBoxes, Klassen und Masken) aus dem Eingabebild
- Erstellt einen Annotator, um BBoxes und Labels zu zeichnen
- Zeichnet für jedes erkannte Objekt ein Box-Label und erstellt eine Sichtlinie vom Blickpunkt aus
- 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 Überwachungssysteme, autonome Navigation und interaktive Installationen.
Anwendungen von VisionEye#
VisionEye Objekt-Mapping hat zahlreiche praktische Anwendungen in verschiedenen Branchen:
- Sicherheit und Überwachung: Überwache mehrere relevante Objekte von einer festen Kameraposition aus
- Einzelhandelsanalyse: Verfolge Kundenbewegungsmuster in Bezug auf Ladendisplays
- Sportanalyse: Analysiere Spielerpositionierung und -bewegung aus der Perspektive eines Trainers
- Autonome Fahrzeuge: Visualisiere, wie ein Fahrzeug Objekte in seiner Umgebung „sieht“ und priorisiert
- Mensch-Computer-Interaktion: Erstelle intuitivere Schnittstellen, die auf räumliche Beziehungen reagieren
Durch die Kombination von VisionEye mit anderen Ultralytics-Lösungen wie Entfernungsberechnung oder Geschwindigkeitsschätzung kannst du umfassende Systeme aufbauen, die nicht nur Objekte verfolgen, sondern auch deren räumliche Beziehungen und Verhaltensweisen verstehen.
FAQ#
Um VisionEye Object Mapping mit Ultralytics YOLO26 zu verwenden, musst du zuerst das Ultralytics YOLO-Paket über pip installieren. Anschließend kannst du 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 windowsUltralytics YOLO26 ist bekannt für seine Geschwindigkeit, Genauigkeit und einfache Integration, was es zu einer Top-Wahl für Objektmapping und Tracking macht. Zu den Hauptvorteilen gehören:
- Modernste Leistung: Liefert hohe Genauigkeit bei der Echtzeit-Objekterkennung.
- Flexibilität: Unterstützt Erkennung, Tracking und Distanzberechnung in einer einzigen Pipeline.
- Community und Support: Umfangreiche Dokumentation und aktive GitHub Community für Fehlerbehebung und Erweiterungen.
- Benutzerfreundlichkeit: Intuitives API vereinfacht komplexe Aufgaben und ermöglicht schnelle Bereitstellung und Iteration.
Weitere Informationen zu Anwendungen und Vorteilen findest du in der Ultralytics YOLO26-Dokumentation.
Ultralytics YOLO26 lässt sich nahtlos in verschiedene Machine-Learning-Tools wie Comet und ClearML integrieren, was Experimentverfolgung, Zusammenarbeit und Reproduzierbarkeit verbessert. Folge den detaillierten Anleitungen zur Verwendung von YOLOv5 mit Comet und zur Integration von YOLO26 mit ClearML, um zu beginnen.
Für weitere Erkundungen und Integrationsbeispiele sieh dir unseren Ultralytics Integrationsleitfaden an.