Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Optischer Fluss

Entdecken Sie die Leistungsfähigkeit des optischen Flusses in der Computer Vision. Erfahren Sie, wie er Bewegungen schätzt, die Videoanalyse verbessert und Innovationen in der KI vorantreibt.

Der optische Fluss ist ein grundlegendes Konzept in der Computersehen das beinhaltet die scheinbare Bewegung von Objekten, Oberflächen und Kanten in einer visuellen Szene zu schätzen. Diese Bewegung wird berechnet auf der Grundlage der relativen Bewegung zwischen einem Beobachter (z. B. einer Kamera) und der Szene selbst. Das Ergebnis dieses Prozesses ist ein Vektorfeld, in dem jeder Vektor die Verschiebung eines Pixels oder Merkmals zwischen zwei aufeinanderfolgenden Videobildern darstellt. Durch die Analyse dieser Bewegungsvektoren können Systeme ein granulares, tiefes Verständnis der Szenendynamik gewinnen und folgende Fragen beantworten die entscheidende Frage beantworten, "wie" sich die Pixel im Laufe der Zeit bewegen.

Kernmechanismen des optischen Flusses

Die Berechnung des optischen Flusses stützt sich in der Regel auf die Annahme der "Helligkeitskonstanz". Dieser Grundsatz postuliert, dass die Pixelintensität eines bestimmten Punktes auf einem Objekt zwischen aufeinanderfolgenden Bildern konstant bleibt, auch wenn es sich bewegt. Algorithmen nutzen diese Annahme, um Verschiebungen track . Es gibt zwei primäre Ansätze zur Bestimmung dieser Bewegungsfelder:

  • Dichter optischer Fluss: Diese Methode berechnet einen Bewegungsvektor für jedes einzelne Pixel in einem Bild. Sie liefert eine umfassende, hochauflösende Bewegungskarte, die für feinkörnige Aufgaben wie Bildsegmentierung und Video Wiederherstellung. Obwohl rechenintensiv, sind moderne Deep Learning Modelle wie RAFT (Recurrent All-Pairs Field Transforms) haben eine Spitzenleistung bei der dichten Schätzung erreicht und die traditionellen mathematischen Methoden übertroffen.
  • Lückenhafter optischer Fluss: Anstatt das gesamte Bild zu analysieren, track spärliche Methoden einen ausgewählten Satz eindeutiger Merkmale, wie z. B. Ecken oder Kanten, oft identifiziert durch Merkmalsextraktion Techniken. Algorithmen wie die Lucas-Kanade-Methode sind Grundpfeiler in dieser Kategorie. Da sie weniger Datenpunkte verarbeiten Datenpunkte verarbeiten, sind spärliche Methoden sehr effizient und geeignet für Echtzeit-Inferenz Szenarien geeignet, bei denen die Geschwindigkeit Vorrang vor der Dichte hat.

Optical Flow vs. Objekterkennung

Es ist wichtig, den optischen Fluss von Objektverfolgungzu unterscheiden, da sie innerhalb einer Bildverarbeitungspipeline unterschiedlichen Zwecken dienen. Der optische Fluss ist eine Low-Level-Operation, die die momentane Bewegung von Pixeln beschreibt, ohne zu verstehen, was diese Pixel darstellen. Die Identität eines Objekts wird dabei nicht Identität eines Objekts im Laufe der Zeit.

Im Gegensatz dazu ist die Objektverfolgung eine Aufgabe auf hoher Ebene, die bestimmte Objekte lokalisiert und ihnen eine einheitliche ID zuweist über alle Bilder hinweg zu. Erweiterte Verfolgungsmodi, wie die in Ultralytics YOLO11führen in der Regel Objekterkennung und dann Bewegungshinweise verwendet, um Erkennungen zuzuordnen. Während ein Tracker intern den optischen Fluss nutzen könnte, um die Position vorherzusagen, Ziel des Trackers ist die Identitätserhaltung ("Wohin ist Auto Nr. 4 gefahren?"), während das Ziel des optischen Flusses die Bewegungszuordnung Abbildung ("Wie schnell bewegen sich diese Pixel nach rechts?").

Real-World-Anwendungen in AI

Optischer Fluss ist ein vielseitiges Werkzeug, das in verschiedenen Branchen zur Lösung komplexer bewegungsbezogener Probleme eingesetzt wird.

  • Autonome Systeme und Robotik: Auf dem Gebiet der autonomen Fahrzeugenwird der optische Fluss für die visuelle Odometrie verwendet, d. h. für die Schätzung der Eigenbewegung des Fahrzeugs relativ zur Umgebung. Es hilft bei der Er hilft bei der Erkennung sich bewegender Hindernisse, die bei statischer Erkennung übersehen werden könnten, und trägt so zu einer sichereren Navigation bei. In ähnlicher Weise wird in Robotiknutzen Agenten den Fluss, um Objekte zu manipulieren und in dynamischen Umgebungen zu navigieren, indem sie Frameworks wie ROS.
  • Erkennung von Handlungen: Durch die Analyse der zeitlichen Bewegungsmuster können KI-Systeme komplexe menschliche Handlungen zu erkennen. Zum Beispiel in intelligente Fitness-Technologiekann der optische Fluss helfen, die Schätzung der Körperhaltung indem sichergestellt wird, dass die Bewegungen der Gliedmaßen zwischen den Einzelbildern reibungslos nachverfolgt werden, um Übungen wie Kniebeugen oder Tennisschwünge zu erkennen.
  • Videostabilisierung und -komprimierung: Die Unterhaltungselektronik stützt sich in hohem Maße auf Strömungsschätzungen. Die elektronische Bildstabilisierung (EIS) verwendet Strömungsvektoren, um Kameraverwacklungen auszugleichen. Außerdem werden Video Komprimierungsstandards wie MPEG die Bewegungsabschätzung um die Dateigröße zu verringern, indem sie nur die Unterschiede (Residuen) zwischen den Einzelbildern kodieren und nicht die Vollbilder selbst.
  • Medizinische Bildgebung: Unter medizinischen Bildanalysewird der optische Fluss angewandt, um die Verformung von Geweben track , z. B. den Herzschlag in einem Echokardiogramm. Dies hilft den Ärzten bei der Quantifizierung der Organfunktion und der Erkennung von Anomalien, die in statischen Bildern nicht sichtbar sind.

Beispiel für die Umsetzung

Das folgende Python demonstriert die Berechnung des dichten optischen Flusses mit Hilfe des OpenCV Bibliothek. Dabei wird der Gunnar Farneback-Algorithmus, eine beliebte Methode zur Schätzung des dichten Flusses.

import cv2
import numpy as np

# Load two consecutive frames (ensure these files exist)
frame1 = cv2.imread("frame1.jpg")
frame2 = cv2.imread("frame2.jpg")

# Convert frames to grayscale
prvs = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)
next = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY)

# Calculate dense optical flow using Farneback's algorithm
flow = cv2.calcOpticalFlowFarneback(prvs, next, None, 0.5, 3, 15, 3, 5, 1.2, 0)

# Compute magnitude and angle of 2D vectors
mag, ang = cv2.cartToPolar(flow[..., 0], flow[..., 1])

print(f"Flow shape: {flow.shape}")  # Output: (Height, Width, 2)
print(f"Max motion magnitude: {np.max(mag):.2f} pixels")

Für Benutzer, die die Bewegungsanalyse mit der Objekterkennung integrieren möchten, Ultralytics Erkennungsmodelle kombiniert werden mit Flussalgorithmen kombiniert werden, um robuste Analysepipelines zu erstellen. Während der optische Fluss die rohen Bewegungsdaten liefert, übergeordnete Modelle wie YOLO11 bieten das semantische Verständnis, das für eine effektive Interpretation dieser Bewegung erforderlich ist. Die laufende Forschung und Entwicklung von Modellen wie YOLO26 zielen auf eine weitere Vereinheitlichung des räumlichen zeitliches Verständnis für eine noch schnellere End-to-End-Videoanalyse zu vereinheitlichen.

Werden Sie Mitglied der Ultralytics

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten