Échantillonneurs basse discrépance anti-aliassés pour du rendu réaliste avec estimateurs de Monte Carlo.

Thèse en informatique graphique soutenue publiquement par
Helene Perrier
Le 7 mars 2018

Celine Loscos ProfesseureUniversité de ReimsRapporteure
Nicolas HolzschuchDirecteur de RechercheINRIA GrenobleRapporteur
Christiane LemieuxProfesseure AssociéeUniversité de WaterlooExaminatrice
Mathias PaulinProfesseurUniversité de ToulouseExaminateur
David CoeurjollyDirecteur de RechercheCNRS LyonCo-Directeur de thèse
Victor OstromoukhovProfesseurUniversité de LyonDirecteur de thèse

Sommaire

  • Contexte
  • Evaluer un échantillonneur
  • État de l'art
  • Bruit Bleu Basse Discrépance 2D
  • Bruit Bleu Basse Discrépance n-D
  • Conclusions et Perspectives

Sommaire

  • Contexte
  • Evaluer un échantillonneur
  • État de l'art
  • Optimiser un ensemble de points
  • Bruit Bleu Basse Discrépance 2-D
  • Bruit Bleu Basse Discrépance n-D
  • Conclusions et Perspectives

De la synthèse d'image ?

Une image est composée de pixels, et le problème de la synthèse d'image est de trouver quelle couleur affecter à chaque pixel pour représenter une scene donnée.

Synthèse d'image offline

Modéliser la scene virtuellement (géometrie, matériaux, lumières ...) et simuler les intéractions de la lumière entre cette scene et un plan image.

Synthèse d'image offline

On mesure pour chaque pixel l'intensité lumineuse qui le traverse. Cette intensité $\mathcal{I}$ en un point $\vx$ est définie comme l'intégration de toutes les intensités lumineuses arrivant depuis toutesles directions autour de $\vx$. Ceci ce traduit par l'équation suivante [Kaj76]: $$\mathcal{I}(\vx) = L_e(\vx) + \int_\mathcal{H} \rho(\vp, \vx) \mathcal{I}(\vp) d\vp$$

Résoudre cette équation est excessivement compliqué (intégrales recursives ...)

Malgré l'existence de solutions analytiques, elles sont souvent trop complexes pour être évaluées, ou posent des contraintes très fortes sur la scene initiale.

Approximation numérique

On simplifie ici le problème en supposant que l'intensité nous donne directement la couleur, en omettant les problématiques de longueur d'ondes et de tone-mapping.

Estimateurs de Monte Carlo

Les estimateurs de Monte Carlo sont une solution pour approximer numériquement la valeur de l'intégrale d'une fonction $f$ sur un domaine $D$. Ces estimateurs tirent des échantillons $x_i$ aléatoires dans $D$ et évaluent $f$ pour chacun d'entre eux. La moyenne de toutes ces valeurs leur donne une approximation de la valeur de l'intégrale. $$\int_D f(x)dx \approx \sum_{i=0}^{n} f(x_i)$$

Rendu lancer de rayons

C'est ce que l'on fait en pratique lors d'un rendu par méthodes dites de lancer de rayons.

L'équation initiale devient: $$\mathcal{I}_n(\vx) = L_e(\vx) + \sum_{i=0}^{n} \rho(\vp_i, \vx) \mathcal{I}(\vp_i)$$ $$\mathcal{I}_n(\vx) \approx \mathcal{I}$$

Erreur, Biais, Variance

On peut mesurer l'erreur commise par Monte Carlo comme la différence entre la valeur réelle de l'intégrale $\mathcal{I}$ et la valeur approximée $\mathcal{I}_n$: $$ \Delta = | \mathcal{I}_n - \mathcal{I}| $$

En théorie, plus on tire d'échantillons plus $\Delta$ diminue, sauf dans le cas où on utilise des échantilloneurs biaisés. $$ \text{Bias} := | \mathcal{I} - \langle \mathcal{I}_n \rangle | $$

On peut également mesurer, dans le cas d'échantilloneurs aléatoire, la variance dans l'approximation $$ \text{Variance} := \langle (\mathcal{I}_n)^2 \rangle - \langle (\mathcal{I}_n) \rangle^2 $$ On note que dans le cas d'échantilloneurs non biaisés, cette variance est équivalente à l'erreur. $$ MSE(\mathcal{I}_n) := \text{Bias}^2 + \text{Variance} $$

Vitesse de convergence

Pour des échantillons purement aléatoires, on a l'erreur suivante qui diminue avec le nombre d'échantillons $$ \Delta := O\left(\frac{\sigma_f}{n}\right) $$

Vitesse de convergence

On peut accélérer cette convergence en utilisant un échantillonneur déterministe dit basse discrépance $$ \Delta := O\left(\frac{ \sqrt[k]{\log(n)^d}}{n}\right) $$

Vitesse de convergence

Ces vitesses ne sont que des bornes théoriques. De plus, même à vitesse identiques, deux échantillonneurs peuvent présenter des erreurs différentes.

Mesurer l'erreur se fait à la fois avec des bornes théoriques et des résultats expérimentaux.

Problématique

En rendu, on souhaite avoir des échantillonneurs:
  • Minimisant l'erreur commise
  • Rapides
  • Ne générant pas d'artefacts visuels structurés
  • Générant des échantillons en haute dimension
  • Séquentiels
  • Adaptatifs

Sommaire

  • Contexte
  • Evaluer un échantillonneur
  • État de l'art
  • Optimiser un ensemble de points
  • Bruit Bleu Basse Discrépance 2-D
  • Bruit Bleu Basse Discrépance n-D
  • Conclusions et Perspectives

Discrépance

Mesure l'uniformité d'une distribution de points $P_n$. Plus la discrépance est basse, plus la distribution est proche de la distribution uniforme théorique.

Star
discrepancy
Extreme discrepancy Isotropic discrepancy

$$ \mathcal{D}_*(P_n) := \sup_{\vv \in [0, 1)^d} | v_1 \cdots v_d - \alpha( P_n, \vv ) | $$

Minimiser la discrépance minimise l'erreur maximale commise:
$$ \Delta \leq D_*(P_n)V(f) $$ Koksma Hlawka []

Discrépance

Un échantillonneur est dit basse discrépance si sa discrépance décroit en $O(\frac{\log(n)^d}{n})$.

Meilleure discrépance théorique.

Caracteristiques Frequentielles

Mesure la façon dont les points sont répartis dans l'espace, un pic fréquentiel identifie une structure à l'intérieure de la distribution.

$P_n$ Fourier Radial

Caracteristiques Frequentielles

Les pics fréquentiels provoquent des d'artefacts visuels.

Le test du Zoneplate consiste à reconstruire une fonction en l'échantillonnant. La fonction choisie présente une très grande gamme de fréquences, ce qui permet de mesurer la quantité d'aliassage et de bruit en fonction de la fréquence.

$sin(x^2 + y^2)$

Caracteristiques Frequentielles

L'énergie dans les basses fréquences augmente la variance: $$ \text{Variance}(\mathcal{I_n}) = \frac{\mu(\Omega)^2}{n} \int_\Omega \langle \mathcal{P}_{P_n}(\omega) \rangle \mathcal{P}_f(\omega) $$ Pilleboue []

Caracteristiques Frequentielles

L'énergie dans les basses fréquences augmente la variance: $$ \text{Variance}(\mathcal{I_n}) = \frac{\mu(\Omega)^2}{n} \int_\Omega \langle \mathcal{P}_{P_n}(\omega) \rangle \mathcal{P}_f(\omega) $$ Pilleboue []

Augmenter le nombre d'échantillons réduit la variance

Sommaire

  • Contexte
  • Evaluer un échantillonneur
  • État de l'art
  • Optimiser un ensemble de points
  • Bruit Bleu Basse Discrépance 2-D
  • Bruit Bleu Basse Discrépance n-D
  • Conclusions et Perspectives

Quatres familles





Analyse Fréquentielle





Analyse Fréquentielle



Présence de basses fréquences qui augmentent la variance.


Pas de basses fréquences mais pics spéctraux qui provoquent des artefacts lors du rendu.


L'énergie n'est pas 0 dans les basses fréquences, ce qui augmente la variance.


Aucune basses fréquences, aucun pic spectral.

Analyse Fréquentielle









Discrépance









Discrépance


  • Minimisant l'erreur commise
  • Rapides
  • Ne générant pas d'artefacts visuels structurés
  • Générant des échantillons en haute dimension
  • Séquentiels
  • Adaptatifs

  • Minimisant l'erreur commise
  • Rapides
  • Ne générant pas d'artefacts visuels structurés
  • Générant des échantillons en haute dimension
  • Séquentiels
  • Adaptatifs

  • Minimisant l'erreur commise
  • Rapides
  • Ne générant pas d'artefacts visuels structurés
  • Générant des échantillons en haute dimension
  • Séquentiels
  • Adaptatifs

  • Minimisant l'erreur commise
  • Rapides
  • Ne générant pas d'artefacts visuels structurés
  • Générant des échantillons en haute dimension
  • Séquentiels
  • Adaptatifs

Sommaire

  • Contexte
  • Évaluer un échantillonneur
  • État de l'art
  • Optimiser un ensemble de points
  • Bruit Bleu Basse Discrépance 2-D
  • Bruit Bleu Basse Discrépance n-D
  • Conclusions et Perspectives

Algorithmes de brouillage

On s'est pour l'instant concentré sur les échantillonneurs éxistants. Mais il existe aussi toute une gamme de méthodes pour retravailler un ensemble de points donné.

Cranley PattersonDigital XOR

Owen's scrambling







Sommaire

  • Contexte
  • Évaluer un échantillonneur
  • État de l'art
  • Optimiser un ensemble de points
  • Bruit Bleu Basse Discrépance 2-D
  • Bruit Bleu Basse Discrépance n-D
  • Conclusions et Perspectives

Bruit Bleu Basse Discrépance 2-D

Préliminaires

On défini un ensemble de points stratifié comme

$$ \lbrace (X + u_{XY}, Y + v_{XY}) \rbrace, X,Y \in \mathbb{N}, u,v \in [0, 1[ $$
où $(X,Y)$ identifie une strate, et où $(u_{XY}, v_{XY})$ représente la position du point dans la strate $(X, Y)$.

Notre méthode

On part d'un motif stratifié présentant le spectre désiré et de l'ensemble de points basse discrépance défini comme $$ \lbrace (X + \phi(Y)), Y+\phi(X)) \rbrace. $$
Les deux ensembles de points sont de taille $t \times t$.

Un ensemble de points 2D défini comme $\lbrace (X + \mathcal{S}_y, Y + \mathcal{S}_x) \rbrace$ est basse discrépance si $\mathcal{S}_x,\mathcal{S}_y$ sont des séquences 1D basse discrépance.

Notre méthode

On divise les deux ensembles de points en sous blocs de taille $m \times m$.

Si on permute aleatoirement des échantillons d'un ensemble basse discrépance 1D dans des blocs de taille $m$, l'ensemble de points 1D obtenu est aussi un ensemble basse discrépance 1D.

Notre méthode

Dans chaque ligne et chaque colonne de l'ensemble basse discrépance initial, on reordonne les échantillons de façon à ce que leurs décalages soient dans le même ordre que ceux de l'ensemble stratifié de référence.

Si $m$ est trop petit p/r à $t$, le point set reordonné ressemblera moins à la cible. Si $m$ est trop grand, la discrépance de l'ensemble final sera degradée.

Notre méthode

Notre méthode

Notre méthode

Ce qui nous donne un ensemble de points final qui présente les même caractéristiques frequentielles que l'ensemble de points donné en entrée, tout en étant basse discrépance.

Notre méthode

Les permutations sont calculées une fois pour un ensemble de taille $t$, puis sont stockées dans une table pour être réutilisées et permettre de generer des ensembles de toute tailles.

$$ \lbrace X + \phi(Y - Y\%m + L_X), \\ Y + \phi(X - X\%m + L_Y) \rbrace $$
Si $t$ est trop petit p/r au nombre de points voulu, les permutations vont se répeter et les caracteristiques fréquentielles de l'ensemble de point vont se dégrader.

Résultats

BNOT [GBO*12] Sobol [Sobol67] Owen's Scrambling [Owen95] LDBN

Résultats

BNOT [GBO*12] LDBN Step [HSD13] LDBN

Résultats

Résultats

Résultats

Résultats

Résultats

BNOT [GBO*12] Sobol [Sobol67] Owen's Scrambling [Owen95] LDBN

Conclusion

  • Bruit Bleu
  • Basse discrépance
  • => Faible erreur en intégration
  • Efficacité
  • 2-D
  • Genere des ensembles de points
  • Global (pas d'adaptivité)

On peut faire mieux !

Sommaire

  • Contexte
  • Evaluer un échantillonneur
  • État de l'art
  • Optimiser un ensemble de points
  • Bruit Bleu Basse Discrépance 2-D
  • Bruit Bleu Basse Discrépance n-D
  • Conclusions et Perspectives

Bruit Bleu Basse Discrépance n-D

Préliminaires

On prend une séquence de sobol:

Préliminaires

Comme Sobol est basse discrepance, si on subdivise le domaine, on a le même nombre de points dans chaque tuile.

Préliminaires

Si on choisi un facteur de subdivision $K$ et qu'on subdivise hierachiquement le domaine. A chaque niveau de subdivision $\lambda$, on peut génèrer $K^{d\lambda}$ points de Sobol pour avoir $K^d$ points dans chaque tuile.

Exemple pour $K=2$

$\lambda=1$ $\lambda=2$ $\lambda=3$

Bruit Bleu Basse Discrépance n-D

Notre méthode scramble une séquence de Sobol de façon à lui donner un spectre bruit bleu. Contrairement à Owen et LDBN, ce scrambling se fait de façon hierarchique ce qui permet de raffinner séquentiellement un ensemble de points existant.

Niveau 1, 2-D, $K=4$

On génère $K^d=16$ points à partir de Sobol. On note cet ensemble $\mathcal{S_0}$.

Et on les scramble en utilisant un Owen scrambling pour leur donner un spectre bruit bleu. On note le nouvel ensemble $\mathcal{P_0}$.

Owen's scrambling préserve la discrépance d'un ensemble.

Niveau 2, 2-D, $K=4$

On génère $K^{2d}=256$ points à partir de Sobol. On note cet ensemble $\mathcal{S_1}$.

On commence par appliquer un scrambling global sur cet ensemble pour reconstruire $\mathcal{P_0}$. On note le nouvel ensemble $\mathcal{Q_1}$.

Ce scrambling global est basé sur l'operator XOR, qui préserve la discrépance.

Niveau 2, 2-D, $K=4$

Ensuite, on scramble les points dans chaque tuile $\mathcal{T_1^{i}}$ de $\mathcal{Q_1}$ pour obtenir un spectre globalement bruit bleu.

Un Owen's scrambling local appliqué uniquement sur les bits de poids faible des points préserve la discrépance de l'ensemble global.

Niveau 2, 2-D, $K=4$

Et ainsi de suite jusqu'à avoir généré le nombre de points souhaité.

Permutation Globale

On part de la séquence de Sobol du niveau précédent et du point set optimisé depuis cette séquence.

En faisant un XOR point à point entre ces deux séquences, on obtient l'ensemble des déplacements appliqués sur chacun des points lors des optimisations précédentes.

Permutation Globale

On peux ensuite réappliquer ces permutations à la séquence de Sobol du niveau courant pour obtenir un ensemble de points temporaire qui contiendra les points optimisés du niveau précédent.

Permutation Locale

On part de l'ensemble temporaire obtenu par la permutation globale, qui est subdivisé en tuiles de façon à avoir $K^{2d}$ points dans chaque tuile.

On va ensuite chercher de façon exhaustive quelle permutation d'Owen permet d'optimiser le spectre de cette tuile, tout en préservant la position du premier point (issu du niveau précédent).

Permutation Locale

Cette recherche est extrêmement couteuse, aussi une fois que l'on a trouvé l'optimisation d'un ensemble de points, on stocke cette optimisation dans une Look Up Table.

Possible car les séquences de Sobol sont auto-similaires.

n-D

n-D obtenu par scrambling indépendant de projections 2D.

Résultats

Sobol [Sobol67] Owen's Scrambling [Owen95] LDBN MultiProj
$K=4$

Résultats

Résultats

Résultats

Résultats

Résultats

Résultats

Stratified (MSE:0.0022) Sobol [Sobol67] (MSE:0.0018) Owen's Scrambling [Owen95] (MSE:0.0017) MultiProj K=8 (MSE:0.0018)

Résultats

Stratified (MSE:0.0017) Sobol [Sobol67] (MSE:0.0015) Owen's Scrambling [Owen95] (MSE:0.0016) MultiProj K=8 (MSE:0.0013)

Résultats

Résultats

Discrépance hors octaves ??

Conclusion

  • Bruit Bleu
  • Basse discrépance
  • => Faible erreur en intégration
  • Efficacité
  • n-D
  • Adaptativité
  • Octaves
  • Bruit Bleu et Basse discrépance dans les projections uniquement

Sommaire

  • Contexte
  • Evaluer un échantillonneur
  • État de l'art
  • Optimiser un ensemble de points
  • Bruit Bleu Basse Discrépance 2-D
  • Bruit Bleu Basse Discrépance n-D
  • Conclusions et Perspectives

Conclusion

Combiner bruit bleu et basse discrépance est possible sans perte de qualité

Mais pour utiliser ce genre d'échantillonneur en rendu il faudrait qu'ils soient $n$-D, aient une définition analytique, soient stochastiques ...

Il reste encore beaucoup de travail !

Continuer dans cette voie ?

Gain réel observé en terme d'aliassage.

L'aliassage n'apparait que sur de images non convergées, ce type d'image n'est utilisé en production que comme previsualisation ou comme entrée pour un algorithme de débruitage.

Ces d'algorithmes ont ils plus de mal à débruiter une image présentant une erreur structurée ou une image présentant une erreur aléatoire ?

Continuer dans cette voie ?

Gain réel observé en terme d'intégration ?

Difficile de conclure ... Nécessité de tester sur des scènes plus complexes, et donc d'algorithmes Bruit Bleu et Basse discrépance plus efficaces.

Faciliter la continuation

Release officielle du framework UTK !
Aggregation de tous les samplers et outils developpés lors de cette thèse.

https://utk-team.github.io/utk/index.html

Questions ?