Découvrez la puissance du flux optique dans la vision artificielle. Apprenez comment il estime le mouvement, améliore l'analyse vidéo et stimule les innovations en matière d'IA.
Le flux optique est un concept fondamental dans vision par ordinateur qui consiste à l'estimation du mouvement apparent des objets, des surfaces et des bords dans une scène visuelle. Ce mouvement est calculé sur la base le mouvement relatif entre un observateur (tel qu'une caméra) et la scène elle-même. Le résultat de ce processus est un champ de vecteurs où chaque vecteur représente le déplacement d'un pixel ou d'un élément entre deux images vidéo consécutives. En analysant ces vecteurs de mouvement, les systèmes peuvent obtenir une compréhension granulaire et de bas niveau de la dynamique de la scène, en répondant à la question cruciale de savoir "comment" les pixels se déplacent. à la question cruciale de savoir "comment" les pixels se déplacent au fil du temps.
Le calcul du flux optique repose généralement sur l'hypothèse de la "constance de la luminosité". Ce principe postule que l'intensité des pixels d'un point spécifique d'un objet reste constante entre deux images consécutives, même si l'objet se déplace. qu'il se déplace. Les algorithmes utilisent cette hypothèse pour track déplacements. Il existe deux approches principales pour déterminer ces champs de mouvement :
Il est important de distinguer le flux optique de la suivi d'objetcar ils ont des objectifs différents au sein d'un pipeline de vision. Le flux optique est une opération de bas niveau qui décrit le mouvement instantané des pixels sans comprendre ce que ces pixels représentent. mouvement instantané des pixels sans comprendre ce que ces pixels représentent. Il ne maintient pas intrinsèquement l'identité d'un l'identité d'un objet dans le temps.
En revanche, le suivi d'objets est une tâche de haut niveau qui permet de localiser des entités spécifiques et de leur attribuer un identifiant cohérent cohérent d'une image à l'autre. Les modes de suivi avancés, tels que ceux disponibles dans Ultralytics YOLO11permettent généralement d'effectuer détection d'objets d'abord, puis des indices de mouvement pour associer les détections. Alors qu'un traqueur peut utiliser le flux optique en interne pour prédire la position, l'objectif du tracker est la persistance de l'identité ("Où est allée la voiture n°4 ?"), alors que l'objectif du flux optique est la cartographie du mouvement ("À quelle vitesse ces pixels se déplacent-ils vers la droite ?"). ("À quelle vitesse ces pixels se déplacent-ils vers la droite ?").
Le flux optique est un outil polyvalent utilisé dans diverses industries pour résoudre des problèmes complexes liés au mouvement.
L'exemple Python suivant montre comment calculer un flux optique dense à l'aide de la fonction OpenCV pour calculer un flux optique dense. Il utilise l'algorithme de Gunnar Farneback, une méthode populaire pour l'estimation des flux denses.
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")
Pour les utilisateurs souhaitant intégrer l'analyse de mouvement à la détection d'objets, modèles de détectionUltralytics peuvent être combinés avec des algorithmes de flux pour créer des pipelines d'analyse robustes. Alors que le flux optique fournit les données brutes de mouvement, des modèles de plus haut niveau comme YOLO11 fournissent la compréhension sémantique sémantique nécessaire pour interpréter efficacement ce mouvement. La R&D en cours sur des modèles tels que YOLO26 vise à unifier davantage la compréhension spatiale et et temporelle pour une analyse vidéo de bout en bout encore plus rapide.