jonathanhaehnel.fr - université de strasbourg · 2013. 9. 28. · implémentation en c++ avec...

25

Upload: others

Post on 07-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

Visualisation des lignes de crêtes apparentes demodèles 3D

HAEHNEL Jonathan

Université de Strasbourg

17 mai 2013

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 1/ 25

Page 2: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

Plan de la présentation

1 Contexte

2 Etude de l'existant

3 Implantation

4 Résultats

5 Conclusions et perspectives

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 2/ 25

Page 3: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

ProblématiqueObjectifs du TER

Problématique

Equipe IGG : plateforme de numérisation

Outil de recalage de photographies par rapport à un modèle

3D d'un objet physique

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 3/ 25

Page 4: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

ProblématiqueObjectifs du TER

Méthode actuelle

1 Estimation des paramètres intrinsèques et extrinsèques des

caméras à partir de points mis en correspondance entre photos

2 Extraction d'un nuage de points 3D à partir du jeu de photos

3 Recalage du nuage de points par rapport au modèle 3D

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 4/ 25

Page 5: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

ProblématiqueObjectifs du TER

Méthode expérimentale

But : mettre au point une méthode pour ra�ner ce recalage

et s'appuyant sur des contours extraits des photos et extraits

de vues du modèle 3D

Méthode à tester : les lignes de crêtes apparentes

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 5/ 25

Page 6: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

ProblématiqueObjectifs du TER

Objectifs du TER

1 Etudier les di�érents méthodes et les types de contours

existants

2 Implémenter un outil permettant d'extraire les lignes de crêtes

apparentes

3 Tester la qualité des contours obtenus

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 6/ 25

Page 7: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

SilhouettesContours suggestifsCrêtes et valléesApparents ridges

Les silhouettes [Tobias ISENBERG 03]

! Facile à implémenter

! Dépendance du point de vue

% Pas su�sant

Implantation : Espace image ou objet

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 7/ 25

Page 8: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

SilhouettesContours suggestifsCrêtes et valléesApparents ridges

Les contours suggestifs [Mario Costa SOUSA 03]

! Distinction des détails de la forme de l'objet

% Dans les régions convexes, des contours importants ne sont pasdétectés

% Absence de détection de la silhouette

Implantation : Espace objet

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 8/ 25

Page 9: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

SilhouettesContours suggestifsCrêtes et valléesApparents ridges

Crêtes et vallées [Kyung NA 05]

! Détection de la forme sous-jacente de l'objet

% Indépendance du point de vue

% Absence de détection de la silhouette

% Angles trop vifs

Implantation : Espace objet

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 9/ 25

Page 10: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

SilhouettesContours suggestifsCrêtes et valléesApparents ridges

Lignes de crêtes apparentes [Tilke JUDD 07]

! Robustesse

! Inclut la détection de la silhouette

! Pour accélérer les calculs, implémentation GPU possible

Implantation : Espace objet ou hybride

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 10/ 25

Page 11: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

Choix et pipelineEstimation des courbures principalesEstimation en fonction du point de vueDétection des lignes de crêtes apparentes

Choix d'implantation

Méthode originale de Judd : en espace objet et à l'aide du

CPU.

Méthode hybride de Eric Jardim et Luiz Henrique deFergueiredo :

Meilleures performancesUtilisation de la puissance GPU et des shadersDétection dans l'espace image et objet

Mes choix

Implémentation en C++ avec OpenGL 3.3

Détection des courbures principales avec CGAL

Respect de la chaine de traitements introduite par Eric Jardim

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 11/ 25

Page 12: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

Choix et pipelineEstimation des courbures principalesEstimation en fonction du point de vueDétection des lignes de crêtes apparentes

Chaine de traitements

Courbures et directions de courbures principales

Espace Objet (maillage)

Courbure et direction de courbure en fonction du point de vue

Vertex shader

Espaceobjet

1er rendu

FBO

Extraction des Apparents Ridges

Fragment shader

2emerendu

Espace image (texture)

2Dquad

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 12/ 25

Page 13: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

Choix et pipelineEstimation des courbures principalesEstimation en fonction du point de vueDétection des lignes de crêtes apparentes

Qu'est ce qu'une courbure principale ?

Choix d'un point p sur la surface S

Dé�nition d'un plan de coupe au point p tangent à la surface

Rotation du plan de coupe

Détection des directions e1, e2 et des valeurs k1, k2 de

courbures

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 13/ 25

Page 14: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

Choix et pipelineEstimation des courbures principalesEstimation en fonction du point de vueDétection des lignes de crêtes apparentes

Estimation des directions et valeurs de courbures (CGAL)

La librairie CGAL

Classe Polyhedron_3 pour manipulation des maillages

Outil permettant de charger les maillages au format .O�

Classe Monge_form pour estimation des courbures principales

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 14/ 25

Page 15: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

Choix et pipelineEstimation des courbures principalesEstimation en fonction du point de vueDétection des lignes de crêtes apparentes

Estimation des directions et valeurs de courbures (CGAL)

1 Chargement du maillage2 Estimation des courbures principales

Nuage de points pour chacun des sommetsAlgorithme de parcours en largeur d'un graphe

Résultat:● k1 : courbure minimum● k2 : courbure maximum● e1 : direction minimum● e2 : direction maximum● n : normale

Estimation avec CGAL:Monge_form

Sommet : racineListe<Sommet> : listeVoisins

Parcours du graphe en largeur

(nuage de points)

Pour

cha

cun

des

som

met

s, fa

ire :

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 15/ 25

Page 16: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

Choix et pipelineEstimation des courbures principalesEstimation en fonction du point de vueDétection des lignes de crêtes apparentes

Estimation en fonction du point de vue

1 Vertex shader : Estimation de la valeur q1 et de la direction t1de courbure en fonction du point de vue

2 Vertex shader : Codage de la courbure en couleur RGB

3 Fragment shader : Interpolation et enregistrement dans une

texture 2D

q1,t1 q, tx, ty q tx ty

q1t1

Paramètre variable τ : intensité des courbures extraites.

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 16/ 25

Page 17: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

Choix et pipelineEstimation des courbures principalesEstimation en fonction du point de vueDétection des lignes de crêtes apparentes

Détection des lignes de crêtes apparentes

1 Détection des lignes de crêtes apparentes

Travail dans l'espace image (second fragment shader)Filtre laplacien adaptatif en fonction de la direction t1Les pixels � t1 ont un poid plus élevé

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 17/ 25

Page 18: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

Choix et pipelineEstimation des courbures principalesEstimation en fonction du point de vueDétection des lignes de crêtes apparentes

Détection des lignes de crêtes apparentes

2 Seuillage = contours les plus marqués (plus contrastés)

3 Plaquage la texture résultante sur un quadrilatère 2D

Paramètre variable λ : intensité des contours détectées.

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 18/ 25

Page 19: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

Choix et pipelineEstimation des courbures principalesEstimation en fonction du point de vueDétection des lignes de crêtes apparentes

Démonstration

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 19/ 25

Page 20: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

In�uence des paramètresComparaisons des contours

Tests

Outils utilisés

GIMP

Scilab

Objectifs

Découvrir les e�ets des paramètres τ et λ

Savoir si les apparents ridges sont de qualité.

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 20/ 25

Page 21: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

In�uence des paramètresComparaisons des contours

In�uence des paramètres τ et λ

τ = -2.9 τ = -7.9τ = -5.9

λ =0

λ =2

λ =7

Contours détectés avec Sobel sur une photographie

= meilleure configurationpar comparaisonvisuelle

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 21/ 25

Page 22: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

In�uence des paramètresComparaisons des contours

In�uence des paramètres τ et λ

τ = -2.9 τ = -6.4

λ =7

λ =1

Contours détectés avec Sobel sur une photographie

= meilleure configurationpar comparaisonvisuelle

τ = -9.5

Il n'y a pas de con�guration (τ ,λ) par défaut. Variation en fonction

de chaque modèle 3D.

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 22/ 25

Page 23: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

In�uence des paramètresComparaisons des contours

Comparaison avec les photographies

Apparent ridges Contours 2D - Sobel Superposition Différences

Dra

gon

Mas

que

Boi

te

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 23/ 25

Page 24: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

Conclusions et perspectives

Résultats encourageants

Di�cile de valider la méthode, besoins d'autres tests

Tester cette méthode hybride dans l'outil de recalcage

Les perspectives d'évolution

Variation des paramètres τ et λ dynamiquement et

automatiquement => recalage plus �able

Pré-calcul des courbures principales et enregistrement dans un

�chier => optimisation des performances

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 24/ 25

Page 25: Jonathanhaehnel.fr - Université de Strasbourg · 2013. 9. 28. · Implémentation en C++ avec OpenGL 3.3 Détection des courbures principales avec CGAL Respect de la chaine de traitements

ContexteEtude de l'existant

ImplantationRésultats

Conclusions et perspectives

Fin de la présentation

Merci de votre attention ! Des questions ?

Haehnel Jonathan Visualisation des lignes de crêtes apparentes de modèles 3D 17 mai 2013 25/ 25