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 Mapping mit Ultralytics YOLO
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 True zeigt 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 None wird 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:
- Extrahiert Spuren (Begrenzungsrahmen, Klassen und Masken) aus dem Eingabebild
- Erstellt einen Annotator zum Zeichnen von Begrenzungsrahmen und Beschriftungen
- Zeichnet für jedes erkannte Objekt ein Feldetikett und erstellt eine Sichtlinie vom Sichtpunkt aus
- 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:
- Leistung auf dem neuesten Stand der Technik: Hohe Genauigkeit bei der Objekterkennung in Echtzeit.
- Flexibel: Unterstützt verschiedene Aufgaben wie Erkennung, Verfolgung und Entfernungsberechnung.
- Gemeinschaft und Unterstützung: Umfangreiche Dokumentation und aktive GitHub-Community für Fehlerbehebung und Erweiterungen.
- 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.