• Aucun résultat trouvé

À ce niveau, un dilemme se pose à nous : quel type d’image ou de forme de ciel devons-nous squelettiser ? Devons-nous nous baser sur des images discrètes ou alors sur des images vectorielles ? Pour tenter de répondre à cette question, nous allons ob- server les deux types d’images. Ensuite, nous expliquerons le choix que nous avons fait.

4.3.1 Image discrète

Les images discrètes ont la particularité d’être faciles et rapides à créer, puisqu’il suffit de décider pour chaque pixel, qui en est le composant de base, sa couleur. De plus, les images discrètes permettent de ne traiter que des entiers et des coordonnées entières (

n), qui sont plus faciles et plus rapides à traiter par les ordinateurs que les réels, sans perte de précision.

Dans le cadre de la projection sphérique, les projections discrètes permettent en quelque sorte de classer les informations en fonction de leur distance et de leur taille,

ou plus exactement en fonction de leur angle solide : les informations de petite taille ou lointaines sont floues, ambiguës et les informations de grande taille ou proches sont précises et distinctes. Cette hiérarchie n’apparaît pas avec les images vectorielles où toutes les informations ont la même importance. De plus, elle imite en quelque sorte notre façon de percevoir le monde. Avec la squelettisation, nous avons ainsi deux niveaux de classification hiérarchique des informations.

Les images discrètes possèdent aussi un certain nombre de défauts. Tout d’abord, la précision des images discrètes dépend entièrement de leur résolution, mais en général elle est moindre que celle des images vectorielles. Pour ce qui concerne la squelettisa- tion, il est difficile voire impossible de calculer le squelette exact d’une forme discrète [123]. La plupart des algorithmes ne fournissent qu’une approximation. Toutefois, il semble que cette assertion deviennent fausse actuellement. Il existe une définition discrète du squelette et des algorithmes efficaces, même pour la distance euclidienne [25, 100].

4.3.2 Image vectorielle

Les images vectorielles possèdent beaucoup d’avantages puisqu’elles sont décrites mathématiquement, qu’elles sont indépendantes de toute résolution et qu’elles utilisent des coordonnées réelles ( n). En réalité, la résolution est déterminée par la précision des calculs et de la représentation des nombres réels. En conséquence, les images vec- torielles sont apparemment plus précises que les images discrètes, au moins pour dé- terminer la frontière des éléments (par exemple, le contour d’une forme). Par contre, les images vectorielles possèdent aussi un ensemble d’inconvénients qui ne peuvent être négligées. Sur le plan pratique, la production d’images vectorielles nécessite des algorithmes sophistiqués et souvent des temps de traitement très long. Des cas parti- culiers apparaissent couramment (recouvrement de segments, de côtés de polygones, paramètres infinis, etc.) et sont à l’origine d’erreurs dans certains algorithmes. Enfin, les images vectorielles utilisent essentiellement des réels et, dans ce cas, tous les cal- culs sont dépendants de la précision de la machine.

L’algorithme de projection sphérique utilisé par Teller et que nous avons vu au §3.3.1 peut permettre de produire des « projections vectorielles ». En réalité, si nous analysons cet algorithme, il s’agit de fausses projections sphériques car les segments projetés sont obtenus par une approximation polygonale. Cet algorithme est suffisant si nous souhaitons obtenir une image discrète par la suite. Cependant, si nous partons de cette fausse projection pour transformer la forme du ciel et que nous en calculons le squelette celui-ci contiendra trop de branches par rapport à une véritable projection sphérique, comme nous pouvons le voir sur la figure 4.9. En effet, avec l’algorithme utilisé par Teller, un segment est projeté sous la forme d’une suite de petits segments connexes qui représente une approximation de la véritable projection sphérique du segment. Cependant, chaque jonction entre deux petits segments successifs crée une

nouvelle branche dans le squelette, qui n’apparaît pas dans le squelette de la véritable projection. Pour résoudre ce problème il existe deux solutions : soit nous effectuons un élagage qui consiste à retirer les branches en trop soit nous calculons la véritable projection sphérique de la forme du ciel. Le problème de l’élagage est de déterminer les branches qu’il faut éliminer. Ce problème n’est pas trivial et nécessite d’utiliser une heuristique, comme nous le verrons plus loin. Nous risquons à la fois de retirer des branches que nous aurions dû garder et de garder des branches que nous aurions dû retirer. Les problèmes liés à l’élagage n’apparaissent pas dans toutes méthodes de squelettisation dans les espaces discrets.

Projection Squelettisation

Figure 4.9 – Squelettisation d’un segment projeté par la projection sphérique utilisée par Teller. Le segment à gauche est projeté en un ensemble de petits segments qui approxime un arc (au centre). Lorsque nous calculons le squelette du segment projeté, chaque jonction entre deux petits segments crée une branche dans le squelette.

Il existe des algorithmes permettant de définir mathématiquement des projections sphériques. Cependant, le problème de cette méthode est que les courbes générées par la projection sont de degré élevé : en général, ce ne sont pas des cercles, sauf dans le cas de la projection stéréographique. Le calcul des paramètres de ces courbes repose sur de nombreuses fonctions trigonométriques qui sont lentes par rapport à des opérations de base comme l’addition ou la multiplication. Le résultat est une structure très lourde en mémoire, très longue à générer et dont la précision n’est pas toujours optimale en raison de nombreuses transformations nécessaires (sauf si on travaille en double pré- cision, mais alors les structures sont encore plus lourdes). Les projections sphériques vectorielles paraissent très séduisantes. Cependant, elles nécessitent beaucoup de res- sources dans le cadre des espaces urbains denses. De plus, le fait de travailler avec des images vectorielles n’élimine nullement le problème de la précision. Il le déplace au mieux en amont.

4.3.3 Squelettisation des formes de ciel : discret contre vectoriel

Nous avons précédemment vu qu’il existe deux manières de représenter des pro- jections sphériques : soit par des images discrètes soit par des images vectorielles. Les

images discrètes apportent une plus grande facilité de traitement, mais elles sont moins précises et sont susceptibles de posséder des perturbations. Quant aux images vecto- rielles, leurs qualités sont séduisantes, mais en réalité leur précision n’est qu’apparente, puisque celle-ci ne dépend en pratique que de la précision des machines en calcul avec des nombres à virgule flottante. Si bien que les images vectorielles semblent présenter autant d’intérêt que les images discrètes.

Dans notre projet, nous avons choisi d’utiliser des images discrètes pour plusieurs raisons. Tout d’abord, les images discrètes permettent de cacher un défaut de la mé- thode de projection sphérique utilisée par Teller : une image discrète obtenue par ce procédé donne l’illusion qu’elle a été produite par une véritable projection sphérique. Autrement dit, sur un support discret, une projection sphérique exacte et son approxi- mation fine sont identiques. Malgré les difficultés de la squelettisation dans les espaces discrets, il existe en ce moment une grande activité de recherche pour des méthodes de squelettisation de ce type. Actuellement, nous pouvons espérer obtenir des mé- thodes plus rapides et plus robustes que celle existant actuellement. Faire le choix des projections sphériques sur un support discret, c’est aussi permettre à notre méthode d’être appliquée à des photographies de parcours obtenues avec un objectif « fisheye » en situation réelle. Ceci permet de nous délaisser des étapes de reconstitution 3D des espaces urbains et de calcul des projections sphériques. Il resterait néanmoins à ex- traire le ciel d’une image fisheye et à étalonner l’objectif afin de se rapprocher d’une projection sphérique exacte. Pour continuer, le classement des informations selon leur distance lors de la discrétisation, nous a paru intéressant. La discrétisation génère du bruit lors de la transformation, mais dans le cas des projections sphériques, il s’agit d’un bruit « utile ». Enfin, l’utilisation d’images vectorielles nécessite de passer par des opérations booléennes comme l’union et la différence pour obtenir la forme du ciel en projection sphérique. Dans le cadre d’une scène urbaine, nous pouvons facile- ment nous retrouver avec des scènes de 10 000 faces, où chaque face est représentée par une vingtaine de points en moyenne. L’application des opérations booléennes peut rapidement devenir laborieux (sans parler des problèmes de précision lors du calcul de ces opérations). L’intérêt des images discrètes est que ces opérations se font par superposition de pixels et que la précision est fixée par l’image discrète elle-même.