Flou réaliste en post-production cinématographique

De Ensiwiki
Aller à : navigation, rechercher

Cadre du projet

  • Encadrant : Frédéric Devernay.
  • Nombre d'étudiants : 2 à 4.
  • Prérequis : programmation C++, algorithmes d'infographie, traitement d'images.


Contexte

De nombreux effets de rendu réalistes de scènes 3D nécessitent des temps de calcul très importants, dont les algorithme de rendu de flou. Le flou est principalement du soit au bougé de la caméra ou de la scène (motion blur), soit à la profondeur de champ (focus blur). Pour réaliser de longues séquences d'images réalistes à partir de scènes 3D, il est donc préférable de faire le rendu des images sans flou (image couleur nette, image de profondeur, image de vitesses), puis de recréer ce flou en post-production à partir de ces données 2D. Il est même possible d'ajouter du flou à des images réelles, en utilisant des algorithmes d'estimation de la profondeur et du mouvement pour créer les images de profondeur et de vitesse.


Travail Demandé

Le travail se focalisera sur le Focus Blur et le Motion Blur.

Pour le Focus Blur, la méthode consiste à partitionner la profondeur en n intervalles, puis à extraire n images couleur+alpha contenant les pixels dont la profondeur est dans l'intrevalle n, et alpha=1 pour ces pixels, alpha=0 en dehors. On applique ensuite un flou à chacune de ces images avec une convolution par un masque dont la taille dépend de n. On compose ensuite l'image finale en accumulant les images de la profondeur la plus éloignée à la plus proche, avec l'opérateur classique de compositing appelé "over" [1].

Pour le Motion Blur, la première technique proposée consiste à dessiner en chaque point de l'image une ligne dont l'opacité et la longueur dépendent de la vitesse en ce point. Pour éviter les effets de crénelage (aliasing), on utilisera le rendu de segment de Xiaolin Wu. Afin de normaliser le résultat, on utilise une image d'accumulation.

Une deuxième technique consiste à construire un maillage à partir des pixels de l'image, et à déformer ce maillage (on parle de morphing) à partir du champ des vitesses. En prenant la moyenne de n images calculées de cette manière entre t et t + dt (dt est le temps d'ouverture), on recrée alors le flou de bougé. Lorsque l'image de profondeur est disponible, cette méthde devrait donner des résultats physiquement plus réalistes que la précédente, puisqu'elle tient compte des occultations.

Les différentes techniques seront comparées sur des images de synthèse, avec profondeurs et vitesses calculées à partir de la scène 3D, et sur des images réelles.

Bibliographie

[1] Porter, Thomas; Tom Duff (1984). "Compositing Digital Images". Computer Graphics 18 (3): 253–259. doi:10.1145/800031.808606 PDF

Détails techniques

L'implémentation sera faite en C++ (sous Linux, Windows ou OSX), sous forme de plugins OpenFX pour le logiciel libre de compositing vidéo Natron. Il sera possible d'utiliser les biblipothèques de traitement d'images CImg ou OpenCV.