TP2 - SYNTHÈSE DE TEXTURES

PAR MICHAEL BONENFANT

APERÇU

Ce projet porte sur la génération de texture de tailles arbitraire à partir d'un échantillon de texture. Différents résultats seront présentés afin de démontrer le fonctionnement d'une méthode appelé Image Quilting. Cette méthode est présentée dans l'article Image Quilting for Texture Synthesis and Transfer par Alexei A. Efros et William T.Freeman. Le résultat est obtenu par une sélection dans l'échantillonnage et une frontière minimisant l'erreur entre les blocs. Basées sur cette technique, une méthode de transfert de texture ainsi qu'une méthode simple de remplissage de trous par génération de texture seront aussi présentées.

Texture d'entrée

Aléatoire

Chevauchement

Recherche de joint

1. TEXTURE ÉCHANTILLONNÉE ALÉATOIREMENT

Cette méthode simple est la base de notre technique de génération de texture. Il suffit de sélectionner aléatoirement des blocs de la texture d'entrée puis de les combiner pour créer une nouvelle texture. Les résultats sont différents en fonction de la taille des blocs, mais les discontinuités de formes et de couleurs sont bien visibles.

Texture d'entrée

Aléatoire

2. TEXTURE AVEC CHEVAUCHEMENT DE BLOCS

Cette méthode est un peu plus efficace que la dernière, car elle sélectionne les blocs de la texture d'entrée en fonction de sa position dans la texture générée. Cette sélection se fait par la minimisation de l'erreur de chevauchement du bloc sur la texture voisine. Pour créer une texture variée et non répétitive, chaque bloc est sélectionné parmi plusieurs blocs définis comme bons candidats selon une tolérance indiquée. Les résultats sont meilleurs que précédemment, mais le joint entre les blocs est encore très visible.

Texture d'entrée

Chevauchement

3. TEXTURE AVEC RECHERCHE DE JOINT

La méthode de recherche de joint incorpore l'échantillonnage de la texture d'entrée par bloc, la minimisation de l'erreur avec chevauchement des blocs, mais ajoute une contrainte de coupure des joints. Encore une fois, un bloc est sélectionné parmi différents bons candidats afin de permettre de la variété dans la texture. La séparation des blocs se fait au chemin minimum selon le graphe de la somme des différences d'intensités de chaque composante RGB. De cette manière, les blocs sont sélectionnés pour permettre une bonne continuité de la texture et la coupure est effectuée afin de permettre une meilleure intégration possible de chaque bloc.

Texture d'entrée

Recherche de joint

4. RÉSULTATS

Texture d'entrée

Aléatoire

Chevauchement

Recherche de joint

Texture d'entrée

Aléatoire

Chevauchement

Recherche de joint

Texture d'entrée

Aléatoire

Chevauchement

Recherche de joint

Texture d'entrée

Aléatoire

Chevauchement

Recherche de joint

Texture d'entrée

Aléatoire

Chevauchement

Recherche de joint

Texture d'entrée

Aléatoire

Chevauchement

Recherche de joint

5. TRANSFERT DE TEXTURE

Cette technique est intéressante et très simple d'implémentation lorsque l'algorithme de génération de texture est déjà fonctionnel. Il reprend donc la même méthode d'image quilting mais incorpore un facteur supplémentaire dans l'échantillonnage. Les blocs sont choisis en fonction de leur bonne intégration dans la texture, mais aussi dans le suivi d'un modèle. Les exemples présentés sont basés sur l'intensité filtrée d'une image en intensité de gris, mais il est possible d'utiliser un autre facteur que l'intensité. La texture suit donc la continuité et le modèle en fonction d'un paramètre supplémentaire.

Texture

Sujet

Combinaison
(Taille des blocs: 70 pixels)

Combinaison
(Taille des blocs: 35 pixels)

Combinaison
(Taille des blocs: 25 pixels)

Texture

Sujet

Combinaison

Texture

Sujet

Combinaison

6. SUPPLÉMENT: REMPLISSAGE DE TROUS

Cette méthode de remplissage de trous est basée sur la technique d'image quilting. Premièrement, l'utilisateur sélectionne la zone à effacer dans l'image. Deuxièmement, pour améliorer la qualité et la vitesse d'exécution, l'utilisateur sélectionne la zone où l'échantillonnage de la texture sera effectué. Cette zone peut être l'image entière, une combinaison de différentes textures ou bien une texture isolée. La sélection d'une grande variété de texture d'entrée permet une meilleure flexibilité de l'algorithme, mais une exécution plus lente. Une fois ces actions effectuées, une texture est générée en fonction des contours de l'objet à effacer. Pour mieux intégrer cette pièce de texture à l'image, la technique de minimisation du joint est combinée avec un feathering simple. L'algorithme peut générer différentes combinaisons de texture pour bien s'adapter à l'image.

Sélection de l'objet à effacer

Image corrigée

Image originale

Image corrigée

Image originale

Image corrigée

7. AUTRE

Texture

Sujet

Combinaison

CONCLUSION

La qualité des résultats de l'application de la méthode d'Image Quilting est très intéressante. De plus, sa simplicité d'implémentation est surprenante. Il est aussi facile d'adapter la méthode à différentes correction, amélioration et modification d'image. En comparant cette méthode à d'autres existantes, sa qualité et sa performance sont très intéressantes.

SOURCES DES IMAGES: photos personnelles, images données pour la réalisation du TP, autres images: CORBEAUPLAGECALLIGRAPHIEOCÉANBOISNEIGELUNE