Géométrie numérique : du réel au virtuel

Transcription

Géométrie numérique : du réel au virtuel
Géométrie numérique :
du réel au virtuel
Franck Hétroy-Wheeler
Enseignant-chercheur Grenoble INP – Ensimag
En délégation à l'Inria (équipe Morpheo)
Point commun ?
Point commun ?
(c) Forest Research
(c) Inria/Univ. Grenoble
(c) UPC
(Barcelone)
(c) Grenoble INP - Ensimag
(c) UJF/CHU Grenoble
Géométrie numérique
Maths + informatique
Quoi ?
γη μετρον :
Fragment des Elements d'Euclide (source : Wikipedia)
Numérique : 001011...
γη ?
Et aussi : bâtiments, avions/trains/trams/voitures, usines, objets mécaniques, ...
μετρον ?

Dimensions

Mouvement (fluide, ...)

Autres : couleur, quantités pour certains paramètres, ...
Pourquoi ?

Impossible

Trop long

Trop compliqué

Trop dangereux
sur le modèle (objet, personnage, organe) réel
SOMMAIRE
1. Introduction : quoi et pourquoi ?
2. Comment ?
3. Exemples
SOMMAIRE
1. Introduction : quoi et pourquoi ?
2. Comment ?
3. Exemples
Processus général
Modèle
réel
Processus général
Modèle Numérisation Modèle virtuel
réel
de bas niveau
Processus général
Modèle Numérisation Modèle virtuelTransformation Modèle de
réel
de bas niveau
haut niveau
Informations
additionnelles
(dépendant du domaine
et/ou de l'application)
Processus général
Utilisation/
Modèle Numérisation Modèle virtuelTransformation Modèle de interprétation
réel
de bas niveau
Informations
additionnelles
haut niveau
(dépendant du domaine
et/ou de l'application)
Processus général
Modèle Numérisation Modèle virtuel
réel
de bas niveau
Numérisation : scanners
Objectif : récupérer un ensemble de points sur la
surface du modèle
Principe : envoi d'un rayon laser et retour
→ Balayage
Types :

Temps de vol

Décalage de phase

Triangulation

Lumière structurée

Etc.
Scanner laser (petit modèle)
NextEngine
→
Un exemple :

http://www.youtube.com/watch?v=3oDp33mwPkE
Scanner laser (grand modèle)
SALCA, (c) Salford University
Numérisation : imagerie
Objectif : récupérer une image 2D ou 3D (un volume)
permettant de distinguer le modèle de son environnement
Principes : caméras, capteurs, rayons, ...
Exemples :

Systèmes multi-caméras (images ou vidéos)

Caméra + capteurs (profondeur, ...)

Imagerie par résonance magnétique

Tomographie (rayons X)

Echographie (ultrasons)

Etc.

Systèmes multi-caméras
GrImage, (c) Inria
http://www.youtube.com/watch?v=VDTJmKE0EyA
I.R.M.
(source : Wikipedia)
Caméra + capteurs
Kinect, (c) Microsoft
Processus général
Modèle Numérisation Modèle virtuel
réel
de bas niveau
Modèle bas niveau : nuage de points
Un point = un ensemble de coordonnées (x,y,z), dans un référentiel connu
(cf. numérisation)
Parfois d'autres informations :

Couleur

Vecteur normal à la surface
Modèle bas niveau : maillage non régulier
Nuage de points + informations de voisinage (sur la surface)
Formellement : triplet (V, E, F)

V = sommets (les points)

E = arêtes (segments entre points voisins)

F = faces polygonales/polyédrales
Modèle bas niveau : image
Image (2D ou 3D) = grille régulière, mais pas de distinction explicite
modèle ↔ environnement
Autres informations dépendent des capteurs :

Couleur

Profondeur

Etc.
Temps de vol (source : Wikipedia)
Problèmes

Bruit/imprécision (occultations, points erronés, …)

Redondance ou données inutiles

Modèles non manipulables/analysables facilement

Par un utilisateur non expert
Données incomplètes

Besoin d'autres informations ou modèles à
fusionner

→ Données discrètes, non continues !
Processus général
Modèle Numérisation Modèle virtuelTransformation Modèle de
réel
de bas niveau
haut niveau
Informations
additionnelles
(dépendant du domaine
et/ou de l'application)
Transformations
Nombreuses !

Filtrage/lissage

Remaillage →

Simplification ou approximation

Par un modèle paramétrique (continu)

Segmentation (séparation en sous-ensembles)

Si plusieurs modèles : mise en correspondance

Etc.
(c) Zichun Zhong et al.,
Univ. of Texas, Univ. of Hong-Kong, Inria, NVIDIA
SOMMAIRE
1. Introduction : quoi et pourquoi ?
2. Comment ?
3. Exemples
Exemple introductif (niveau ~ 1ère S)
Objectif : définir une courbe continue dans le plan interpolant ou
approchant un ensemble de points.
Des idées ?
Remarque
On peut trier ces points (par exemple par abscisse croissante)
Comment avoir une courbe plus lisse ?
Remarque (bis)
Si on suppose points d'abscisses différentes (sinon on peut
perturber), on cherche une fonction !
Comment avoir une courbe plus lisse ?
Exemple d'application (pour vos élèves)
x = temps, points = positions d'un personnage de jeu vidéo
On cherche une trajectoire lisse pour le personnage, avec des
contraintes (positions aux moments clés).
Solution
Décomposer en sous-fonctions (f continue par morceaux) et assurer
continuité des tangentes !
Entre xi et xi+1, f(x) = fi(x), avec :

fi(xi) = yi

fi(xi+1) = yi+1

fi'(xi) = ti

fi'(xi+1) = ti+1
Comment calculer fi ?
Question
Peut-on utiliser un polynôme de degré 2 ?
∀i, fi(x) = ai + bi x + ci x2
4 contraintes :

fi(xi) = yi

fi(xi+1) = yi+1

fi'(xi) = ti

fi'(xi+1) = ti+1
Une autre idée ?
Réponse
Il faut un polynôme de degré 3 !
∀i, fi(x) = ai + bi x + ci x2 + di x3
Supposons xi = 0 et xi+1 = 1.

fi(0) = yi

fi(1) = yi+1

fi'(0) = ti

fi'(1) = ti+1
Que valent ai, bi, ci et di ?
Réponse (bis)
On obtient :

fi(0) = ai = yi

fi(1) = ai + bi + ci + di = yi+1

fi'(0) = bi = ti

fi'(1) = bi + 2 ci + 3 di = ti+1
Et on en déduit :
fi(x) = yi + ti x + (-3yi + 3yi+1 – 2ti – ti+1) x2 + (2yi -2yi+1 + ti + ti+1) x3
On appelle la courbe donnée par f(x) = fi(x) entre xi et xi+1 une
spline cubique d'Hermite.
Charles Hermite
Mathématicien français (1822-1901)
Source : Wikipedia
Remarque
fi peut aussi s'écrire :
fi(x) = yi (2x3 – 3x2 +1) + yi+1 (-2x3 + 3x2) + ti (x3 – 2x2 + x) + ti+1 (x3 – x2)
Source : Wikipedia
Question
Comment choisir les tangentes ?

∀i fi(xi) = yi et fi(xi+1) = yi+1 → 2n contraintes si n fonctions fi

∀i fi'(xi+1) = fi+1'(xi+1) → n-1 contraintes

Or 4n inconnues (les ai, bi, ci et di)

→ il manque n-1 contraintes !
Solutions possibles
Solution 1 : continuité des dérivées secondes
Solution 2 : fixer les tangentes, par exemple parallèles à yi-1yi+1 :
∀ i, fi'(xi) = k (yi+1 – yi-1)
∀ i, fi'(xi+1) = k (yi+2 – yi)
→ on parle de spline cardinale
Le résultat (spline d'Hermite)
Qu'a-t-on fait ?
On a retrouvé une approximation continue de notre modèle, à partir
des données virtuelles discrètes.
Problème : les points sont bruités, et la courbe a trop d'oscillations
Solution
Trouver une courbe lisse qui approche les points, au lieu de les
interpoler.
Pierre Bézier
Ingénieur français (1910-1999)
Images Pierre Bézier
Source : Renault et Christophe Rabut
A lire sur http://www-gmm.insa-toulouse.fr/~rabut/bezier/
Source : patronsdefrance.fr
Carrière chez Renault sur la conception de voitures à partir de
systèmes à commandes numériques
Courbes de Bézier
f(x) = ∑ fi(x) yi avec ∀i, fi(x) = Bin(x) si n+1 points
Bin = polynôme de Bernstein : Bin(x) = Cin xi (1-x)n-i
Exemple : pour 4 points :
∀i, f(x) = B03(x) y0 + B13(x) y1 + B23(x) y2 + B33(x) y3
= (1-x)3 y0 + 3(1-x)2x y1 + 3(1-x)x2 y2 + x3 y3
Comment calculer ?
On cherche où est situé f(x), pour un x donné
Bin polynômes de degré n → instabilité numérique, temps de calcul
… mais les Bin ont de bonnes propriétés
Idée :

Calculer les points yi1 := x yi + (1-x) yi+1

Recommencer : yi2 := x yi1 + (1-x) yi+11

… n fois : y0n = f(x)
Preuve : remonter de y0n aux yi
Niveau 1ère S !
Paul de Faget de Casteljau
Ingénieur français (né en 1930)
Source : H.P. Bieri et H. Prautzsch
Carrière chez Citroën, en parallèle (et sans collaborer) avec Bézier
Algorithme (1959) antérieur aux travaux (plus formels) de Bézier !
Pour aller plus loin

Autres splines : B-splines, β-splines, N.U.R.B.S., ...

Autres fonctions de base fi

Différentes propriétés

Surfaces splines : produit tensoriel

Très utilisées en conception assistée par ordinateur
Logiciel Catia, (c) Dassault Systèmes
Wiggly splines, (c) Pixar
Transformations
Nombreuses !

Filtrage/lissage

Remaillage →

Simplification ou approximation

Par un modèle paramétrique (continu)

Segmentation (séparation en sous-ensembles)

Si plusieurs modèles : mise en correspondance

Etc.
Source : Zichun Zhong et al.,
Univ. of Texas, Univ. of Hong-Kong, Inria, NVIDIA
Problème concret
Objectif : mesures sur l'arbre/la plante (volume de bois, surface foliaire, …)
Temps nécessaire : 1 homme.semaine par arbre !
Numérisation : → 1 homme.jour
Une première étape
Objectif intermédiaire :
distinguer les feuilles des branches
– Semi-automatiquement
– Peu de paramètres
Collaborateurs :

Eric Casella (Forest Research)

Dobrina Boltcheva (Univ. Nancy)

Rémy Cumont (stagiaire Ensimag)
Problèmes

Nuage de points non organisé

Densité non uniforme (occultations, …)

Beaucoup de points aberrants
→ On ne peut utiliser que :

Coordonnées (x,y,z) des points

Connaissances a priori, ou expertise de l'utilisateur
Objectif

Etiquetage de chaque point du nuage :




Branche/tige n° i
Pétiole n° j
Feuille n° k
1 couleur par étiquette →
Méthode
3 étapes :
1. Calcul d'un voisinage approché pour chaque point
2. “Réduction de dimension”

Projection des données dans un nouvel espace

Espace défini par les “directions intrinsèques” principales du modèle
3. Algorithme de segmentation des données réduites

Informations de voisinage requises
Paramètres
3 principaux :

Angle a minimum entre 2 voisins d'un point

Vus depuis ce point

Estimation d du nombre de directions intrinsèques de la plante/de l'arbre

Nombre e d'entités élémentaires (i.e. d'étiquettes) désiré
En pratique :

Robuste au choix de a et d

Calculer avec un petit e, puis relancer sur chaque sous-ensemble
1. Calcul d'un voisinage
Pour chaque point :



Les k plus proches ?
→ difficile de fixer k
Tous ceux dans un rayon ε autour du point ?
→ difficile de fixer ε
Notre idée :


Regarder successivement les k plus
proches
Si angle avec un plus proche déjà
sélectionné < a, éliminer
2. Réduction de dimension

Besoin de maths évoluées !
La décomposition spectrale de l'opérateur laplacien appliqué aux coordonnées des
points donne les “directions intrinsèques” principales de la forme étudiée





∆ f = div grad f
Existe aussi en version discrète :
 ∆ f(x) ~ f(x) – (1/n) ∑
f(vi)
vi voisin de x
S'écrit sous forme de matrice L
Vecteurs propres et valeurs propres :

Lv=λv
Source : Bruno Lévy, Inria
Pour en savoir plus :
B. Lévy, in Shape Modeling International 2006
En pratique

Besoin de connaître les voisins d'un point pour calculer L !

Paramètre d = nombre de directions intrinsèques

On projette les points dans l'espace défini par les d premiers vecteurs propres V
– Nouvelles coordonnées (d par point) = lignes de V

Les points deviennent “alignés”
→ Robuste au bruit
d=3
3. Algorithme de segmentation

Et maintenant un peu d'informatique !

Objectif : découper les données selon les “branches”


Idée : calculer un “squelette” et attacher chaque point
à la branche du squelette la plus proche
Outil informatique : algorithme de Dijkstra (1959)
Edsger Wybe Dijkstra
Informaticien néerlandais (1930-2002)
Source : Wikipedia
Célèbre pour son algorithme de calcul de plus courts chemins …
mais aussi la programmation structurée (Algol) et l'autostabilisation
GOTO
Algorithme de Dijkstra

Dans un graphe (V,E)

Plus courts chemins d'un point (nœud source) vers tous les autres

Principe : propagation de front

Outil principal : file de priorité Q de nœuds accessibles, mais non atteints
Algorithme de Dijkstra


Initialisation : Atteints := { source }, Q := { voisins de source, avec leurs distances }
Boucle : Tant que Q n'est pas vide faire
– p := élément de Q le plus proche de source
– Enlever p de Q et l'ajouter à Atteints
– Ajouter à Q les voisins p' de p qui n'y sont pas, et mettre à jour les distances
de ceux qui y sont : d(source, p') = d(source,p) + d(p,p')
Résultat : distances de source à tous les points atteignables avec les plus courts
chemins

Dans notre contexte

Idée : un plus court chemin sera une “branche” du squelette
0. Trouver une “extrémité” du graphe : point le plus distant
d'un point quelconque
1. Chemin extrémité-point le plus distant = branche principale
2. Recommencer (e-1)/2 fois en mettant à 0 les distances
entre points des branches calculées
- Chemin de la branche au point le plus lointain
= nouvelle branche + coupe une branche en deux
- e = nombre de branches (ou régions) désirées
3. Recommencer une dernière fois pour associer à chaque
point la branche la plus proche
Méthode
3 étapes :
1. Calcul d'un voisinage approché pour chaque point
2. “Réduction de dimension”

Projection des données dans un nouvel espace

Espace défini par les “directions intrinsèques” principales du modèle
3. Algorithme de segmentation des données réduites

Informations de voisinage requises
Quelques résultats
Marronnier commun
Chêne rouge d'Amérique
Châtaignier commun
SOMMAIRE
1. Introduction : quoi et pourquoi ?
2. Comment ?
3. Exemples
1. Interpolation/approximation spline
2. Segmentation de plantes
3. Modélisation 4D
Processus général
Utilisation/
Modèle Numérisation Modèle virtuelTransformation Modèle de interprétation
réel
de bas niveau
haut niveau
Informations
additionnelles
(dépendant du domaine
et/ou de l'application)
http://morpheo.inrialpes.fr/
http://www.4dviews.com/ (vidéo)
Quelques applications possibles (1)

Visualisation, mesure, … interaction !

Cinéma/télévision/jeux vidéos


Art
http://react-project.eu/
http://www.youtube.com/watch?v=h9ruNyQpYi4



http://www.infra-visionair.eu/
http://alpes.france3.fr/2013/11/13/premiere-mondialele-clone-d-une-danseuse-en-direct-356773.html
Quelques applications possibles (2)
Sport



http://www.creamove.fr/demonstrateurs/
http://www.youtube.com/watch?v=gcgUazxEB_w
Médecine/kinésithérapie/biologie



http://morpheo.inrialpes.fr/people/reveret/ethomice
http://www.inria.fr/centre/nancy/innovation/rii/demos/plat
eforme-de-simulation
Numérisation : infrastructure

Un exemple :
http://kinovis.inrialpes.fr/
Numérisation
1. Calibrer les caméras
2. A chaque pas de temps :
2.1. Pour chaque image,
déterminer la silhouette du modèle
2.2. Fusionner ces silhouettes :
enveloppe visuelle
→ géométrie !
Limitations actuelles
1. Silhouettes : a priori sur le fond
→ Difficile en extérieur
→ Espace restreint
2. Volume ?
Cohérence temporelle
Reconstruction indépendante à chaque pas de temps
→ Pas de cohérence temporelle
Mise en correspondance

Utilisation de la photométrie
Suivi de modèle


Besoin d'un modèle référence et/ou d'un modèle de déformation
Méthodes probabilistes, apprentissage (vidéo)
Vers un modèle de haut-niveau (1)

Cohérence temporelle

Segmentation en parties quasi-rigides (vidéo)
1. Mise en correspondance modèles
2. Calcul transformations rigides des points
3. Regroupement spectral (cf. plantes)
Vers un modèle de haut-niveau (2)

Calcul de descripteurs spatio-temporels
SOMMAIRE
1. Introduction : quoi et pourquoi ?
2. Comment ?
3. Exemples
1. Interpolation/approximation spline
2. Segmentation de plantes
3. Modélisation 4D
Conclusion
Géométrie numérique : passer à une représentation virtuelle
pour mesurer (au sens large) des modèles


Problème : la numérisation fait perdre la structure/le sens
On les retrouve à l'aide d'informations a priori dépendant du
contexte mais aussi grâce aux maths et à l'informatique

– Maths : géométrie (par exemple pour retrouver la forme d'un objet),
mais aussi algèbre linéaire, probabilités, ...
– Informatique : algorithmique, programmation, mais aussi hardware,
calcul distribué, I.H.M., ...
Pour en savoir plus

Le webzine de vulgarisation scientifique de l'Inria


Projets étudiants Ensimag


https://interstices.info/ (mot-clé géométrie)
http://ensiwiki.ensimag.fr/index.php/Galerie_de_projets_ARV
Maths et programmation pour les lycéens

http://mobinet.imag.fr/
Merci
pour votre attention
[email protected]
[email protected]
morpheo.inrialpes.fr/people/hetroy

Documents pareils