• Aucun résultat trouvé

Parallélépipède rectangle

Dans le document SLAM temporel à contraintes multiples (Page 137-141)

Contraintes de structure

9.2 Gestion des objets 3D

9.3.3 Parallélépipède rectangle

-(9.3)

La dimension de la sphère, utilisée pour définir σΠ, est définie par le diamètre.

9.3.3 Parallélépipède rectangle

Les objets de type « parallélépipède rectangle » appliquent une contrainte planaire qui est fonction de l’association aux faces. Le parallélépipède rectangle est paramétré par 9 ddl. : Π = {R, t, l, p, h} avec R l’orientation, t la position du centre (intersection des diagonales entre sommets opposés) et l, p, h les paramètres de longueur, profondeur et hauteur. La position t est initialisée à la moyenne des points deP et les dimensions sont estimées à partir des coordonnées minimales et maximales des points deP telles que :

inf ={minx(P), miny(P), minz(P)} sup ={maxx(P), maxy(P), maxz(P)} {l, p, h} = inf/2 − sup/2

L’étape d’association d’un point 3D à la bonne face du parallélépipède est réalisée de la manière suivante :

1. recherche du sommet noté s étant le plus proche des 8 sommets du parallélépipède, 2. sélection des 3 faces du parallélépipède qui ont le sommet s en commun,

3. le point P, dont la dernière observation par la caméra est le point d’intérêt p, est associé à la face f si p est dans l’enveloppe convexe de f.

Une fois la face sélectionnée, la distance d(Π, Pc) entre le point 3D PΠ exprimée dans le repère de l’objet correspond plus ou moins à une des composantes de PΠ. Le critère minimisé ici correspond à la somme des distances entre les points 3D de P et les faces (préalablement sélectionnées) du parallélépipède : E(P, Π) = P i=0  dΠ(RT(Pi− t)) σΠ  (9.4) 9.3.4 Cylindre

Les objets de type « Cylindre » appliquent des contraintes planaires pour les points associés aux bases (disques situés aux extrémités du cylindre) et cylindrique pour les points du contour. Un cylindre est paramétré avec 7 ddl. : Π = {R, t, rayon, hauteur} avec R l’orientation, t la position de la base supérieure. Le rayon est pris sur la base, et la hauteur est la distance entre les deux bases. On ne considère que 2 ddl. pour la rotation. La distance entre un point PΠ, exprimé dans le repère du cylindre, et la surface du cylindre est obtenue en calculant la distance minimale aux bases et au contour :

d(P, Π) = min(|P  − rayon| , |Py| , |Py− hauteur|); (9.5) Le critère minimisé correspond à la somme des distances entre les points 3D deP et le cylindre :

E(P, Π) = P i=0  d(RT(Pi− t), Π) σΠ  (9.6)

(b) Objets « complexes » utilisés pour la photo-modélisation.

Figure 9.3 – Objets utilisés pour des applications de Réalité Augmentée.

9.4 Modèle 3D photo modélisé

Afin de gérer des objets de formes plus complexes, on a eu recours à la photo-modélisation. Pour cela, on effectue préalablement une série de photos de l’objet à modéliser, puis le logicielCMPMVSest utilisé pour générer un modèle d’objet. La figure9.3présente quelques résultats de photo-modélisation utilisés dans les expérimentations. Seuls les sommets des modèles générés sont utilisés (l’information de texture n’est pas considérée). De plus, le modèle est reconstruit à un facteur d’échelle près. C’est pourquoi, on considère le facteur d’échelle de l’objet comme un ddl. à estimer. On compte alors 7 ddl., 6 pour la pose et 1 pour l’échelle. Pour calculer la distance d’un point 3D à l’objet, on exprime le point Pw dans le repère de l’objet :

E(P, Π) = P i=0  d(RT(Pi− t)/s, Π) σΠ  (9.7)

avec R et t l’orientation et la position de l’objet, s correspond au facteur d’échelle. Puis, la fonction d(.) consiste à chercher le point de la surface de l’objet qui est le plus proche du point Pc (Pwdans le repère objet). Le modèle étant potentiellement composé d’un grand nombre de sommets (plusieurs milliers dans les expérimentations), on utilise le kd-tree de la bibliothèque FLANN [132] : un arbre de recherche est généré une unique fois à partir des sommets de l’objet dans son repère local. Le fait d’exprimer le point 3D Pw dans le repère de l’objet permet de ne pas générer à nouveau l’arbre de recherche avec FLANN à chaque fois que les paramètres de l’objet sont mis à jour pendant le processus de reconstruction. Ayant à disposition des maillages relativement denses, on utilise l’arbre de recherche pour obtenir les 3 points du modèle les plus proches de Pc. Le critère à minimiser correspond à la distance d entre le barycentre de ces 3 points et Pc. Cette approche est un compromis entre temps de calcul et précision. D’autres stratégies sont envisageables. Une approche judicieuse serait d’ajuster dynamiquement la densité du maillage en fonction de la distance à l’objet comme le fait Chevaldonné et al. [133].

9.5 Conclusion

Les contraintes présentées dans ce chapitre permettent à la fois d’estimer la pose des objets 3D et de contraindre le processus de cartographie. Des expérimentations appliquées à la Réalité Augmentée dans la section 11.1 mettent en évidence l’efficacité de l’approche avec des contraintes de structure relativement simples. Une problématique intéressante serait d’évaluer l’approche avec des objets de grandes dimensions, comme un bâtiment ou une ville. Dans le cadre d’applications de visites touris-tiques guidées, il serait même envisageable d’évoluer à l’intérieur de l’objet utilisé comme contrainte. Par exemple, en se déplaçant dans un château préalablement photo-modélisé afin d’observer en Réalité Augmentée les pièces dans leurs états originaux.

Certaines problématiques n’ont pas été abordées, comme par exemple l’initialisation automatique des objets. La difficulté est de détecter correctement le type et la position de l’objet mais également de gérer les mauvaises initialisations. En effet, une erreur d’initialisation d’objets 3D (initialisation du mauvais type d’objet par exemple) appliquera une mauvaise contrainte qui dégradera la reconstruction 3D et dont la conséquence peut être l’échec de la localisation. Une solution envisageable serait d’ajuster la pondération σΠassociée à l’objet Π en fonction de la confiance attribuée à la détection et de la faire évoluer en fonction de l’erreur E(P, Π).

Dans le document SLAM temporel à contraintes multiples (Page 137-141)