Calibration automatique d’écran auto-stéréoscopique

Encadrants : 

Occurrences : 

2016, 2017

Nombre d'étudiants minimum: 

4

Nombre d'étudiants maximum: 

6

Nombre d'instances : 

1

La visualisation en relief repose sur la perception de l’effet de parallaxe de la vision binoculaire, en permettant à chaque œil de voir une image différente de l’autre. La majeure partie des solutions commerciales de distribution de contenu 3D (YouTube, BlueRay 3D) proposent des images ou vidéos sous forme de couple stéréoscopique (vue droite + gauche), supposant un utilisateur regardant la vidéo à la même position que la caméra utilisée pour l’enregistrement (i.e., en face de l’écran, ligne des yeux horizontale). Le récent engouement de l’industrie pour la diffusion de vidéo 360 est problématique pour ces techniques : comme l’utilisateur est libre de choisir son point de vue et de tourner la tête à son gré, il faudrait prévoir autant de couples stéréoscopiques que d’orientations possibles de la ligne des yeux, ce qui n’est pas envisageable.

Nous vous proposons d’étudier une possible solution à ce problème : au lieu d’utiliser un couple stéréoscopique droite/gauche, nous utiliserons une image couleur et une carte de profondeur de cette image, donnant l’information sur la distance des pixels de l’image à la caméra. Cette technique permet de générer à moindre coup une image correspondant à un léger décalage de la caméra.

Le but de ce projet est la mise en place d’algorithme sur FPGA et GPU permettant la génération de ces « images tournées » à partir d’image couleur et de carte de profondeur. Les algorithmes seront alors utilisés pour afficher des vidéos 360 avec cartes de profondeur via un casque de réalité virtuelle.

Les travaux se composeront des étapes suivantes :

  • Définition de l’algorithme de génération de vue à partir d’un couple image/profondeur et d’une orientation donnée de caméra
    • Mise en place de l’algorithme sur FPGA
    • Mise en place de l’algorithme sur GPU (OpenGL)
  • Construction de carte de profondeurs à partir de vidéos stéréo 360. Définition d’un format de compression simplifiant l’utilisation de ces images par le FPGA et le GPU. Mise en place du décodeur.
  • Mise en place du système de visualisation VR sous plateforme linux (arm et x64)

La programmation se fera sous en C/C++ pour la majeure partie sous environnement linux. Les élèves partiront de réalisation PAF des années précédentes (proto FPGA et shader OpenGL pour le GPU) et pourront exploiter de nombreuses bibliothèques d'outils existantes (compression, vision, synthèse 3D) afin d'arriver rapidement à un prototype fonctionnel, puis proposeront des solutions pour améliorer la chaine (qualité, latence, robustesse).