• Aucun résultat trouvé

Modélisation surfacique

La modélisation hybride ne fournit qu’une approximation de l’enveloppe visuelle.

Pour obtenir l’enveloppe visuelle exacte, il nous faut utiliser une approche différente et

retrouver les arêtes et sommets manquants, c’est-à-dire les arêtes d’intersection et les

points triples.

Pour cela nous nous appuyons sur la méthode développée par Franco et al.

[Franco 03]. Celle-ci consiste à rechercher les arêtes d’intersection à partir des

in-formations préalablement calculées sur les segments de vue. Nous ne détaillons pas

complètement dans cette thèse l’algorithme mais donnons les éléments essentiels pour

sa compréhension. Pour plus de détails, nous renvoyons le lecteur intéressé à la thèse

de Jean-Sébastien Franco [Franco 05]. L’algorithme repose principalement sur le fait

que chaque sommet de l’enveloppe visuelle polyédrique est trivalent dans les situations

réelles. En effet ces sommets correspondent à l’intersection de facettes triangulaires

infinies. Or l’intersection de4 plans dans l’espace est numériquement improbable (cas

dégénéré qui disparait lors de l’ajout d’un bruit infime). Les sommets de l’enveloppe

visuelle sont donc l’intersection de trois facettes triangulaires infinies et sont donc

trivalents. Un point très important qui en découle est le fait que ces trois triangles – et

donc les trois vecteurs de contours associées – identifient de façon unique un sommet.

La connaissance de ces trois facettes permet aussi de déterminer les directions des

trois arêtes du sommet associé (directions données par les intersections entre deux

de ces facettes). Pour chaque sommet, nous cherchons les extrémités des arêtes non

résolues partant de ce sommet. Pour cela nous calculons l’intersection de la demi-droite

associée à cette arête – d’origine ce sommet et de direction celle de l’arête – avec la

surface de l’enveloppe visuelle. Cette recherche se fait en pratique dans les images2D

par intersection avec les contours. L’extrémité peut soit être un point déjà connu, soit

correspondre à un nouveau point triple. Connaissant les trois facettes générant cette

extrémité (deux issues de l’arête et la troisième issue de l’intersection avec un vecteur de

contour), il est très facile d’identifier ce point avec exactitude. En particulier cela permet

de ne pas avoir recours à des heuristiques liées à la proximité entre l’extrémité trouvée et

les points déjà visitées. Ce parcours du maillage de l’enveloppe visuelle polyèdrique est

effectué jusqu’à ce qu’il n’y ait plus d’arêtes non résolues.

Cet algorithme présente de très nombreux avantages dont une grande robustesse aux

cas dégénérés et une grande rapidité par rapport à d’autres méthodes surfaciques. De plus

4 Modélisations surfaciques distribuées

Figure 4.4 Découpage de l’espace pour la parallélisation du calclul des arêtes d’intersection

manquantes. Chaque processeur traite les arêtes de sa zone. Les arêtes

franchissant une frontière entre deux zones, baptisées arêtes pendantes (en gras

sur la figure), sont identifiées et fusionnées ultérieurement.

la solution retrouvée est la solution exacte par rapport aux silhouettes vectorisées et non

plus une approximation. En pratique cette étape nécessite environ 100ms sur un Xeon

3GHz pour modéliser une personne filmée depuis8caméras avec environ120sommets

de contours par silhouette. Pour améliorer ces performances nous allons chercher à

distribuer ces calculs sur un ensemble depprocesseurs. Remarquons au passage que cette

étape est aussi statiquement calculable et qu’une parallélisation par flux est envisageable.

Cependant il est toujours plus intéressant d’effectuer une parallélisation par trame, cette

dernière améliorant simultanément le débit et la latence.

La parallélisation de cet algorithme n’est pas aussi simple que celle du calcul des

segments de vue où chaque tâche était indépendante. La difficulté provient du fait que

cet algorithme nécessite à chaque visite d’un sommet la mise à jour de la structure du

maillage en cours créant ainsi des dépendances.

Une première solution pour effectuer cela est de supposer que nous disposons

d’un ordinateur à mémoire partagée, c’est à dire que les processeurs partagent une

zone mémoire dans laquelle peut être stockée la structure du maillage. Ainsi chaque

processeur peut accéder à cette structure. Il est nécessaire alors de protéger cette dernière

contre les accès concurrents : si deux processeurs veulent accéder au même sommet

de l’enveloppe visuelle, il est nécessaire de donner la priorité à l’un avant d’autoriser

le traitement du second. Sans ce mécanisme, l’exécution de l’algorithme risque d’être

incorrect. Ces protections s’avèrent très coûteuses d’autant que la localité des calculs

est difficilement garantie lors du parcours du maillage. Un autre inconvénient de cette

stratégie est la nécessité d’obtenir une mémoire partagée. Ceci est relativement aisé

Modélisation surfacique 4.4

jusqu’à4processeurs mais devient assez coûteux au-delà voire très cher pour plus de16

processeurs.

Pour s’affranchir de cette structure centralisée il est nécessaire d’imposer plus de

localité au parcours du maillage. Ainsi nous proposons de partitionner l’espace en p

zones, chaque processeur étant responsable d’une zone qui lui est attribuée. Chaque

processeur effectue le parcours au sein de sa zone. Dès qu’il détecte une arête dont

l’extrémité sort de cette zone, il l’enregistre en tant qu’arête pendante (voir figure4.4).

Une fois chaque zone parcourue, l’ensemble des points triples, arêtes d’intersection et

arêtes pendantes sont regroupés sur un processeur central responsable de la fusion de ces

données. Tout d’abord l’ensemble des points triples est ajouté comme nouveaux sommets

dans une structure globale. Puis chaque arête d’intersection est ajoutée dans cette

structure. Notons que ceci est possible grâce au fait que chaque sommet de l’enveloppe

visuelle peut être identifié grâce aux trois facettes triangulaires infinies qui le définissent.

Il est donc important lors du calcul des arêtes d’intersection de mémoriser pour chaque

extrémité ces informations.

Figure 4.5 Point triple parallèlement inatteignable. Le traitement de ces points doit être

réalisé séquentiellement après fusion des données parallèles.

Pour les arêtes pendantes la situation est un peu plus complexe. Si les deux

extrémi-tés sont présentes dans la structure globale, alors le traitement est identique à une arête

d’intersection en prenant soin de ne pas l’ajouter deux fois. En revanche il existe des

situations où une des extrémités n’est pas présente dans la structure globale. Ce cas

cor-respond à un point triple appartenant à une zonej mais dont le parcours interne de cette

zone n’a pas permis de l’identifier (voir figure 4.5). Nous appellerons un tel point un

point parallèlement inatteignable. Dans ce cas, le point manquant est créé et l’arête peut

être ajoutée comme précédemment. Il reste enfin à vérifier pour tous ces points triples

pa-rallélement inatteignables que leurs trois arêtes aient été correctement retrouvées. Dans le

4 Modélisations surfaciques distribuées

cas contraire, un parcours séquentiel est effectué pour retrouver le maillage final complet.

Pour équilibrer la charge de travail entre les processeurs, nous attribuons à chacun une

zone comportant le même nombre d’extrémités de segments de vue.

Le maillage calculé, la dernière étape consiste à identifier chaque facette de

l’enve-loppe visuelle. Chaque facette est un sous-ensemble d’une facette triangulaire infinie

as-sociée à un vecteur de contours. Francoet al.proposent de rechercher ces sous-ensembles

pour chaque facette triangulaire infinie en parcourant les sommets qui lui sont liés. En

utilisant l’orientation préservée du maillage il est possible à partir d’un sommet de suivre

les arêtes délimitant la facette. La parallélisation de cette étape s’effectue en partitionnant

l’ensemble des vecteurs de contours, le traitement de chaque facette triangulaire infinie

étant indépendante. Là encore ce découpage est réalisé de telle sorte que chaque

proces-seur ait le même nombre de facettes à traiter pour équilibrer la charge entre eux.