Ultralytics YOLO27:

Objektmapping in der VisionEye-Ansicht mit Ultralytics YOLO26#

Was ist die VisionEye-Objektzuordnung?#

Ultralytics YOLO26 VisionEye ermöglicht es Computern, Objekte zu erkennen und genau zu lokalisieren, indem die Beobachtungs-präzision des menschlichen Auges simuliert wird. Diese Funktion ermöglicht es Computern, bestimmte Objekte zu erkennen und sich auf sie zu konzentrieren – ä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. Setze vision_point auf die Pixelkoordinaten des Beobachters und führe die Lösung anschließend mit der Python API oder der CLI auf deinem Video aus.

Objektzuordnung mit VisionEye und 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 von VisionEye#

Hier ist eine Tabelle mit den Argumenten von VisionEye:

ArgumentTypStandardwertBeschreibung
modelstrNonePfad zu einer YOLO-Modell-Datei von Ultralytics.
vision_pointtuple[int, int](20, 20)Der Punkt, an dem VisionEye Objekte verfolgt und Pfade zeichnet.
line_widthint2Linienstärke für die von der Lösung gezeichneten Boxen, Keypoints und Zählwerte.
verboseboolTrueAktiviert das Protokoll der Lösung pro Frame mit Eingabeform, Klassenanzahlen und Verarbeitungsgeschwindigkeit. Der Tracking-Aufruf selbst bleibt immer ohne Ausgabe.

Du kannst auch verschiedene Argumente von track innerhalb der Lösung VisionEye verwenden:

ArgumentTypStandardwertBeschreibung
trackerstr'botsort.yaml'Gibt den zu verwendenden Tracking-Algorithmus an. 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 das Verfolgen weiterer Objekte, können aber Fehlalarme einschließen.
ioufloat0.7Legt den Schwellenwert für Intersection over Union (IoU) zum Filtern überlappender Erkennungen fest.
classeslistNoneFiltert Ergebnisse nach Klassenindex. Beispielsweise verfolgt classes=[0, 2, 3] nur die angegebenen Klassen.
devicestrNoneGibt das Gerät für die Inferenz an (z. B. cpu, cuda:0 oder 0). Ermöglicht die Auswahl zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten für die Modellausführung.
imgszint or tuple640Ziel-Inferenzbildgröße: eine ganze Zahl für ein quadratisches Bild oder ein (height, width)-Paar. Die Formate werden an die Modellschrittweite angepasst.
max_detint300Maximale Anzahl pro Frame beibehaltener Detektionen vor dem Tracking, wodurch die Objekte begrenzt werden, die eine Solution in dichten Szenen verarbeitet.
quantizeint or strNoneInferenzpräzision: 16 (FP16) oder 32/nicht gesetzt (FP32) für PyTorch- und TorchScript-Modelle; andere Formate berechnen mit der Präzision, die ihr Artefakt und ihre Laufzeit auswählen. Ersetzt das veraltete half-Flag.

Darüber hinaus werden einige Visualisierungsargumente unterstützt, wie unten aufgeführt:

ArgumentTypStandardwertBeschreibung
showboolFalseWenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Dies ist nützlich für unmittelbares visuelles Feedback während der Entwicklung oder des Testens.
show_confboolTrueZeigt neben dem Label den Konfidenzwert für jede Erkennung an. Dadurch erhältst du Einblick in die Sicherheit des Modells bei jeder Erkennung.
show_labelsboolTrueZeigt Labels für jede Erkennung in der visuellen Ausgabe an. Dies ermöglicht ein unmittelbares Verständnis der erkannten Objekte.

So funktioniert VisionEye#

VisionEye legt einen festen Blickpunkt im Bild fest und zeichnet Linien von diesem Punkt zu den erkannten Objekten. Dadurch wird simuliert, wie das menschliche Sehvermögen mehrere Objekte aus einer einzigen Perspektive fokussiert. Die Lösung verwendet Objektverfolgung, um die Objekte über mehrere Bilder hinweg konsistent zu identifizieren und eine visuelle Darstellung der räumlichen Beziehung zwischen dem Beobachter (Blickpunkt) und den Objekten in der Szene zu erstellen.

Die Methode process der VisionEye-Klasse führt mehrere wichtige Vorgänge aus:

  1. Extrahiert Tracks (Bounding Boxes, Klassen und Masken) aus dem Eingabebild
  2. Erstellt einen Annotator zum Zeichnen von Bounding Boxes und Beschriftungen
  3. Zeichnet für jedes erkannte Objekt eine Box-Beschriftung und erstellt eine Sichtlinie vom Blickpunkt aus
  4. Gibt das annotierte Bild mit Tracking-Statistiken 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 Objektzuordnung mit VisionEye bietet zahlreiche praktische Anwendungsmöglichkeiten in verschiedenen Branchen:

  • Sicherheit und Überwachung: Überwache mehrere relevante Objekte von einer festen Kameraposition aus
  • Einzelhandelsanalyse: Verfolge Bewegungsmuster von Kunden in Bezug auf die Auslagen im Geschäft
  • Sportanalyse: Analysiere die Positionierung und Bewegungen von Spielern aus der Perspektive eines Trainers
  • Autonome Fahrzeuge: Visualisiere, wie ein Fahrzeug Objekte in seiner Umgebung „sieht“ und priorisiert
  • Mensch-Computer-Interaktion: Erstelle intuitivere Benutzeroberflächen, 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 entwickeln, die nicht nur Objekte verfolgen, sondern auch deren räumliche Beziehungen und Verhaltensweisen verstehen.

FAQ#

  • Um mit der Objektzuordnung in VisionEye mit Ultralytics YOLO26 zu beginnen, musst du zunächst 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., yolo26s.pt
        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
  • Ultralytics YOLO26 ist für seine Geschwindigkeit, Genauigkeit und einfache Integration bekannt und daher eine ausgezeichnete Wahl für die Objektzuordnung und -verfolgung. Zu den wichtigsten Vorteilen gehören:

    1. Modernste Leistung: Liefert eine hohe Genauigkeit bei der Objekterkennung in Echtzeit.
    2. Flexibilität: Unterstützt Erkennung, Verfolgung und Entfernungsberechnung in einer einzigen Pipeline.
    3. Community und Support: Umfangreiche Dokumentation und eine aktive GitHub-Community zur Fehlerbehebung und Weiterentwicklung.
    4. Einfache Bedienung: Die intuitive API vereinfacht komplexe Aufgaben und ermöglicht eine schnelle Bereitstellung und iterative Weiterentwicklung.

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

  • Ultralytics YOLO26 lässt sich nahtlos in verschiedene Werkzeuge für maschinelles Lernen wie Comet und ClearML integrieren und verbessert dadurch die Nachverfolgung von Experimenten, die Zusammenarbeit und die Reproduzierbarkeit. In den ausführlichen Anleitungen zur Verwendung von YOLOv5 mit Comet und zur Integration von YOLO26 mit ClearML findest du die entsprechenden Einstiegsschritte.

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

Kommentare