Stage de DEA Avril -> Septembre « Utilisation de cartes de profondeur pour la reconstruction 3D » Romain Dupont encadré par J.Aubourg et P. Fuchs à l ’Ecole des Mines de Paris
Projet GANTOM Objectif : Reconstruire un modèle 3D haute précision d ’un objet de type muséographique à partir de photographies Chaîne complète de traitements : 2 grandes parties Prises de vues Extraction de la profondeur Reconstruction 3D Texturation 1 2
Première partie de la chaîne Prises des vues Stéréovision Cartes de profondeur stéréovision Caractéristiques des cartes de profondeur : très bruitées nombreuses erreurs locales
Deuxième partie de la chaîne (1/3) Cartes de profon-deur Fusion des cartes Extraction de la surface Texturation Shape From Depth : génère un modèle volumique 3D en fusionnant les cartes de profondeur Modèle 3D généré par une carte (obtenu en enlevant les cubes de l ’espace qui sont « devant » la carte de profondeur) Fusion des 2 cartes Fusion de toutes les cartes Avec une autre carte
Deuxième partie de la chaîne (2/3) Cartes de profon-deurs Fusion des cartes Extraction de la surface Texturation Données obtenues : ensemble de voxels binaires (un voxel est un cube plein ou vide) stockées dans une structure hiérarchique : l ’Octree (arbre où chaque nœud a 8 fils)
Extraction de la surface Deuxième partie de la chaîne (3/3) Cartes de profon-deurs Shape From Depth Extraction de la surface Texturation Extraction de la surface Triangule la surface du modèle 3D Effectuée par le Marching Cube qui détermine les voxels par lesquels passe la surface puis triangule en s ’appuyant sur une table pré-calculée Défaut majeur : on obtient une surface bosselée
Objectif du stage Supprimer l’effet bosselé de la surface Travail centré sur la deuxième partie de la chaîne 1) Filtrage des cartes de profondeur 2) Amélioration du Shape From Depth 3) Suppression de l ’effet bosselé
Lissage anisotropique Cartes de profon-deurs Lissage des cartes Shape From Depth Lissage des densités des voxels Extraction de la surface Lissage anisotropique Sa particularité : Lisse sans estomper ni les détails ni les contours S ’appuie sur une mesure g(x,y) du gradient de l ’image en (x,y) gradient élevé => || g(x,y) || élevé (et vice-versa) L ’intensité I(x,y) du lissage va dépendre de g(x,y) : I(x,y) = f ( || g(x,y) || ) avec f(X), fonction décroissante exemple : f(X) = exp(- (X / β) ² )
Lissage des cartes gaussien original anisotropique Cartes de profon-deurs Lissage des cartes Shape From Depth Lissage des densités des voxels Extraction de la surface gaussien original anisotropique
Lissage des cartes Résultat : Lissage des cartes avant après Cartes de profon-deurs Lissage des cartes Shape From Depth Lissage des densités des voxels Extraction de la surface Lissage des cartes Résultat : Surface plus régulière Géométrie de l’objet conservée avant après
Cartes de profon-deurs Lissage des cartes Shape From Depth Lissage des densités des voxels Extraction de la surface Cartes synthétiques Développement d ’un générateur de cartes de profondeurs synthétiques maîtriser l ’influence du bruit présent dans les cartes générer tous types de données : objet sphérique, cubique, pyramidale … Même en l ’absence de bruit, l ’effet bosselé demeure
Amélioration du Shape From Depth (1/2) Cartes de profon-deurs Lissage des cartes Shape From Depth Lissage des densités des voxels Extraction de la surface Amélioration du Shape From Depth (1/2) Problème constaté : l ’information sub-pixellique des cartes de profondeur n ’est pas exploitée Les voxels ne sont pas alignés avec les pixels des cartes de profondeur. Resubdivision des voxels Interpolation sub-pixellique des pixels afin d ’obtenir une information continue de profondeur
Amélioration du Shape From Depth (2/2) Cartes de profon-deurs Lissage des cartes Shape From Depth Lissage des densités des voxels Extraction de la surface Amélioration du Shape From Depth (2/2) Après (avec un zoom) Avant ...
Lissage des densités des voxels Cartes de profon-deurs Lissage des cartes Shape From Depth Lissage des densités des voxels Extraction de la surface Aliasing L ’effet bosselé est du à l’aliasing : les voxels du modèle volumique sont binaires => effet d ’escalier comme en 2D Le Marching Cube utilise la densité des voxels lors de la triangulation La densité sera utilisée pour supprimer l ’effet bosselé de la surface
Lissage des densités des voxels Cartes de profon-deurs Lissage des cartes Shape From Depth Lissage des densités des voxels Extraction de la surface Anti-aliasing Techniques d ’anti-aliasing développées : lissage des densités des voxels 1) Soit par over-sampling : sur-échantillonner puis réduire la résolution par moyennage 2) Soit par un lissage (gaussien ou anisotropique 3D)
Lissage des densités des voxels Cartes de profon-deurs Lissage des cartes Shape From Depth Lissage des densités des voxels Extraction de la surface Solution 1 : lissage par « over-sampling » (1/2) Principe : augmenter la résolution du modèle 3D puis la réduire par moyennage en utilisant l’organisation hiérarchique (en Octree) des voxels. En passant du niveau N au niveau N-1 dans l’ Octree, les voxels doublent en largeur mais acquièrent une information de densité à partir de ses 8 voxels fils. 0.5 0.75 Octree niveau N+2 0.625 Octree niveau N+1 1 Octree niveau N+3 (densités binaires)
Lissage des densités des voxels Cartes de profon-deurs Lissage des cartes Shape From Depth Lissage des densités des voxels Extraction de la surface Technique 1 : lissage par « over-sampling » (2/2) Résultat : avant après
Lissage des densités des voxels Cartes de profon-deurs Lissage des cartes Shape From Depth Lissage des densités des voxels Extraction de la surface Technique 2 : lissage anisotropique 3D (1/5) Lissage isotropique (ie. uniforme) : + surface lisse + rapide - détails estompés But : ne lisser que les zones comportant peu de détails (fissures, arêtes …) lissage anisotropique 3D
Lissage des densités des voxels Cartes de profon-deurs Lissage des cartes Shape From Depth Lissage des densités des voxels Extraction de la surface Technique 2 : lissage anisotropique 3D (2/5) Difficulté : estimer la complexité locale de l’objet dont les densités sont binaires Estimateur g(x,y,z) retenu : la variance des normales Ni du voisinage de (x,y,z) g(x,y,z) = Var ( Ni ) = Σ || Ni - Nm || ², avec Nm la normale moyenne du voisinage Calcul des normales
Lissage des densités des voxels Cartes de profon-deurs Lissage des cartes Shape From Depth Lissage des densités des voxels Extraction de la surface Technique 2 : lissage anisotropique 3D (3/5) Résultats sur un cas simple : I(x,y,z) = exp(- || g(x,y,z) || ² / β ) g(x,y,z) = Var ( Ni ) Paramètres du lissage : taille et type du voisinage nombre d ’itérations coefficient β : détermine le seuil entre une zone détaillée et peu détaillée
Lissage des densités des voxels Cartes de profon-deurs Lissage des cartes Shape From Depth Lissage des densités des voxels Extraction de la surface Technique 2 : lissage anisotropique 3D (4/5) À gauche, l ’original Au milieu après un lissage isotropique A droite, après un lissage anisotropique
Lissage des densités des voxels Cartes de profon-deurs Lissage des cartes Shape From Depth Lissage des densités des voxels Extraction de la surface Technique 2 : lissage anisotropique 3D (5/5) À gauche, l ’original (légèrement lissé par la technique d ’oversampling) Au milieu, après un lissage isotropique A droite, après un lissage anisotropique
Conclusions et Perspectives Intérêt de combiner les deux techniques d ’anti-aliasing lissage par oversampling : les densités ne sont plus binaires lissage anisotropique : efficace, surtout lorsque les densités ne sont plus binaires Étude des techniques de triangulation : influence importante sur le résultat obtenu certaines sont adaptées aux zones courbes (ex : Marching Cube) d ’autres sont adaptées aux zones tranchantes avec beaucoup d ’arêtes ( ex : variantes du Marching Cube) Amélioration du lissage anisotropique 3D robustesse face aux données binaires certaines fissures et reliefs ne sont pas distingués du bruit
Merci pour votre attention Vidéo …