VisionEye Objekt-Mapping mit Ultralytics YOLO26 🚀
Was ist VisionEye Objekt-Mapping?
Ultralytics YOLO26 VisionEye bietet Computern die Fähigkeit, Objekte zu identifizieren und zu lokalisieren, wobei die beobachtende Präzision des menschlichen Auges simuliert wird. Diese Funktionalität ermöglicht es Computern, spezifische Objekte zu erkennen und zu fokussieren, ähnlich wie das menschliche Auge Details aus einem bestimmten Blickwinkel betrachtet.
# 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 Vision Objekte verfolgt und Pfade mithilfe der VisionEye-Lösung zeichnet. |
Du kannst auch verschiedene track Argumente innerhalb der VisionEye Lösung nutzen:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Legt den zu verwendenden Tracking-Algorithmus fest, z. B. bytetrack.yaml oder botsort.yaml. |
conf | float | 0.1 | 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 Intersection over Union (IoU) Schwellenwert zum Filtern überlappender Detektionen fest. |
classes | list | None | Filtert Ergebnisse nach Klassen-Index. Beispiel: classes=[0, 2, 3] verfolgt nur die angegebenen Klassen. |
verbose | bool | True | Steuert die Anzeige der Tracking-Ergebnisse und liefert eine visuelle Ausgabe der verfolgten Objekte. |
device | str | None | Spezifiziert das Gerät für die Inferenz (z. B. cpu, cuda:0 oder 0). Ermöglicht die Wahl zwischen CPU, einer spezifischen GPU oder anderen Recheneinheiten zur Modellausführung. |
Des Weiteren werden einige Visualisierungsargumente unterstützt, wie unten aufgelistet:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
show | bool | False | Wenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für direktes visuelles Feedback während der Entwicklung oder beim Testen. |
line_width | int or None | None | Gibt die Linienbreite der Bounding-Boxen an. Wenn None, wird die Linienbreite automatisch basierend auf der Bildgröße angepasst. Bietet visuelle Anpassung für mehr Klarheit. |
show_conf | bool | True | Zeigt den Konfidenzwert für jede Erkennung neben dem Label an. Gibt Aufschluss über die Sicherheit des Modells bei jeder Erkennung. |
show_labels | bool | True | Zeigt Labels für jede Erkennung in der visuellen Ausgabe an. Bietet unmittelbares Verständnis der erkannten Objekte. |
Wie VisionEye funktioniert
VisionEye funktioniert, indem ein fester Sehpunkt im Frame etabliert und Linien von diesem Punkt zu den erkannten Objekten gezogen werden. Dies simuliert, wie das menschliche Sehen mehrere Objekte von einem einzigen Standpunkt aus fokussiert. Die Lösung nutzt Objekt-Tracking, um eine konsistente Identifizierung der Objekte über Frames hinweg beizubehalten und so eine visuelle Darstellung der räumlichen Beziehung zwischen dem Beobachter (Sehpunkt) und den Objekten in der Szene zu erstellen.
Die process Methode in der VisionEye Klasse führt mehrere wichtige Operationen aus:
- Extrahiert Tracks (BBox, Klassen und Masken) aus dem Eingabebild
- Erstellt einen Annotator, um BBox und Labels zu zeichnen
- Zeichnet für jedes erkannte Objekt ein Box-Label und erstellt eine Sichtlinie vom Sehpunkt 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 etwa Überwachungssysteme, autonome Navigation und interaktive Installationen.
Anwendungen von VisionEye
VisionEye Objekt-Mapping hat zahlreiche praktische Anwendungen in verschiedenen Branchen:
- Sicherheit und Überwachung: Überwache mehrere interessante Objekte von einer festen Kameraposition aus
- Einzelhandelsanalyse: Verfolge Bewegungsmuster von Kunden in Bezug auf Ladenaufbauten
- 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 Distanzberechnung oder Geschwindigkeitsschätzung kannst du umfassende Systeme aufbauen, die nicht nur Objekte verfolgen, sondern auch deren räumliche Beziehungen und Verhalten verstehen.
Hinweis
Bei Fragen kannst du dich gerne im Ultralytics Issue-Bereich oder im unten genannten Diskussionsbereich melden.
FAQ
Wie fange ich an, VisionEye Objekt-Mapping mit Ultralytics YOLO26 zu verwenden?
Um mit der Nutzung von VisionEye Objekt-Mapping mit Ultralytics YOLO26 zu beginnen, musst du zuerst das Ultralytics YOLO Paket via pip installieren. Dann kannst du den in der Dokumentation bereitgestellten Beispielcode verwenden, um Objekterkennung mit VisionEye einzurichten. Hier ist ein einfaches Beispiel, um loszulegen:
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 windowsWarum 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:
- Modernste Leistung: Liefert hohe Genauigkeit bei der Objekterkennung in Echtzeit.
- Flexibilität: Unterstützt verschiedene Aufgaben wie Erkennung, Tracking und Distanzberechnung.
- Community und Support: Umfangreiche Dokumentation und aktive GitHub Community für Fehlerbehebung und Erweiterungen.
- Einfache Bedienung: Intuitive API vereinfacht komplexe Aufgaben und ermöglicht eine schnelle Bereitstellung und Iteration.
Für weitere Informationen zu Anwendungen und Vorteilen, sieh dir die Ultralytics YOLO26 Dokumentation an.
Wie kann ich VisionEye mit anderen Machine Learning Tools wie Comet oder ClearML integrieren?
Ultralytics YOLO26 lässt sich nahtlos in verschiedene Machine Learning Tools wie Comet und ClearML integrieren, was Experiment-Tracking, Zusammenarbeit und Reproduzierbarkeit verbessert. Befolge die detaillierten Anleitungen zur Nutzung von YOLOv5 mit Comet und zur Integration von YOLO26 mit ClearML, um zu starten.
Für weitere Erkundungen und Integrationsbeispiele sieh dir unseren Ultralytics Integrations-Guide an.