Projet Isa

previous up next contents
Précédent : Logiciels Remonter : Rapport activite 1997 Suivant : Actions industrielles



Résultats nouveaux

Réalité augmentée



Participants : Marie-Odile Berger , Edmond Boyer , Claude Inglebert , Vincent Lepetit , Sylvain Petitjean , Gilles Simon , Brigitte Wrobel-Dautcourt


Résumé : Notre principal résultat cette année est la conception d'un système très robuste de recalage temporel 3D/2D pour la réalité augmentée. Nous avons particulièrement mis l'accent sur la minimisation de l'interaction entre l'utilisateur et l'application.


Un système de recalage temporel autonome pour la réalité augmentée

Nous avons réalisé cette année un système de recalage temporel 3D/2D, capable de suivre dans une séquence d'images un objet 3D dont le modèle est connu, et ceci de manière parfaitement autonome. L'année dernière, nous avions déjà présenté une boucle de réalité augmentée, mais celle-ci utilisait des correspondances de points (primitives qui ne sont pas toujours disponibles), et n'était pas parfaitement autonome (l'utilisateur devait notamment intervenir lorsque de nouvelles primitives apparaissaient). L'objectif des travaux présentés ici est de pouvoir calculer le point de vue de façon robuste, à partir de correspondances 3D/2D de primitives quelconques (points, droites et courbes 3D non nécessairement définies paramétriquement), et de pouvoir mettre à jour automatiquement les nouvelles primitives apparaissant dans la séquence.

Après une phase d'initialisation, qui comporte la détermination des paramètres internes de la caméra (par un calibrage classique), et le calcul du point de vue dans la première image (à partir de la correspondance 3D/2D de quatre points désignés par l'utilisateur), le système détecte automatiquement les primitives 2D qui seront suivies dans les images suivantes, puis parcourt une boucle autonome comprenant le suivi des primitives, le calcul du point de vue et la mise à jour des primitives 2D.

Le suivi des primitives est effectué en utilisant un algorithme que nous avons précédemment développé (une estimation grossière du champ des vitesses permet d'obtenir une prédiction de la localisation du contour, puis les contours actifs sont utilisés pour détecter le contour correspondant à partir de cette prédiction). Cette méthode est fiable, rapide et capable de prendre en compte des mouvements suffisamment grands. Cependant, le suivi peut quelquefois échouer si le contour actif est attiré par des maxima de gradient locaux, ou si l'étape de prédiction échoue (en raison de l'instabilité du calcul du flot). Ainsi, parmi l'ensemble des contours suivis, un petit nombre d'entre eux peuvent être mal détectés ou complètement erronés. Il est donc primordial de pouvoir calculer le point de vue de façon très robuste.

Nous utilisons pour cela un algorithme de type Iterative Closest Point . Notre méthode se distingue des travaux précédents par l'utilisation d'estimateurs robustes (M-Estimateurs) dans un processus à deux niveaux : un niveau local, qui calcule un résidu robuste pour chaque primitive, et un niveau global qui minimise une fonction robuste de ces résidus. L'intérêt de cet algorithme est double : d'une part il permet de calculer le point de vue de façon robuste en n'utilisant que les parties des primitives 2D qui correspondent au modèle 3D, et d'autre part il permet de détecter les primitives erronées.

Enfin, les correspondants 2D des nouvelles primitives 3D apparaissant dans la séquence sont automatiquement déterminés en calculant le point de vue à partir des primitives suivies et des contours 2D qui sont suffisamment proches de la projection du contour 3D. Les contours qui ne sont pas éliminés sont alors fusionnés pour former la primitive 2D recherchée.

Nous travaillons actuellement sur la décomposition automatique du modèle en primitives 3D pertinentes, celles-ci étant pour le moment désignées par l'utilisateur dans une étape préliminaire. Nos résultats actuels sur l'application des ponts de Paris sont disponibles sous la forme d'une séquence MPEG accessible sur Internet.

Gestion des occlusions

Comme nous l'avons déjà souligné, la gestion correcte des occultations entre scène réelle et objets virtuels est un élément très important pour le réalisme des scènes composées. Malheureusement, cette gestion est le plus souvent manuelle dans les systèmes existants. Nous avons donc commencé cette année à développer des méthodes permettant de gérer les occlusions en minimisant les interactions avec l'utilisateur.

Nous considérons donc deux images successives de la séquence, le mouvement entre ces deux images ayant été calculé préalablement (cf. § [*]). Notre objectif est de calculer le masque d'occultation correspondant aux objets virtuels, c'est-à-dire la partie visible de ces objets, une fois qu'ils ont été insérés dans la scène.

Comme le modèle de la scène n'est pas connu, la première méthode qui vient à l'esprit est de reconstruire la scène au voisinage des objets à incruster puis de comparer cette carte de profondeur avec l'objet virtuel. Cependant, la précision des reconstructions de type stéréo n'est pas suffisante pour obtenir des masques d'occultation corrects. Nous avons donc développé une méthode ne nécessitant pas de reconstruction, qui s'appuie fortement sur les contours détectés dans l'image.

L'idée de base est d'étiqueter les points de contours devant ou derrière , en fonction de leur position par rapport à l'objet à incruster. À l'aide d'un outil de suivi de courbes, il est facile de suivre les contours entre deux images et de déterminer les points homologues $(m_1,m_2)$ en utilisant le mouvement calculé entre deux images. Il est ensuite relativement simple de comparer la profondeur du point 3D de la scène correspondant à $(m_1,m_2)$ avec la profondeur de l'objet virtuel se projetant en $m_1$. En effet, la projection dans l'image 2 d'un point de profondeur $Z$, dont la projection dans l'image 1 est $m_1$, est une homographie de la profondeur $Z$ dont les coefficients dépendent des positions relatives de la caméra entre les images. La profondeur de l'objet virtuel étant parfaitement connue, il est alors facile d'inférer la position du point correspondant de la scène.

On peut ainsi étiqueter les points de contours. Il reste ensuite à inférer le masque d'occlusion. Comme plusieurs objets réels peuvent venir occulter l'objet virtuel, on forme un graphe dont les noeuds sont les contours étiquetés devant . Deux noeuds sont reliés si la distance entre les contours correspondants est inférieure à un certain seuil. La recherche des cliques maximales permet alors de regrouper les contours appartenant à un même objet occultant.

Il est bien clair que des erreurs d'étiquetage peuvent se produire, dues en particulier à des imprécisions sur la mise en correspondance. Par ailleurs, il se peut que certains contours fondamentaux du masque d'occlusion n'aient pas été détectés (si l'échelle d'observation est trop grosse). Nous avons donc choisi une méthode de régularisation permettant de tenir compte de ces problèmes, afin de détecter la forme la plus régulière possible s'appuyant sur les points de contours étiquetés : en utilisant les contours actifs sur le champ de force créé par ces contours, nous obtenons un résultat satisfaisant. Les premiers résultats sont prometteurs (Fig. [*]) et sont décrits dans [15].


   Figure: Un exemple de composition d'image.

\begin{figure}\centerline{\includegraphics [width=8cm]{cartoon.ps}} \end{figure}


Simulation et visualisation

 

Participants : Laurent Alonso , Xavier Cavin , François Cuny , Nicolas Holzschuch , Slimane Merzouk , Jean-Claude Paul , Sylvain Petitjean , Christophe Winkler


Résumé : Cette année a été une étape de reconstruction des bases de l'activité synthèse dans le projet. Ainsi, nous avons conçu d'une part une nouvelle approche théorique du calcul de l'équation de radiance. Cette approche, numérique, exploite une technique de résolution hiérarchique et est fondée sur une méthode de décomposition de domaines qui permet de réduire les calculs géométriques dans chaque sous-domaine à leur plus simple expression. D'autre part, nous avons développé une plate-forme logicielle et un ensemble d'algorithmes robustes qui nous permettent d'expérimenter certaines méthodes, mais également de générer des images de grande qualité dans un contexte applicatif en vraie grandeur. Enfin, nous avons travaillé dans le domaine de la visualisation, pour développer des applications de réalité virtuelle en architecture et en géophysique.


Calcul de l'équation de radiance à partir d'une méthode de décomposition de domaine

Nous avons proposé tout d'abord un nouvel algorithme plus simple pour construire un arbre de partitionnement binaire (BSP). Cet algorithme opère dans n'importe quelle dimension et sa construction BSP est de taille linéaire. Nous ajoutons les informations de voisinage entre les cellules de l'arbre. Puis, nous construisons les liens entre les cellules feuilles de l'arbre BSP. Ces liens sont construits en utilisant une simple traversée de l'arbre BSP.

La formulation de l'équation de radiance et le schéma itératif que nous avons utilisé pour la résoudre en utilisant le partitionnement géométrique sont les suivants :

Considérons la formulation en terme de transport d'énergie entre trois points de la radiance incidente sur les surfaces $A_i, A_j, A_k$. Nous supposons que la fonction de radiance $L(y \leftarrow x)$ arrivant en $y$ du point $x$ a été projetée dans une base de fonctions $ \left\{ N_m (y \leftarrow x) \right\}$ de l'espace des distributions de radiance, de façon à avoir :

\begin{displaymath}L(y \leftarrow x) = \sum_{m} l_m N_m (y \leftarrow x) .\end{displaymath}

En effectuant le même traitement pour la fonction de radiance $ L(z\leftarrow y)$ sur la surface $A_j$, on obtient alors la formulation discrète :

\begin{displaymath}l_n = l_n^e + \sum_{m} T_{mn} l_m .\end{displaymath}

$T_{mn} $ est le coefficient de transport.

Nous avons utilisé comme fonctions de base plusieurs classes d'ondelettes. Notons que pour former des fonctions de base 4D pour les besoins ci-dessus, nous utilisons la base d'ondelettes non standard construite à partir du produit tensoriel des fonctions de base unidimensionnelles. En outre, les coefficients des fonctions de base ne sont pas associés à un élément individuel, comme c'est le cas pour la radiosité, mais plutôt à une paire de surfaces. Ainsi les liens de visibilité sont entre paires d'éléments de surfaces.

L'algorithme consiste alors à diviser récursivement chaque élément là où le noyau de la radiance n'est pas suffisamment régulier, et ensuite à utiliser un schéma de résolution pour propager l'énergie et résoudre le transport discret. Nous avons implanté plusieurs types de règles de quadrature pour le calcul des coefficients de transport. Les quadratures de Gauss-Legendre ont prouvé leur efficacité pour notre calcul. Si nous utilisons les ondelettes de Haar, qui ont un support fini, les intégrales 6D de $T_{mn}$ peuvent s'évaluer avec une règle produit de quadratures, car le domaine d'intégration est un hypercube 6D. Cependant les quadratures sont aussi connues pour avoir des problèmes de précision. Comme décrit ci-dessus, le nombre total de points de quadrature est $N^4$ ou $N^6$, suivant la situation considérée. L'étape suivante consiste à résoudre le système pour calculer la fonction de radiance. Tous les liens de visibilité de la hiérarchie sont triés dans une << queue de priorité >> dépendant de leur énergie. À chaque étape, le plus énergétique des liens est choisi et transmet l'énergie aux éléments avec lesquels il interagit. Dans notre algorithme, chaque élément envoie l'énergie à un nombre constant d'éléments. Cette résolution progressive permet de prendre en compte rapidement les liens les plus importants.

Nous n'avons pas encore expérimenté complètement notre méthode, qui permet de calculer la radiance, mais nous espérons qu'elle permettra une avancée significative. Elle est d'un niveau de complexité raisonnable. En outre, elle est particulièrement adaptée à une mise en oeuvre parallèle. Les expérimentations que nous avons menées jusqu'ici sur la parallélisation de l'algorithme de radiosité, qui dans sa version hiérarchique est de nature irrégulière et dynamique, montrent en effet le rôle que peuvent jouer des stratégies comme les méthodes de décomposition de domaines, dans la mesure où elles favorisent l'exploitation de la localité des données. Nous pensons également que la méthode est susceptible de faciliter l'introduction de variations temporelles dans les simulations.

Architecture logicielle et algorithmes pour la résolution de l'équation de radiance

Nous avons développé une architecture permettant d'implanter les algorithmes et les structures de données nécessaires pour résoudre l'équation de radiance [9]. Les objectifs que nous avons voulu donner à cette architecture sont :

La satisfaction de ces objectifs a orienté les principes de conception de notre architecture.

Plusieurs algorithmes sont actuellement implantés, qui concourent à la résolution de l'équation de radiance de la manière suivante :

Une configuration particulière de ces différents algorithmes permet actuellement de calculer une solution de radiosité. Cette configuration utilise les propriétés hiérarchiques des ondelettes, et plusieurs variantes de cet algorithme général sont proposées.

En outre, des solutions intégrant des fonctions physiques plus complexes (general brdf), des problématiques de contrôle de l'erreur différentes (discontinuity meshing, importance error-driven), ou des techniques de calcul par raffinement plus élaborées (clustering, ddm) peuvent être intégrées à notre architecture, en réutilisant une grande partie du code, et en conservant une bonne stabilité et de bonnes performances.

Modélisation à partir de plans

 

Participants : Christian Ah-Soon , Philippe Dosch , Gérald Masini , Karl Tombre


Résumé : Nous nous intéressons actuellement à la reconstruction d'ensembles architecturaux à partir de l'analyse de plans de type avant-projet. Cette année, nos efforts ont principalement porté sur la mise au point d'une méthode de reconnaissance de symboles architecturaux efficace et aussi générique que possible, ainsi que sur le développement d'un logiciel permettant à l'utilisateur de piloter le processus d'analyse en interagissant si nécessaire à toutes les étapes.


Pour simuler des environnements architecturaux et urbains complexes, et pouvoir y naviguer de manière virtuelle, il est nécessaire de les modéliser. Quand les environnements sont d'une grande complexité, les modèles qu'il est actuellement possible d'obtenir par les techniques de vision sont insuffisants, à la fois en précision et en densité. En nous appuyant sur les compétences de l'équipe en analyse de documents graphiques [12,20,25], nous nous intéressons à l'analyse des plans disponibles pour ces environnements, qui permet d'obtenir des modèles plus robustes et plus complets. Les informations fournies par ces plans peuvent être utilisées seules ou être fusionnées avec d'autres données [16].

C'est dans ce contexte que nous travaillons en particulier sur l'analyse de plans d'architecture pour la modélisation d'un édifice. L'idée est de numériser et d'analyser des plans de type avant-projet (permis de construire), pour aboutir à une modélisation en termes d'entités architecturales, permettant en particulier la << navigation >> virtuelle dans l'édifice. Dans un premier temps, nous abordons le problème de l'analyse 2D du plan de chaque étage pris individuellement. Un premier ensemble de méthodes a été mis au point, permettant de séparer les << couches >> géométriques (traits forts, hachurage, traits fins, annotations) et de reconnaître les entités de base telles que les murs, les cloisons intérieures, et les principales menuiseries (fenêtres et portes), par simple analyse structurelle. Une seconde approche a ensuite été développée, privilégiant la recherche des pièces, puis l'analyse de leurs dispositions relatives, et enfin la reconnaissance des éléments de séparation et des menuiseries, ce qui permet une description de l'édifice en termes d'espaces architecturaux [13,22]. Les figures [*] et [*] montrent un résultat typique de cette analyse spatiale.


     Figure: Élévation 3D obtenue après analyse spatiale du plan de la Fig. [*]. Figure: Un plan numérisé.

\begin{figure}\hfil\begin{minipage}[b]{0.55\linewidth} \centering \include... ...ring \includegraphics [width=2in] {Sc3d.eps}\end {minipage}\hfil\end{figure}


Un point faible de ces deux approches restait la reconnaissance des menuiseries, qui peuvent être très variées. Nous nous sommes donc concentrés cette année sur la mise au point d'un système générique de reconnaissance de symboles architecturaux. Les modèles des différents symboles possibles sont représentés sous forme d'un ensemble d'entrées composées principalement d'une liste de contraintes portant sur les primitives de l'image (segments et arcs) censées constituer les symboles. Ces contraintes sont de deux types : contraintes de connexion, qui décrivent les relations de connexion entre les primitives, et contraintes simples, qui décrivent tous les autres types de relations, en utilisant des égalités, des inégalités, les caractéristiques des primitives, des opérations arithmétiques et des prédicats simples. Pour réduire le coût algorithmique du système, l'ensemble des modèles est regroupé dans un réseau unique de contraintes, à travers lequel on propage les hypothèses de mise en correspondance, qui sont progressivement agglomérées en hypothèses de plus haut niveau, jusqu'à la reconnaissance finale [14].

En complément de ce travail, nous avons démarré fin 1996 un contrat avec le CNET (cf. § [*]), qui porte également sur la reconstruction 3D d'intérieurs de bâtiments à partir des plans d'architecture, mais avec une approche plus interactive. L'application sous-jacente est l'aide au positionnement d'antennes pour la propagation d'ondes hertziennes (téléphonie mobile en intérieur...). Tout en exploitant dans toute la mesure du possible les résultats déjà obtenus en analyse automatique, il s'agit dans ce contexte de prévoir la présence de << l'homme dans la boucle >> à chaque étape du processus, donc de proposer une méthode semi-automatisée de reconstruction. Le maximum de tâches est bien entendu réalisé par le système, mais avec une interface homme-machine adaptée et une intégration complète de méthode d'édition et d'interaction à chaque étape de la reconstruction.

Le logiciel MICA est ainsi en cours de développement. Il s'appuie sur la plate-forme Isadora (cf. § [*]) et offre la possibilité d'apporter une aide à la décision entre chaque phase de l'analyse, soit par l'activation d'un traitement spécifique à effectuer en fonction de la nature des données traitées, soit par le choix manuel des paramètres du traitement, soit encore par la correction interactive des données intermédiaires (données vectorielles, symboles, texte...) [24]. Les modules de traitement de bas-niveau et d'analyse globale sont d'ores et déjà implantés, ainsi que les interactions élémentaires sur les données vectorisées. L'utilisateur peut ainsi visualiser et manipuler de manière conviviale les différents résultats obtenus. Outre l'implantation du module de reconnaissance de symboles décrit précédemment, nous développons actuellement, au sein de l'interface, un module de << tuilage >> permettant de découper de grosses images, difficiles à manipuler sous cette forme, de traiter séparément les différentes << tuiles >> et de fusionner ensuite les résultats obtenus. La figure [*] est une copie d'écran du logiciel MICA en mode édition vectorielle.


   Figure: Le logiciel MICA en mode édition sur la vectorisation du plan de la Fig. [*].

\begin{figure} \centering \includegraphics [width=2.5in] {mica.eps}\end{figure}




previous up next contents Précédent : Logiciels Remonter : Rapport activite 1997 Suivant : Actions industrielles