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.
Dans le document
Système de vision temps-réel pour les interactions
(Page 54-57)