Ultralytics YOLO27:
Get Started

VisionEye-Ansicht zur Objektzuordnung mit Ultralytics YOLO26#

Was ist die VisionEye-Objektzuordnung?#

Ultralytics YOLO26 VisionEye ermöglicht es Computern, Objekte zu erkennen und zu lokalisieren und dabei die Beobachtungs-präzision des menschlichen Auges nachzuahmen. Mit dieser Funktion können Computer bestimmte Objekte erkennen und fokussieren – ähnlich wie das menschliche Auge Details aus einer bestimmten Perspektive wahrnimmt.

VisionEye object mapping with YOLO tracking

Objekte mit YOLO26 zuordnen#

VisionEye legt einen einzelnen Beobachtungspunkt im Bild fest und zeichnet von dort aus einen Strahl zu jedem verfolgten Objekt. So kannst du visualisieren, wie eine Szene aus einer bestimmten Perspektive aussieht. Lege vision_point auf die Pixelkoordinaten des Beobachters fest und führe die Lösung anschließend mit der Python-API oder der CLI über dein Video aus.

VisionEye-Zuordnung 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]"

Argumente für VisionEye#

Hier ist eine Tabelle mit den Argumenten für VisionEye:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics-YOLO-Modelldatei.
vision_pointtuple[int, int](20, 20)Der Punkt, an dem VisionEye Objekte verfolgt und mithilfe der VisionEye-Lösung Pfade zeichnet.
line_widthint2Linienstärke für die Boxen, Keypoints und Zählwerte, die von der Lösung eingezeichnet werden.
verboseboolTrueAktiviert das Protokoll der Lösung für jedes Bild, das Eingabeform, Klassenanzahlen und Verarbeitungsgeschwindigkeit enthält. Der Tracking-Aufruf selbst gibt grundsätzlich keine Meldungen aus.

Du kannst in der Lösung VisionEye auch verschiedene Argumente für track verwenden:

ArgumentTypStandardBeschreibung
trackerstr'tracktrack.yaml'Legt den zu verwendenden Verfolgungsalgorithmus fest. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Legt den Konfidenzschwellenwert für Erkennungen fest. Niedrigere Werte ermöglichen die Verfolgung weiterer Objekte, können aber auch falsch positive Ergebnisse einschließen.
ioufloat0.7Legt den Schwellenwert für die Schnittmenge über Vereinigung (IoU) fest, um überlappende Erkennungen herauszufiltern.
classeslistNoneFiltert die Ergebnisse nach Klassenindex. Beispielsweise verfolgt classes=[0, 2, 3] nur die angegebenen Klassen.
devicestrNoneLegt das Gerät für die Inferenz fest (z. B. cpu, cuda:0 oder 0). So kannst du für die Modellausführung zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten wählen.
imgszint or tuple640Zielbildgröße für die Inferenz: eine Ganzzahl für ein quadratisches Bild oder ein (height, width)-Paar. Die Formen werden an den Modellschritt angepasst.
max_detint300Maximale Anzahl der Erkennungen, die pro Bild vor der Verfolgung beibehalten werden. Dadurch wird die Anzahl der Objekte begrenzt, die eine Lösung in dichten Szenen verarbeitet.
quantizeint or strNoneInferenzpräzision: 16 (FP16) oder 32/unset (FP32) für PyTorch- und TorchScript-Modelle außerhalb der CPU; andere Formate verwenden die Präzision, die ihr Artefakt und ihre Laufzeitumgebung vorgeben. Ersetzt das veraltete Argument half.

Außerdem werden einige Argumente zur Visualisierung unterstützt, wie unten aufgeführt:

ArgumentTypStandardBeschreibung
showboolFalseWenn True aktiviert ist, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für unmittelbares visuelles Feedback während der Entwicklung oder beim Testen.
show_confboolTrueZeigt neben der Bezeichnung den Konfidenzwert jeder Erkennung an. Gibt Aufschluss darüber, wie sicher sich das Modell bei der jeweiligen Erkennung ist.
show_labelsboolTrueZeigt für jede Erkennung eine Bezeichnung in der visuellen Ausgabe an. So lassen sich erkannte Objekte sofort erkennen.

So funktioniert VisionEye#

VisionEye legt einen festen Blickpunkt im Bild fest und zeichnet Linien von diesem Punkt zu den erkannten Objekten. Damit wird nachgeahmt, wie das menschliche Auge mehrere Objekte aus einer einzigen Perspektive betrachtet. Die Lösung nutzt Objektverfolgung, um Objekte über mehrere Bilder hinweg zuverlässig wiederzuerkennen. So entsteht eine visuelle Darstellung der räumlichen Beziehung zwischen dem Beobachter (Blickpunkt) und den Objekten in der Szene.

Die Methode process der VisionEye-Klasse führt mehrere wichtige Schritte aus:

  1. Extrahiert Spuren (Begrenzungsrahmen, Klassen und Spur-IDs) aus dem Eingabebild
  2. Erstellt einen Annotator zum Zeichnen von Begrenzungsrahmen und Beschriftungen
  3. Zeichnet für jedes erkannte Objekt eine Beschriftung am Rahmen und eine Sichtlinie vom Blickpunkt aus
  4. Gibt das annotierte Bild mit Verfolgungsstatistiken zurück

Dieser Ansatz eignet sich besonders für Anwendungen, die räumliches Bewusstsein und die Visualisierung von Objektbeziehungen erfordern, etwa Überwachungssysteme, autonome Navigation und interaktive Installationen.

Anwendungsbereiche von VisionEye#

Die VisionEye-Objektzuordnung bietet zahlreiche praktische Anwendungsmöglichkeiten in verschiedenen Branchen:

  • Sicherheit und Überwachung: Mehrere interessante Objekte von einer festen Kameraposition aus überwachen
  • Einzelhandelsanalysen: Bewegungsmuster von Kunden im Verhältnis zu den Ladenauslagen verfolgen
  • Sportanalyse: Positionierung und Bewegung von Spielern aus der Sicht eines Trainers analysieren
  • Autonome Fahrzeuge: Visualisieren, wie ein Fahrzeug Objekte in seiner Umgebung „sieht“ und priorisiert
  • Mensch-Computer-Interaktion: Intuitivere Schnittstellen erstellen, die auf räumliche Beziehungen reagieren

Wenn du VisionEye mit anderen Ultralytics-Lösungen wie der Distanzberechnung oder der Geschwindigkeitsschätzung kombinierst, kannst du umfassende Systeme erstellen, die Objekte nicht nur verfolgen, sondern auch ihre räumlichen Beziehungen und ihr Verhalten erfassen.

Häufig gestellte Fragen#

  • Um mit der VisionEye-Objektzuordnung in Ultralytics YOLO26 zu beginnen, installierst du zunächst das Ultralytics-YOLO-Paket mit pip. Anschließend kannst du anhand des Beispiels in der Dokumentation die Objekterkennung mit VisionEye einrichten. 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))
    
    # VisionEye-Objekt initialisieren
    visioneye = solutions.VisionEye(
        show=True,  # # Ausgabe anzeigen
        model="yolo26n.pt",  # Verwende ein beliebiges von Ultralytics unterstütztes Modell, z. B. yolo26s.pt
        classes=[0, 2],  # VisionEye-Ansicht für bestimmte Klassen erzeugen
    )
    
    # Video verarbeiten
    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)  # auf die Ausgabe zugreifen
    
        video_writer.write(results.plot_im)  # Videodatei schreiben
    
    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()  # Alle geöffneten Fenster schließen
  • Ultralytics YOLO26 ist bekannt für seine Geschwindigkeit, Genauigkeit und einfache Integration und daher eine hervorragende Wahl für die Objektzuordnung und -verfolgung. Zu den wichtigsten Vorteilen gehören:

    1. Spitzenleistung: Liefert eine hohe Genauigkeit bei der Objekterkennung in Echtzeit.
    2. Flexibilität: Unterstützt Erkennung, Verfolgung und Distanzberechnung in einer einzigen Verarbeitungskette.
    3. Community und Support: Umfassende Dokumentation und eine aktive GitHub-Community helfen bei der Fehlerbehebung und Weiterentwicklung.
    4. Einfache Anwendung: Die intuitive API vereinfacht komplexe Aufgaben und ermöglicht eine schnelle Bereitstellung und Weiterentwicklung.

    Weitere Informationen zu Anwendungsbereichen und Vorteilen findest du in der Ultralytics-YOLO26-Dokumentation.

  • Ultralytics YOLO26 lässt sich nahtlos in verschiedene Tools für maschinelles Lernen wie Comet und ClearML integrieren und verbessert so die Experimentverfolgung, Zusammenarbeit und Reproduzierbarkeit. Folge den ausführlichen Anleitungen zur Integration von YOLO26 mit Comet und zur Integration von YOLO26 mit ClearML, um loszulegen.

    Weitere Beispiele zur Erkundung und Integration findest du in unserem Leitfaden zu Ultralytics-Integrationen.

Kommentare