Texturage omnidirectionnel d'un avatar à partir de plusieurs flux vidéo

Texturage omnidirectionnel d'un avatar à partir de plusieurs flux vidéo

PDF du sujet

Contexte

Dans le contexte des applications de réalité augmentée, le but du projet Cyber-II est de simuler, en temps réel, la présence d'une personne (un présentateur de télévision, un professeur, etc.) dans un environnement virtuel. Cette simulation consiste principalement à mixer image réelle et virtuelle et à founir des interfaces permettant l'interaction entre la personne filmée, l'environnement virtuel, et l'observateur (par exemple un téléspectateur ou un élève).
Les principaux impératifs techniques sont une visualisation à la fois hautement réaliste (éclairage cohérent, ombrage, etc.) et fonctionnant en temps réel.
Le système se compose des principaux points suivants :

Le projet CYBER-II est soutenu sous la forme d'une ACI «Masse de données» par le Ministère de la Recherche.

Sujet

Dans le cadre du projet Cyber-II, nous cherchons à "récupérer" les flux vidéo (Figure 1) provenant des caméras ayant servi à la reconstruction 3D de l'animateur ([1], [2]) pour les "plaquer" sur cet avatar (Figure 2).

Figure 1 : flux vidéo provenant de 4 caméras servant à la reconstruction

Figure 2 : à gauche : reconstruction géométrique de l'avatar,
à droite : un simple plaquage de texture.

Problèmes de recherche

Les problèmes à résoudre sont de différents ordres :

  1. Assurer que les textures issues des flux video se joignent correctement
  2. Résoudre le problème du choix des caméras qui serviront à "habiller" l'avatar

1. Jonction des textures

Pour habiller ou texturer l'ensemble de l'avatar nous allons utilser les différents flux vidéos à disposition. Deux polygones partageant une même arête peuvent donc être texturés avec des images provenant de caméras différentes. Il se pose alors le problème de la joinction entre les images utilisées. Comment faire pour qu'elles ne se voient pas ? (Figure 3)


Figure 3 : à gauche : les triangle formant l'avatar,
à droite un "mauvais" plaquage de texture.

Pour résoudre ce problème, il va certainement falloir utiliser des texture provenant de plusieurs caméras et effectuer un fondu en fonction de l'importance de chacune d'entre elles. Il sera necéssaire de mesurer objectivement l'erreur commise. Nous pourrons par exemple nous baser sur la "netteté" de la texture finale pour guider notre choix.

2. Choix des caméras

Le choix de la caméra servant au texturage peut sembler évident : il suffit d'utiliser préférenciellement la caméra la plus proche de la perpendiculaire au polygone que l'on veut texturer. Malheureusement cette approche naïve ne prend pas en comte la visbilité et le fait q'un objet puisse se trouver entre la caméra et le polygone à texturer, c'est le cas du damier dans la Figure 4.

Figure 4 : à gauche : l'avatar du point de vue de la caméra la mieux adaptée
pour texturer le visage, à droite l'image résultant de ce mauvais plaquage.

Pour résoudre ce problème, il va falloir prendre en compte la visibilite triangle-caméra, plusieurs approches existent. Il faudra les analyser dans le cadre d'objets dont nous ne maîtrisons pas forcement la taille parfois très petite et la forme parfois très allongée des polygones (Figure 5).


Figure 5 : polygones souvent dégénérés de l'avatar (soit trop petits, soit trop allongés)

Pour cela, nous pourrons lancer des rayons vers les caméras à partir d'echantillons placés aléatoirement sur le polygone traité. Nous pourons aussi utiliser les fonctionalités OpenGL pour optimiser le processus. La cohérence temporelle pourra aussi être prise en compte.

Encadrement

Encadrant : Jean-Marc Hasenfratz - Tél : 04.76.61.54.53
Lieu : INRIA Rhône-Alpes - site de Montbonnot
Cours : /

Bibliographie

Liens utiles

Publications

Site web