Contents — find the section you need

La technique de reconstruction 3D par structure de mouvement (SfM) permet de récupérer un nuage de points 3D clairsemé, ne reliant que des points caractéristiques. On peut distinguer le contour d'un bâtiment ou les angles de sa texture, mais les murs et les surfaces courbes sont quasiment dépourvus de points, et le résultat ne peut être utilisé tel quel comme représentation de la forme. La stéréovision multi-vues (MVS) utilise les poses de caméra déjà connues grâce à la SfM ou à l'étalonnage de la caméra, et estime la profondeur de presque chaque pixel de l'image, la complétant par un nuage de points ou un maillage dense. Cette répartition des tâches – l'estimation de la pose étant assurée par la SfM, la reconstruction dense de la forme par la MVS – est le point de départ pour comprendre la relation entre ces deux technologies.

0. Résumé en 30 secondes

  • MVS est une technologie qui estime la profondeur, pixel par pixel, à partir de nombreuses images dont les poses sont connues, et l'intègre dans un nuage de points ou un maillage. Il s'agit du processus en aval qui remplit le nuage de points épars issu de la SfM pour lui donner une forme dense.

  • Son principe fondamental est la photocohérence : on suppose que la profondeur d'un point 3D est correcte, et les pixels correspondants dans les différentes images qui le représentent devraient avoir une couleur et une luminosité similaires.

  • Il existe deux approches classiques représentatives : Plane-Sweep, qui évalue la cohérence en balayant les candidats de profondeur sous forme de plans, et Patch-based (PMVS), qui étend et filtre itérativement de petites zones.

  • Ces dernières années, les méthodes d'apprentissage profond qui traitent un volume de coût par convolution (comme MVSNet) surpassent de plus en plus les méthodes classiques en termes de précision et de robustesse. Les cartes de profondeur multivues résultantes sont soit utilisées directement comme nuage de points, soit converties en maillage par fusion TSDF ou reconstruction de surface de Poisson. L'estimation de profondeur en temps réel avec des caméras stéréo ou de profondeur repose sur le principe de la photocohérence, mais diffère par le nombre de points de vue, le fonctionnement hors ligne et la puissance de calcul requise.

1. Quelles sont les données d'entrée et les problèmes résolus ?

Les données d'entrée de MVS sont les suivantes, déjà obtenues par SfM ou par étalonnage de la caméra :

  • La pose de la caméra et les paramètres intrinsèques de chaque image i (considérés comme connus)

  • Un ensemble d'images \{I_1,\dots,I_N\} photographiant la scène cible

La sortie est une carte de profondeur dense \{D_i\} pour chaque image (ou un ensemble d'images de référence sélectionnées), ou le nuage de points/maillage obtenu par intégration. Si le résultat de la modélisation par projection à partir de formes (SfM) — le nuage de points épars et les poses de la caméra — constitue le « squelette », la visualisation par vecteurs de support (MVS) est le processus qui lui donne du volume. Il est impossible de reconstruire une forme dense avec des poses inconnues ; la MVS intervient toujours en aval de la SfM ou de l’étalonnage, et il est essentiel de prendre en compte cet ordre dès le départ.

2. Pourquoi un nuage de points épars ne suffit-il pas ?

La SfM ne produit pas directement un nuage de points dense car ses données d’entrée dépendent de la mise en correspondance de points caractéristiques. Comme nous l’avons vu dans le guide d’introduction à la détection de caractéristiques, seuls les pixels « distinctifs » — coins, arêtes — peuvent être détectés et mis en correspondance de manière stable. Une zone à texture uniforme, comme un mur uni, ne présente aucun point caractéristique, ce qui crée un vide important dans le nuage de points 3D de la SfM.

En revanche, MVS peut exploiter la contrainte forte que les poses sont déjà connues, ce qui lui permet de se passer totalement de points caractéristiques. Pour chaque pixel, il peut évaluer directement si la profondeur candidate reste cohérente d'une image à l'autre. Ceci ouvre la possibilité d'estimer la profondeur même pour un mur peu texturé, pourvu qu'il y ait au moins un motif ou un ombrage exploitable (une surface totalement lisse reste un point faible, comme expliqué ci-dessous).

3. Le principe fondamental : la photocohérence

Presque toutes les méthodes MVS reposent sur l'hypothèse de la photocohérence. Supposons que la profondeur du point 3D correspondant au pixel \mathbf{u} dans une image de référence soit d ; Ce point 3D peut être reconstitué sous la forme :

\mathbf{X}(\mathbf{u}, d) = \pi_{\text{ref}}^{-1}(\mathbf{u}, d)

L’hypothèse de cohérence photographique repose sur le fait que sa reprojection dans une autre image k, au niveau du pixel \mathbf{u}' = \pi_k(\mathbf{X}(\mathbf{u},d)), devrait donner une couleur et une luminosité proches de I_{\text{ref}}(\mathbf{u}). On peut plus facilement comprendre cela comme une généralisation, de deux points de vue à N points de vue, de la recherche de disparité par caméra stéréoscopique — le processus, décrit dans Comment fonctionnent les caméras de profondeur et Comment fonctionnent les caméras stéréoscopiques, de la recherche des pixels correspondants entre les images gauche et droite par correspondance de luminosité. En fait, la profondeur pour une caméra stéréoscopique à deux yeux est calculée par la formule simple suivante :

Z = \frac{fB}{d_{\text{disp}}}

utilisant la distance focale f, la longueur de la ligne de base B et la disparité d_{\text{disp}}. La MVS correspond précisément à cette opération de « recherche de la disparité et conversion en profondeur », étendue à un nombre quelconque de caméras, quelle que soit leur configuration.

Une implémentation typique utilise une petite fenêtre W autour du pixel et mesure cette concordance par corrélation croisée normalisée (NCC).

\mathrm{NCC}(\mathbf{u}, d) = \frac{\sum_{\mathbf{x}\in W}\left(I_{\text{ref}}(\mathbf{x})-\bar I_{\text{ref}}\right)\left(I_k(\mathbf{x}')-\bar I_k\right)} {\sqrt{\sum_{\mathbf{x}\in W}\left(I_{\text{ref}}(\mathbf{x})-\bar I_{\text{ref}}\right)^2}\sqrt{\sum_{\mathbf{x}\in W}\left(I_k(\mathbf{x}')-\bar I_k\right)^2}}

\mathbf{x}' est le point correspondant obtenu en projetant \mathbf{x} sur l'image k, en supposant un plan local au niveau du candidat de profondeur d. \mathrm{NCC} est robuste aux variations d'échelle de luminosité et de décalage, ce qui lui permet de fonctionner même en cas de différences d'exposition ou d'éclairage entre les images. Le calcul de ce score de concordance pour chaque paire d'images et chaque candidat de profondeur, ainsi que la sélection de la profondeur présentant le meilleur score, constituent le squelette informatique de MVS.

4. Le pipeline de base

Diagram 1 · Use the button to switch views
The basic MVS pipeline A diagram showing the flow from a set of images with known camera poses, through estimating each image's dense depth map via either Plane-Sweep or Patch-based methods, to fusing multi-view depth maps into a dense point cloud or mesh. Image set +known camera poses Plane-Sweepsweep depth candidates,evaluate photo-consistency Patch-basedexpand patches,filter by visibility Dense depth mapfor each image Depth mapfusion Point cloud/mesh

La forme classique de MVS repose sur une structure en deux étapes : on choisit d’abord la méthode de balayage de plans ou la méthode par patchs pour déterminer la carte de profondeur dense de chaque image, puis on les fusionne en une forme 3D cohérente dans la seconde étape. Les méthodes modernes d’apprentissage profond suivent en grande partie cette même structure en deux étapes, tout en remplaçant l’estimation de profondeur par un réseau de neurones.

5. La méthode de balayage de plans

La méthode de balayage de plans trouve son origine dans une approche de correspondance multi-images par balayage spatial proposée par Collins lors de la conférence CVPR 1996. Elle aligne des plans virtuels, espacés à intervalles réguliers, perpendiculaires à l’axe optique de la caméra de référence (ou orientés selon la scène) dans le volume de vision de cette caméra, et évalue la profondeur en balayant les zones superficielles vers les zones profondes.

En supposant un plan à une certaine profondeur… d, les points de ce plan peuvent être projetés de l'image de référence vers une autre image via une transformation d'homographie. À l'aide d'une transformation de la forme H = K_k(R+\mathbf{t}\mathbf{n}^\mathsf{T}/d)K_{\text{ref}}^{-1}, présentée dans le Guide d'introduction à l'homographie, l'autre image I_k est déformée selon le point de vue de référence. La photocohérence (telle que le coefficient de corrélation de Nash (NCC) de la section précédente) est calculée pour chaque pixel entre l'image déformée et l'image de référence, et un coût est cumulé pour chaque candidat de profondeur.

d^*(\mathbf{u}) = \arg\min_{d\in\mathcal{D}} \sum_{k} \rho\left(1-\mathrm{NCC}_k(\mathbf{u},d)\right)

Une fois le coût calculé pour chaque candidat de profondeur, la profondeur de coût minimal est choisie pour chaque pixel. Il s'agit d'une recherche de profondeur discrète, qui se prête bien à la parallélisation GPU, permettant d'évaluer simultanément de nombreuses hypothèses de profondeur. De nombreuses implémentations combinent cette méthode avec une agrégation de coûts semi-locale (régularisation similaire à la correspondance semi-globale), interpolant la profondeur de manière fluide à partir des informations voisines, même dans les images pauvres en textures. Le module de reconstruction dense de COLMAP adopte également une approche proche du balayage planaire, optimisant la sélection de vue pixel par pixel (Pixelwise View Selection) — l'article de Schönberger et al. présenté à l'ECCV 2016 en est un exemple représentatif.

6. La méthode par patchs (PMVS)

Au lieu de balayer la profondeur pixel par pixel, la méthode par patchs génère et étend directement un ensemble de petits patchs rectangulaires couvrant la surface de la scène. Un exemple représentatif est PMVS (Patch-based Multi-View Stereo), publié par Furukawa et Ponce dans IEEE TPAMI en 2010.

Le traitement se déroule en trois étapes : « correspondance, extension, filtrage ».

  1. Correspondance : on génère d'abord un petit nombre de patchs initiaux à partir de points de correspondance faciles à détecter comme points caractéristiques, tels que les coins SIFT ou Harris. Chaque patch possède une position centrale, une direction normale et l'ensemble des images qui voient ce point (visibilité).

  2. Extension : on propage les nouveaux patchs. Des patchs sont ajoutés au voisinage des patchs initiaux, élargissant ainsi la zone couverte aux pixels environnants. La position et la normale de chaque patch propagé sont optimisées localement afin de maximiser la photocohérence avec les images environnantes.

  3. Filtre : suppression des patchs présentant des contradictions de visibilité (par exemple, un patch censé être visible alors qu'il est caché derrière un autre) ou une faible photocohérence.

Contrairement à Plane-Sweep, qui détermine la profondeur indépendamment pour chaque pixel, PMVS intègre l'information supplémentaire de la normale du patch, ce qui lui confère généralement une meilleure précision de reconstruction pour les surfaces obliques. En revanche, comme il repose sur une expansion et un filtrage itératifs, l'expansion est moins efficace dans les régions comportant peu de patchs initiaux ou une texture de mauvaise qualité, et la reconstruction a tendance à présenter des lacunes.

7. Méthodes basées sur l'apprentissage profond : l'idée du volume de coût

Ces dernières années, des méthodes représentant la concordance par candidat de profondeur non pas avec une métrique conçue manuellement (comme NCC), mais avec des caractéristiques apprises par un réseau de neurones convolutif et un L'utilisation du volume de coût s'est généralisée. MVSNet, publié par Yao et al. à ECCV 2018, en est un exemple représentatif.

MVSNet extrait une carte de caractéristiques de chaque image grâce à un extracteur de caractéristiques entraîné, suppose des plans de profondeur discrets dans le frustum de vision de la caméra de référence et aligne la carte de caractéristiques de chaque image sur le point de vue de référence par une transformation homographique différentiable. Il combine la variance des cartes de caractéristiques de plusieurs images en un seul volume de coût, le régularise par convolution 3D, puis effectue une régression de la profondeur par une fonction softmax le long de la direction de profondeur. Son architecture de base s'inspire du principe de « balayage des candidats de profondeur et évaluation » de Plane-Sweep, mais la différence avec les méthodes classiques réside dans le fait que le calcul de la photo-cohérence est lui-même apprenable.

Les méthodes basées sur l'apprentissage ont tendance à être plus robustes dans des conditions où les métriques de photo-cohérence manuelles sont mises à rude épreuve (motifs répétitifs, textures faibles), à condition que les données d'entraînement incluent des situations similaires. En revanche, leurs performances peuvent se dégrader dans des scènes très éloignées de la distribution. du jeu de données d'entraînement (matériaux inhabituels, éclairage extrême).

8. Fusion et maillage des cartes de profondeur

Comme chaque carte de profondeur multivue est estimée indépendamment, leur superposition directe sous forme de points 3D engendre des contradictions dues au bruit et à l'occlusion (points légèrement décalés au même emplacement s'accumulant sur plusieurs calques, ou différences de profondeur entre les points de vue). La fusion est le processus qui consolide ces cartes de profondeur en une représentation unique et cohérente.

  • Fusion sous forme de nuage de points : seuls les pixels dont la profondeur est cohérente entre les points de vue sont conservés, les profondeurs peu fiables sont éliminées, puis les données sont intégrées. COLMAP et d'autres logiciels produisent ainsi un nuage de points dense.

  • Fusion TSDF (Truncated Signed Distance Function) : méthode volumétrique proposée par Curless et Levoy à SIGGRAPH 1996, qui divise l'espace en voxels et accumule une distance signée dans chaque voxel. Largement utilisée pour la fusion en temps réel des données de profondeur issues de caméras (comme KinectFusion), elle est également applicable. Fusion des cartes de profondeur MVS.

  • Maillage : à partir d'un nuage de points ou d'un champ de distance signé, des méthodes telles que la reconstruction de surface de Poisson (2006), par Kazhdan et al., génèrent un maillage polygonal lisse. L'ajout d'une texture permet de compléter un modèle 3D utilisable visuellement.

9. Comparaison d'algorithmes représentatifs

Aspect Balayage planaire Approche par patchs (PMVS) Apprentissage automatique (famille MVSNet)
Principe Balayage des plans de profondeur, évaluation de la photoconsistance par pixel Expansion et filtrage itératifs de petits patchs Régularisation d'un volume de coût avec un CNN et régression de la profondeur
Précision Dépend de la résolution de profondeur et de la conception de l'agrégation des coûts ; moyenne à élevée Tendance à être précise pour les formes locales obliques ou complexes Haute précision dans des conditions proches des données d'entraînement
Coût de calcul Facilement Parallélisation GPU, rapide Tendance à être plus lent que Plane-Sweep en raison du traitement itératif Inférence rapide après l'entraînement ; coût d'entraînement séparé
Robustesse Faible dans les régions pauvres en textures Tendance à laisser des trous dans les régions avec peu de patchs initiaux Relativement robuste aux textures faibles ou aux motifs répétitifs
Difficulté d'implémentation Modérée (déformation homographique et agrégation des coûts) Élevée (gestion de la visibilité et conception de l'expansion itérative) Élevée (nécessite des données d'entraînement et la conception du réseau)
Implémentations représentatives COLMAP dense, nombreux outils de photogrammétrie commerciaux PMVS/CMVS MVSNet, méthodes d'apprentissage ultérieures

10. Relation avec les caméras stéréo et de profondeur

MVS partage son principe sous-jacent — « trouver la profondeur à partir de la correspondance entre plusieurs points de vue » — avec les caméras stéréo et [les caméras de profondeur] Les caméras de profondeur (ou caméras stéréoscopiques) occupent des positions différentes.

  • Les caméras stéréoscopiques utilisent une configuration fixe à deux yeux, limitant la recherche de disparité à une dimension le long de la ligne épipolaire. Elles sont conçues pour un traitement en temps réel. La méthode Plane-Sweep de MVS généralise cette recherche de disparité à un nombre quelconque de caméras, quelle que soit leur disposition.

  • Les caméras de profondeur (lumière structurée, ToF, stéréoscopique active) projettent activement de la lumière, ce qui leur permet d'obtenir une distance stable, même pour des surfaces peu texturées. MVS reposant uniquement sur la photoconsistance passive, il est intrinsèquement désavantagé sur les surfaces peu texturées, contrairement aux caméras de profondeur actives.

  • MVS fonctionne fondamentalement hors ligne, construisant une forme haute précision et haute densité à partir de nombreuses images (de plusieurs dizaines à plusieurs centaines). Les caméras stéréoscopiques et de profondeur, quant à elles, sont optimisées pour fournir la profondeur image par image, en temps réel.

Selon l'application, Les robots ou la réalité augmentée nécessitant des performances en temps réel sont adaptés aux caméras stéréoscopiques/de profondeur, tandis que les modèles 3D hors ligne de haute précision pour la documentation du patrimoine culturel, les relevés architecturaux ou la photogrammétrie sont adaptés aux systèmes MVS.

11. Conditions difficiles et cas de défaillance courants

  • Surfaces uniformes ou peu texturées : les murs blancs, les sols unis et le ciel offrent peu d’indices pour la photocohérence, ce qui rend la profondeur indéterminée ou erronée en raison du bruit ambiant.

  • Objets spéculaires, transparents ou translucides : le verre, les surfaces d’eau et les reflets métalliques changent d’apparence selon le point de vue, ce qui remet en cause l’hypothèse même de photocohérence.

  • Motifs répétitifs : les carreaux, les briques et les rangées de cultures dans un champ peuvent produire des « solutions fantômes », où une profondeur incorrecte présente néanmoins une photocohérence locale élevée.

  • Occlusion : les régions visibles uniquement depuis certains points de vue peuvent voir leur photocohérence évaluée à partir d’une image erronée si la visibilité est mal estimée, ce qui fausse l’estimation de la profondeur.

  • Insuffisant Points de vue ou parallaxe : si le nombre de points de vue couvrants est faible, ou si la parallaxe est trop faible, la résolution disponible en profondeur est tout simplement insuffisante.

12. Choix pratiques

  • Si les poses sont déjà connues grâce à la photogrammétrie par projection (SfM) ou à l'étalonnage, et que l'objectif est une reconstruction 3D hors ligne privilégiant la précision (documentation du patrimoine culturel, relevés architecturaux, photogrammétrie pour la production vidéo), une implémentation de type Plane-Sweep, comme le pipeline dense de COLMAP, constitue un point de départ accessible.

  • Si la précision pour les surfaces obliques ou les formes locales complexes est une priorité, envisagez une approche par patchs de la famille PMVS, ou une implémentation hybride intégrant ses concepts.

  • Si vous savez à l'avance que la scène est pauvre en textures ou comporte de nombreux motifs répétitifs, les méthodes d'apprentissage (famille MVSNet) ont tendance à être plus robustes. Les performances pouvant se dégrader sur des scènes hors de la distribution des données d'entraînement, évaluez la méthode sur des données proches de votre domaine cible avant de l'adopter.

  • Pour les applications exigeant des performances en temps réel (robots, RA/RV, etc.), Détection d'obstacles en conduite autonome : privilégiez les caméras stéréo ou les caméras de profondeur à la méthode MVS. Le principal domaine d'application de MVS est la reconstruction hors ligne haute densité et haute précision.

  • Si le livrable final doit être un maillage ou un modèle 3D texturé, choisissez la fusion TSDF ou la reconstruction de surface de Poisson lors de la fusion de la carte de profondeur ; si un nuage de points suffit, vous pouvez vous arrêter là.

13. Résumé

La stéréo multi-vues (MVS) utilise les poses de caméra déjà connues grâce à la photogrammétrie (SfM) ou à l'étalonnage, et reconstruit la profondeur dense en exploitant la cohérence photographique. Les deux approches classiques, balayage planaire et approche par patchs, présentent des compromis différents. Ces dernières années, les méthodes de la famille MVSNet, qui apprennent un volume de coût, améliorent encore la précision et la robustesse. Le processus se poursuit jusqu'à la fusion et le maillage des données. Comprendre les cartes de profondeur résultantes et la distinction entre les deux approches (la stéréoscopie multivue privilégiant la précision au détriment des performances en temps réel, contrairement aux caméras stéréo/de profondeur qui privilégient les performances en temps réel) est essentiel pour faire le bon choix pratique.

Vérifiez votre compréhension
Un nuage de points plus dense garantit-il une géométrie plus précise ?

Plus d'erreurs de profondeur n'améliorent pas la précision. Vérifiez la cohérence multivue, l'occlusion, la réflexion et la texture indépendamment de la densité.

Références

What to read next

Review the backgroundIntroduction à l'ajustement par faisceaux — La méthode des moindres carrés non linéaires qui optimise simultanément les poses de caméra et les points 3DContinue the seriesVO/VIO Primer — Bases pratiques pour l'estimation du mouvement à partir d'une caméra et d'une centrale inertielleExplore another aspect of this fieldLab de luminosité et luminance — exposition, gamma et écrêtage