Scene Flow
Apprends comment le flux de scène estime le mouvement 3D entre les cadres, diffère du flux optique et de l'estimation de profondeur, et prend en charge la conduite autonome, la robotique et les 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 la manière dont les points visibles se déplacent dans l'espace 3D du monde réel entre les images, y compris les mouvements latéraux, verticaux et vers ou loin de la caméra. En computer vision, 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 associe un vecteur de déplacement ou de vitesse 3D à chaque point de scène observé. Par exemple, si un piéton traverse une route tout en s'approchant d'une caméra, les vecteurs correspondants décrivent à la fois le mouvement latéral et la distance décroissante par rapport à la caméra.
Cela diffère de l'optical flow, qui représente le mouvement apparent des pixels sur le plan d'image bidimensionnel. Comme l'explique le projet de flux de scène de Carnegie Mellon, le flux optique peut être compris comme la projection du flux de scène 3D sur l'image d'une caméra. Par conséquent, deux points peuvent avoir un mouvement d'image similaire tout en se déplaçant différemment en profondeur.
Le flux de scène dense estime le mouvement pour la plupart des points visibles, tandis que le flux de scène clairsemé couvre des caractéristiques sélectionnées, des points suivis ou des retours LiDAR. La sortie dense fournit des détails géométriques plus riches mais nécessite davantage de calculs et une correspondance fiable entre les images.
Flux de scène vs concepts de vision apparentés#
Le flux de scène combine la structure spatiale et le mouvement temporel, ce qui le place entre plusieurs tâches apparentées :
- Estimation du flux optique avec OpenCV: Estime le déplacement horizontal et vertical des pixels. Il ne peut pas déterminer de manière autonome si un objet s'est déplacé en profondeur ou si la caméra a provoqué le mouvement apparent.
- Estimation de la profondeur: Détermine la distance entre les surfaces et la caméra, généralement pour une seule image. Le flux de scène décrit en outre comment ces positions 3D évoluent au fil du temps.
- Vision stéréoscopique: Utilise des pixels correspondants provenant de caméras synchronisées pour récupérer la profondeur. Le flux de travail de profondeur stéréo OpenCV explique comment la disparité entre les vues prend en charge la reconstruction 3D.
- Suivi d'objets: Maintient les identités 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 en déformation.
- Mouvement de nuage de points : Les systèmes LiDAR et RGB-D peuvent estimer le flux de scène directement entre des ensembles de points 3D. Le guide des nuages de points Open3D présente la représentation géométrique utilisée par nombre de ces pipelines.
Le flux de scène dépend également de la géométrie de la caméra. Une calibrage de caméra OpenCV précis aide à séparer le mouvement réel de la scène des changements causés par la rotation, la translation ou la distorsion de l'objectif de la caméra.
Applications concrètes#
-
Conduite autonome : Un système de perception peut estimer si un véhicule proche change de voie, s'approche rapidement ou se déplace avec la circulation. Contrairement au seul mouvement 2D, le flux de scène prend en charge le raisonnement sur le temps avant collision car il inclut le mouvement le long de l'axe de profondeur. Il peut compléter les composants de détection, de suivi et de profondeur dans les solutions de computer vision automobile. Le référentiel de flux de scène KITTI illustre l'évaluation sur des scènes routières contenant des mouvements de caméra et des objets se déplaçant de manière indépendante, tandis que les directives de sécurité des véhicules automatisés de la NHTSA fournissent un contexte plus large pour 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 fixe d'un travailleur en mouvement, estimer la trajectoire 3D d'un obstacle et mettre à jour sa trajectoire avant qu'une collision ne se produise. Dans les solutions de vision robotique, ces informations peuvent être combinées avec des caméras, des capteurs de profondeur et le LiDAR. La documentation des messages de capteur ROS définit des interfaces communes pour l'échange d'images, d'informations sur les caméras et de nuages de points entre les 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 avec des indices de profondeur et de mouvement appris. Les capteurs stéréo et à profondeur active fournissent des mesures géométriques plus précises, tandis que les systèmes monoculaires doivent déduire l'échelle et résoudre les ambiguïtés à partir du contexte visuel.
Les cas d'échec courants incluent l'occlusion, le flou de mouvement, les surfaces réfléchissantes, les régions sans texture, les structures minces, l'éclairage changeant et le mouvement rapide entre les images. Le mouvement de la caméra crée un défi supplémentaire car le système doit séparer l'égo-mouvement des objets se déplaçant de manière indépendante. Des erreurs peuvent produire des trajectoires 3D incorrectes, amenant les systèmes de navigation ou de prédiction de collisions en aval à mal juger la vitesse et la distance.
Les données d'entraînement peuvent inclure des images RVB, de la profondeur ou de la disparité, du flux optique, de la segmentation et des paramètres de caméra. Les jeux de données Freiburg Scene Flow démontrent comment ces étiquettes complémentaires peuvent décrire ensemble 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
# Estimate the scene's per-pixel 3D structure.
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 par lui-même. Il fournit une profondeur par pixel, qu'un pipeline complet peut combiner avec des images consécutives, des correspondances temporelles et des poses de caméra calibrées pour 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 occlusions et des frontières de profondeur.






