Scene Flow
Découvre comment le flux de scène estime le mouvement 3D d’une image à l’autre, en quoi il diffère du flux optique et de l’estimation de profondeur, et comment il contribue à la conduite autonome, à la robotique et aux flux de travail de vision YOLO26.
Le flux de scène est le champ de mouvement tridimensionnel d’une scène dynamique au fil du temps. Il décrit comment les points visibles se déplacent dans l’espace 3D réel entre les images, notamment les mouvements latéraux, verticaux et vers la caméra ou à l’opposé de celle-ci. En vision par ordinateur, le flux de scène aide les systèmes à comprendre non seulement ce qui semble bouger dans une image, mais aussi comment la géométrie environnante change réellement.
Comment le flux de scène représente le mouvement 3D#
Une estimation du flux de scène attribue un vecteur de déplacement ou de vitesse 3D à chaque point observé de la scène. Par exemple, si un piéton traverse une route en s’approchant d’une caméra, les vecteurs correspondants décrivent à la fois le mouvement latéral et la diminution de la distance par rapport à la caméra.
Cela diffère du flux optique, qui représente le déplacement apparent des pixels dans le plan d’image bidimensionnel. Comme l’explique le projet Scene Flow de Carnegie Mellon, le flux optique peut être considéré comme la projection du flux de scène 3D sur une image de caméra. Par conséquent, deux points peuvent avoir un mouvement similaire dans l’image tout en se déplaçant différemment en profondeur.
Le flux de scène dense estime le mouvement de la plupart des points visibles, tandis que le flux de scène épars ne concerne que des caractéristiques, des points suivis ou des retours LiDAR sélectionnés. Le résultat dense fournit des détails géométriques plus riches, mais nécessite davantage de calculs et des correspondances fiables entre les images.
Flux de scène et concepts de vision associés#
Le flux de scène associe la structure spatiale au mouvement temporel, et se situe ainsi entre plusieurs tâches connexes :
- Estimation du flux optique avec OpenCV : estime le déplacement horizontal et vertical des pixels. Elle ne permet pas de déterminer indépendamment si un objet s’est déplacé en profondeur ou si le mouvement apparent est dû à la caméra.
- Estimation de la profondeur : détermine à quelle distance de la caméra se trouvent les surfaces, généralement pour une seule image. Le flux de scène décrit également l’évolution de ces positions 3D au fil du temps.
- Vision stéréo : utilise les pixels correspondants de caméras synchronisées pour récupérer la profondeur. Le processus d’estimation de la profondeur stéréo avec OpenCV explique comment la disparité entre les vues contribue à la reconstruction 3D.
- Suivi d’objets : conserve l’identité des objets d’une image à l’autre, généralement à l’aide de boîtes englobantes ou de masques. Le flux de scène estime plutôt le mouvement au niveau du point ou du pixel et peut représenter différents mouvements au sein d’un même objet déformable.
- Mouvement des nuages de points : les systèmes LiDAR et RGB-D peuvent estimer directement le flux de scène entre des ensembles de points 3D. Le guide Open3D sur les nuages de points présente la représentation géométrique utilisée par de nombreux pipelines de ce type.
Le flux de scène dépend également de la géométrie de la caméra. Un étalonnage de caméra avec OpenCV précis aide à distinguer le mouvement réel de la scène des changements dus à la rotation ou à la translation de la caméra, ou à la distorsion de l’objectif.
Applications concrètes#
-
Conduite autonome : un système de perception peut estimer si un véhicule proche change de voie, s’approche rapidement ou roule dans le sens de la circulation. Contrairement au seul mouvement 2D, le flux de scène permet de raisonner sur le temps avant collision, car il inclut les déplacements le long de l’axe de profondeur. Il peut compléter les composants de détection, de suivi et d’estimation de la profondeur dans les solutions de vision par ordinateur pour l’automobile. Le benchmark KITTI de flux de scène illustre l’évaluation sur des scènes routières comprenant des mouvements de caméra et des objets se déplaçant de manière indépendante, tandis que les recommandations de la NHTSA sur la sécurité des véhicules automatisés apportent un éclairage plus général sur les systèmes de perception axés sur la sécurité.
-
Robotique : un robot mobile peut utiliser le flux de scène pour distinguer une étagère immobile d’un travailleur en mouvement, estimer la trajectoire 3D d’un obstacle et mettre à jour son itinéraire avant une collision. Dans les solutions de vision pour la robotique, ces informations peuvent être combinées aux données des caméras, des capteurs de profondeur et du LiDAR. La documentation des messages de capteurs ROS définit des interfaces courantes pour échanger des images, des informations sur les caméras et des nuages de points entre composants robotiques.
Défis d’estimation et données#
Le flux de scène peut être dérivé de vidéos stéréo, de caméras RGB-D, de séquences LiDAR ou de vidéos monoculaires à l’aide d’indices de profondeur et de mouvement appris. Les capteurs stéréo et de profondeur active fournissent des mesures géométriques plus précises, tandis que les systèmes monoculaires doivent inférer l’échelle et résoudre les ambiguïtés à partir du contexte visuel.
Les cas d’échec fréquents comprennent les occultations, le flou de mouvement, les surfaces réfléchissantes, les régions sans texture, les structures fines, les changements d’éclairage et les mouvements rapides entre les images. Le mouvement de la caméra complique davantage la tâche, car le système doit séparer le mouvement propre de la caméra de celui des objets qui se déplacent indépendamment. Les erreurs peuvent produire des trajectoires 3D incorrectes et amener les systèmes de navigation ou de prédiction des collisions en aval à mal évaluer la vitesse et la distance.
Les données d’entraînement peuvent inclure des images RGB, la profondeur ou la disparité, le flux optique, la segmentation et les paramètres de caméra. Les jeux de données Freiburg Scene Flow montrent comment ces annotations complémentaires peuvent décrire conjointement la géométrie et le mouvement.
Flux de travail pratique#
Ultralytics YOLO26 peut fournir le composant de profondeur d’un pipeline de flux de scène grâce à sa tâche d’estimation de la profondeur monoculaire documentée. L’exemple suivant produit une carte de profondeur dense pour une image :
from ultralytics import YOLO
# Estime la structure 3D de la scène pour chaque pixel.
model = YOLO("yolo26n-depth.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
result.save(filename="depth_result.jpg")
print(result.depth.data.shape)Ce flux de travail YOLO26 ne calcule pas le flux de scène à lui seul. Il fournit la profondeur de chaque pixel, que peut combiner un pipeline complet avec des images consécutives, des correspondances temporelles et des poses de caméra étalonnées afin d’estimer le déplacement 3D. En pratique, les équipes doivent valider chaque composant séparément avant d’évaluer le champ de mouvement complet, en particulier autour des occultations et des limites de profondeur.









