Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Optical Flow

Le flux optique estime le déplacement de chaque pixel entre deux images vidéo sous la forme d’un champ de vecteurs de mouvement. Découvre les méthodes classiques et profondes, leurs usages et du code OpenCV.

Le flux optique correspond au mouvement apparent des motifs de luminosité entre deux images, généralement des images vidéo consécutives. Un algorithme de flux optique estime, pour chaque pixel de la première image, un vecteur de déplacement 2D (dx, dy) qui indique où le contenu de ce pixel apparaît dans la deuxième image. Le résultat, appelé champ de flux, capture le mouvement des objets mobiles et de la caméra elle-même, ce qui permet aux systèmes de vision par ordinateur de stabiliser les vidéos, d’estimer le mouvement propre, d’interpoler les images et de reconnaître les actions. Le flux mesure ce que voit la caméra plutôt que le véritable mouvement 3D : une sphère parfaitement uniforme qui tourne sur place ne produit aucun flux, tandis qu’une ombre en mouvement produit du flux là où rien ne bouge physiquement.

Comment le flux optique est estimé#

La plupart des méthodes partent de la constance de la luminosité, selon laquelle un point conserve la même intensité lorsqu’il se déplace. Sa linéarisation donne une équation par pixel, Ix·u + Iy·v + It = 0, où Ix, Iy et It sont les dérivées de l’image selon x, y et le temps, et (u, v) correspond au flux inconnu. Une équation ne permet pas de déterminer deux inconnues : c’est le problème de l’ouverture. En observant une arête droite à travers une petite fenêtre, seul le mouvement perpendiculaire à l’arête est mesurable. Les méthodes classiques ajoutent une deuxième hypothèse pour résoudre ce problème :

  • Méthode de Lucas-Kanade (1981) : suppose que le flux est constant dans une petite fenêtre et résout les équations de tous ses pixels par moindres carrés. Elle fonctionne lorsque la fenêtre contient des gradients dans deux directions, comme dans le cas des coins ; elle est donc généralement utilisée pour calculer un flux clairsemé sur des points caractéristiques sélectionnés.
  • Méthode de Horn-Schunck (1981) : suppose que le champ de flux est lisse sur toute l’image et résout un problème d’optimisation global, produisant un flux dense pour chaque pixel.

Les deux hypothèses ne tiennent plus pour les grands mouvements. Les méthodes pratiques estiment donc le flux à différentes échelles sur une pyramide d’images, où un mouvement de 16 pixels à pleine résolution correspond à un mouvement de 2 pixels trois niveaux plus bas :

OpenCV implémente Lucas-Kanade pyramidal pour les points clairsemés et l’algorithme d’expansion polynomiale de Gunnar Farnebäck (2003) pour le flux dense. Ce code déplace une texture aléatoire d’une quantité connue et récupère le mouvement avec le flux dense de Farnebäck :

import cv2
import numpy as np

# A smooth random texture, then the same texture moved 3 px right and 2 px down
rng = np.random.default_rng(0)
texture = cv2.GaussianBlur(rng.random((240, 320)), (0, 0), 3)
frame1 = cv2.normalize(texture, None, 0, 255, cv2.NORM_MINMAX).astype(np.uint8)
frame2 = np.roll(frame1, shift=(2, 3), axis=(0, 1))

# Dense Farneback optical flow: one (dx, dy) displacement vector for every pixel
flow = cv2.calcOpticalFlowFarneback(
    frame1, frame2, None, pyr_scale=0.5, levels=3, winsize=15, iterations=3, poly_n=5, poly_sigma=1.2, flags=0
)
print(f"flow field shape: {flow.shape}")
print(f"median motion: dx={np.median(flow[..., 0]):.2f}, dy={np.median(flow[..., 1]):.2f} pixels")

Il affiche flow field shape: (240, 320, 2) et median motion: dx=3.00, dy=2.00 pixels : un vecteur à deux composantes pour chacun des 76 800 pixels, ce qui permet de retrouver le décalage de 3 pixels horizontalement et de 2 pixels verticalement.

Méthodes d’apprentissage profond#

FlowNet a montré en 2015 qu’un réseau neuronal convolutif pouvait apprendre le flux de bout en bout à partir de données d’entraînement synthétiques, car les vidéos réelles sont rarement accompagnées d’un flux de référence. PWC-Net a intégré dans un réseau compact les idées de pyramide, de déformation et de volume de coûts des méthodes classiques. RAFT, qui a remporté le prix du meilleur article à ECCV 2020, compare chaque pixel de la première image à chaque pixel de la deuxième dans un volume de corrélation et affine un seul champ de flux haute résolution au moyen de mises à jour récurrentes répétées. Les méthodes apprises gèrent bien mieux les grands déplacements, le flou de mouvement et les régions sans texture que les méthodes classiques, et torchvision fournit des modèles RAFT préentraînés. La précision est rapportée sous forme d’erreur de point d’extrémité (EPE), la distance moyenne en pixels entre les vecteurs de flux prédits et réels, sur des benchmarks comme MPI Sintel et KITTI 2015.

  • Suivi d’objets : suit des objets entiers avec des identifiants persistants sur de nombreuses images, tandis que le flux optique décrit le mouvement de chaque pixel entre deux images sans connaître les objets. Les systèmes de suivi utilisent le flux comme indice : dans le mode de suivi d’Ultralytics YOLO, le système de suivi TrackTrack par défaut et BoT-SORT estiment le mouvement de la caméra avec le flux clairsemé de Lucas-Kanade (gmc_method: sparseOptFlow), suivent jusqu’à 400 coins dans une image à demi-résolution, ajustent une rotation, une échelle et une translation à ces points avec RANSAC, puis décalent chaque boîte de suivi prédite selon ce mouvement avant de l’associer aux nouvelles détections.
  • Suivi de points : suit des points sélectionnés dans de longues vidéos, y compris à travers les occultations, au lieu d’estimer le mouvement de chaque pixel entre deux images.
  • Flux de scène : mouvement 3D de points dans l’espace, estimé à partir de données stéréo ou de profondeur. Le flux optique en est la projection sur le plan de l’image.
  • Vecteurs de mouvement des codecs vidéo : les encodeurs H.264, HEVC et AV1 stockent un vecteur de mouvement par bloc, choisi pour minimiser le nombre de bits nécessaires à l’encodage de l’image ; ce vecteur s’écarte donc souvent du mouvement réel.

Applications concrètes#

  • Stabilisation vidéo : le flux dominant sur une image révèle les tremblements de la caméra, que le logiciel compense en déformant chaque image dans la direction opposée.
  • Interpolation d’images : le ralenti et la conversion de fréquence d’images synthétisent des images intermédiaires en déplaçant les pixels d’une fraction de la longueur de leurs vecteurs de flux.
  • Véhicules autonomes et drones : le flux contribue à l’odométrie visuelle, et la vitesse à laquelle le flux d’un objet s’étend signale une collision imminente.
  • Reconnaissance d’actions : le réseau à deux flux de 2014 classait les actions à partir d’un flux spatial constitué d’images isolées et d’un flux temporel alimenté par une pile de 10 champs de flux optique consécutifs.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique