Reconstruction

La fonctionnalité Reconstruction va au-delà de la reconstruction par la caméra, qui se contente de générer plusieurs arêtes 3D. Elle s’attache à reconstruire la vidéo en utilisant un Nuage de points ou un maillage 3D. Par ailleurs, les couleurs de points seront utilisées pour colorer les arêtes ou le maillage en accord avec le métrage.

Dans des conditions idéales (voir Métrage optimal ci-dessous), le résultat de ce type de reconstruction de scène peut consister en un Nuage de points dense ou en un maillage uniforme. Mais les résultats réels sont souvent différents, du fait qu’il n’existe pas de métrage optimal. Vous obtenez alors des nuages de points ou des maillages isolés et inégaux.

La séquence d’images fonctionne dans le sens des aiguilles d’une montre ; le Nuage de points correspondant.

La reconstruction de scène ne remplace pas un scanner 3D. Les Nuages de points ou les maillages créés peuvent par exemple être utilisés comme repères dans l’espace 3D pour recréer des objets, etc.

Conditions à remplir pour la reconstruction de scène

Pour réussir une reconstruction de scène, vous devez toujours effectuer un suivi de la caméra en amont : réalisez un suivi 2D, puis effectuez un tracking de caméra et terminez le processus en cliquant sur le bouton Lancer solveur 3D (l’opération peut avoir été faite automatiquement en sélectionnant la commande Résolution complète du menu Traqueur). Il peut également être utile de calibrer la caméra et les différentes fonctionnalités en utilisant la propriété Contrainte, qui définira correctement l’échelle et l’orientation de la scène reconstruite et du nuage de points.

Comment déterminer si le suivi de la caméra a fonctionné ? Le suivi de la caméra a fonctionné après que le processus décrit plus haut s’est achevé et qu’une série de pistes Auto ou Utilisateur a été ajoutée à l’objet Traqueur de Mouvement sous forme d’objets Enfants. Les pistes sont importantes car plus tard, elles constitueront le point de départ de la reconstruction de scène.

Les pistes 2D existantes ne seront plus d’aucune utilité pour la reconstruction de scène.

Métrage optimal

Le métrage optimal avec lequel la reconstruction de scène fonctionne est caractérisé par les points suivants :

Informations utiles

Limites

Fonctionnement

L’algorithme utilisé est complexe. Ici, nous en ferons une courte description (puisque dans le cas contraire, l’appellation des paramètres deviendra incompréhensible quand nous en viendrons à l’explication des patchs et des cellules). Heureusement, le paramètre Qualité ajuste les paramètres en fonction de ses propres critères de qualité.

Globalement, que se passe-t-il pendant la construction d’une scène ?

  1. Plusieurs images seront sélectionnées (au moins 10, davantage si le mouvement de la caméra est plus rapide)
  2. Chaque image a une position de caméra (déterminée par le suivi de caméra 3D que vous venez de réaliser)
  3. Chacune de ces images sera divisée à l’aide d’une grille en cellules carrées d’après une grille.
  4. Un point 3D de la scène qui est visible depuis plusieurs positions de caméra posède une position en 2D dans chaque image correspondante. Ce point se trouve à l’interrieur d’une cellule.
  5. La reconstruction de la caméra 3D que vous avez effectuée a déjà généré des points 3D (les pistes 3D) qui sont utilisés pour créer des patchs de départ. Les patchs sont des points de l’espace à partir desquels le nuage de points sera généré. Chaque patch représente une petite zone de surface plane.
  6. Pour chaque image, un patch et une cellule correspondante seront définis.
  7. Un processus d’expansion interactif a lieu. Pendant celui-ci, de nouveaux patchs seront créés à partir des patchs existants (qui se trouvent sur la surface 3D à reconstruire).
  8. De nouveaux patchs seront attribués aux cellules et la grille se remplira petit à petit. Cette opération a pour but de de placer un patch dans chacune des cellules (mais cet objectif est très rarement atteint).
  9. L’expansion des nouveaux patchs a été dirigée vers les cellules vides.
  10. Le processus d’expansion se poursuivra jusqu’à ce que les patchs générés ne remplissent plus les différents critères de sélection interne (chaque patch créé subit une série de tests, et en cas d’échec à ces tests, le patch est supprimé) ou que les cellules de toutes les images possèdent au moins un patch.

En résumé, l’algorithme utilise les arêtes 3D existantes (les pistes du suivi de la caméra générées lors de la première étape, puis les patchs générés par la suite) comme position de départ et s’étend vers l’extérieur sur une surface 3D. La qualité du résultat final dépend de l’image ou de la scène (mais aussi du suivi de la caméra).

Les patchs sont attribués à un objet polygonal appelé Scenepointcloud. Chaque point possède une couleur déterminée d’après l’image et qui est ajoutée à l’objet polygonal comme propriété Couleur de point. Si vous le souhaitez, il est possible d’effectuer un "maillage” qui génèrera une surface polygonale à partir des arêtes reconstruites.

Préréglage

Dans cette section, vous trouverez différents préréglages qui configurent les paramètres ci-dessous en fonction des niveaux de qualité disponibles. Si vous ne parvenez pas à obtenir de résultats satisfaisants en utilisant ces préréglages, cela vient peut-être du fait que la qualité de votre métrage n’est pas optimale (voir également Métrage optimal).

Réglages avancés

Itérations[1..3]

Notez que les trous disparaissent lorsque les Itérations augmentent. De gauche à droite, les valeurs 1, 2 et 3.

Si vous jetez rapidement un oeil au fonctionnement des processus internes, vous verrez qu’une série de tâches itératives sont effectuées. Elles consistent avant tout en la création de nouveaux patchs dans des zones vides, l’optimisation et la filtration des "mauvais” patchs, et la répétition de ces différents processus. Ce paramètre définit le nombre d’itérations qui doivent avoir lieu.

Plus la valeur est élevée, moins les "trous” du nuage de points seront visibles et plus le rendu prendra de temps.

Sous-échantillonnage du métrage[0..8]

Deux paramètres qui fonctionnent indépendamment l’un de l’autre sont disponibles pour la reconstruction 3D par caméra (Rééchantillonnage) et la reconstruction de scène. Ils définissent la résolution avec laquelle le métrage sera utilisé pour la reconstruction. Le paramètre Sous-échantillonnage du métrage est utilisé pour la reconstruction de scène.

Si le métrage doit être traité en interne avec une résolution moindre pour la reconstruction de scène, il faut augmenter cette valeur. 0 reflète la résolution originale (voir paragraphe suivant), et 1, la moitié de la résolution (sur les deux longueurs, c’est-à-dire qu’une zone carrée de 4 pixels sera compilée), etc. La reconstruction de scène effectue plus rapidement les calculs lorsque la résolution augmente, mais la densité du nuage de points diminuera en conséquence. Vous pouvez utiliser ce paramètre (par exemple des valeurs supérieures à 1) si le métrage que vous avez chargé a une très grande résolution. Cela permettra de réduire un peu les temps de rendu.

Gardez en tête qu’une valeur de 0 pour la résolution originale ne produira pas nécessairement de meilleurs résultats que si elle était configurée sur 1. En interne, différentes résolutions seront utilisées en interne en fonction de la distance de la caméra par rapport au patch. La résolution qui sera configurée ne s’applique qu’à une caméra virtuelle située à cette distance du patch (définie en utilisant la "caméra de référence”). La résolution configurée sura utilisée pour toutes les distances. S’il existe une grande variation entre les caméras et le patch, des résolutions plus basses ou plus élevées seront automatiquement appliquées. Cependant, si la valeur est réglée sur 0, il est impossible d’appliquer des résolutions plus élevées.

Ce principe permet de comparer plus facilement des patchs à des distances différentes.

Densité des points[1..8]

Valeurs de la Densité des points de gauche à droite : 3, 5, et 7.

Comme cela a déjà été expliqué dans la rubrique Fonctionnement, chaque image du métrage est divisée en une grille. L’algorithme cherche à calculer un point 3D pour le nuage de points dans chaque cellule de la grille. Dans l’idéal (avec un métrage optimal), le processus fonctionne (mais dans la plupart des cas, il reste des trous).

Dans tous les cas, la valeur Densité des points détermine la taille des cellules individuelles de la grille. Plus la valeur sera élevée, plus les cellules seront petites et denses, et plus la densité du nuage de points sera importante. Avec la valeur maximum (8), la taille de la cellule sera égale à la taille du pixel et idéalement, un point se retrouvera sur chaque pixel du métrage. Bien entendu, les temps de rendu augmenteront en fonction de l’augmentation de la valeur de la Densité des points.

Taille de patch[3..2147483647]

Valeurs de la Taille de patch de gauche à droite : 5, 10, 20, 50, 100. Prenez note de l’amélioration de la qualité lorsque ces valeurs augmentent.

Cet algorithme tente de reconnaître de petites zones du métrage à des moments spécifiques pour définir et optimiser la position et la rotation des patchs. La valeur Taille de patch définit la taille de carré de ces zones en pixels. En principe, cette valeur reflète la Taille du motif du menu Traqueur 2D mais n’est valable que pour la reconstruction de scène :

Chaque patch est par la suite représenté par un point 3D du nuage de points.

Des valeurs plus élevées augmenteront la qualité du nuage de points en conséquence. Cela aura une influence sur les temps de rendu, qui seront plus long. Notez que dans l’image ci-dessus, par exemple, la distorsion du cadre et des barres s’améliore lorsque vous augmentez la valeur Taille de patch.

Détail min. de texture[0..100%]

Cette valeur contrôle une valeur limite qui utilise la variation du pixel d’un patch comme référence. Si aucun changement réel n’apparaît sur la surface d’un patch, c’est-à-dire s’il reste monotone, sans contrastes élevés, une valeur Détail min. de texture supérieure empêchera la création d’un patch (= pas de reconstruction à cet endroit).

Ce paramètre a pour objectif d’empêcher la création de patchs dans des zones avec peu de détails de texture (comme un ciel bleu uniforme) en augmentant cette valeur avec précaution. De telles zones sont très difficiles à traiter et mènent par conséquent souvent à des erreurs.

Si votre métrage possède un niveau de détails de texture élevé, vous obtiendrez un nuage de points de meilleure qualité en augmentant cette valeur.

Pour résumer, des valeurs plus élevées produisent des patchs/points de reconstruction moins nombreux mais de meilleure qualité, tandis que des valeurs plus basses créent davantage de patchs/reconstructions de moins bonne qualité.

Une valeur par défaut de 0.5% devrait convenir pour la plupart des métrages.

Filtrer les petits groupes

A gauche, option Filtrer les petits groupes désactivée ; à droite, option activée.

Si cette option est activée, la reconstruction de scène tentera d’enlever les petites zones de patchs isolées. Dans l’image ci-dessus, observez combien de petits groupes de points isolés ont été filtrés.

Cependant, l’efficacité de ce paramètre dépend beaucoup du métrage et peut, par conséquent, être également désactivée en raison du fait que certains patchs peuvent être inutilement enlevés.

Angle min.[0..180°]

Quel est l’angle affecté ? Imaginez une ligne droite allant de la première caméra au patch et de la seconde caméra au patch : les deux lignes se rencontrent au niveau du patch. L’angle entre ces lignes correspond à l’angle qui est affecté.

Les patchs sont traités depuis des positions de caméra différentes (celles qui proviennent du suivi de la caméra). Ce paramètre fait en sorte de maintenir un angle minimal entre les caméras afin d’éviter que des patchs soient traités pas deux caméras voisines qui n’auraient pas bougé (le patch sera presque identique).

La valeur par défaut fonctionne bien pour la plupart des métrages. Dans les vidéos où la caméra ne bouge que très légèrement, il peut être utile de baisser légèrement la valeur. En revanche, cela rendra la reconstruction moins précise. Ne vous laissez pas tromper si la vue se remplit de patchs et de points reconstruits lorsque vous utilisez des valeurs moins élevées : la quantité n’est pas toujours synonyme de qualité.

Pour résumer : des valeurs plus élevées aboutiront à des patchs et des points reconstruits moins nombreux mais de meilleure qualité ; des valeurs moins élevées mèneront à des des patchs et des points reconstruits plus nombreux mais de moins bonne qualité. Avec des valeurs trop élevées, aucun nuage de points ne sera créé.

Les effets présentés ci-dessus sont provoqués par des valeurs différentes. Dans le sens des aiguilles d’une montre, en partant du haut à gauche : valeurs Angle min de , , 10° et 15°.

Maillage

Après que les réglages du menu Réglages avancés ont été configurés, vous pouvez créer un maillage polygonal en utilisant ces points.

Influence de zone[0..100%]

Influence photométrique[0..100%]

Ces deux paramètres ont un effet similaire.

Avec des valeurs plus élevées, ces paramètres tenteront de remplacer les plus grands triangles par des triangles plus petits qui couvrent la même surface.

Quand cela est possible, les surfaces défectueuses seront évitées. Si les valeurs définies sont très élevées, le maillage sera réduit en conséquence, selon la scène.

L’Influence photométrique est un petit peu plus poussée que l’Influence de zone parce qu’elle utilise également les informations du métrage.

Générer le maillage

Si une reconstruction de scène a déjà eu lieu, c’est-à-dire si vous avez cliqué sur le bouton Créer un nuage de points, ces données serviront à générer un maillage polygonal correspondant. Les paramètres Influence de zone et Influence photométrique peuvent être modifiés à tout moment. En cliquant sur Générer maillage, vous générerez un nouveau maillage sans avoir à reconstruire entièrement une nouvelle scène.

Lorsqu’aucune reconstruction de scène n’a eu lieu, cela sera fait et le maillage sera généré. Chaque point de l’objet polygonal correspondra aux positions 3D reconstruites dans l’espace.

Il est recommandé de commencer par générer un nuage de points afin que vous soyez satisfait de la densité et de la couverture avant de passer au maillage.

Astuce : Ajoutez une propriété Phong au maillage polygonal pour le lisser.

A gauche, le maillage qui a été généré en utilisant le nuage de points. En bas à droite, le maillage a reçu une Matière influence des points ainsi qu’une propriété Couleur de point (il peut également être texturé directement avec le métrage en utilisant la propriété de Projection par caméra).

Des zones problématiques du maillage présentent des trous dans le nuage de points. Ces trous seront initialement refermés, peu importe leur taille, ce qui peut amener à la création de grands triangles. Le résultat final ne sera pas très bon. Vous pouvez utiliser les deux derniers paramètres pour atténuer cet effet.

Générer un nuage de points

Cliquez sur ce bouton pour démarrer la reconstruction de la scène. Si le processus fonctionne, il donnera un nuage de points de la scène avec une propriété Couleur de point (dans laquelle la couleur de chaque point du métrage est enregistrée). Si l’option est désactivée, un objet polygonal appelé Scenemesh sera également créé. Cet objet aura aussi une propriété Couleur de point avec chaque couleur.

En fonction du métrage et des paramètres, le processus de calcul peut nécessiter plusieurs minutes pour s’achever.

Ce bouton sera grisé si une ou plusieurs conditions préalables ne sont pas remplies, comme par exemple :