• Aucun résultat trouvé

Exemples de techniques de synthèse

On s’accorde en général pour distinguer deux grandes classes de texture : celles qui présentent des aspects réguliers aux motifs bien déterminés, de celles dont l’agencement est plus aléatoire et donc dépourvues de structures établies. Nous retrouvons ainsi, de façon tout à fait logique, deux catégories d’algorithmes. On distingue ceux basés sur une approche structurelle déterministe visant à restituer la régularité du motif, de ceux dont l’approche est probabiliste, cherchant à caractériser l’aspect anarchique des textures stochastiques.

2.2.1 Approche stochastique

La philosophie d’une approche stochastique n’est pas de reproduire la texture à l’identique. On recherche plus exactement à créer une nouvelle texture comme si elle avait été générée par le même processus aléatoire.

2.2.1.1 L’image : une réalisation d’un champ de Markov

La technique basée sur les champs de Markov ou MRF (Markov Random Field) est l’une des plus anciennes du domaine [CJ83, PP93, HB95, PL95]. Le principe consiste à modéliser l’image comme un champ stationnaire, où les pixels sont des variables aléatoires. Les dépendances entre elles forment le signal texturé. L’enjeu est alors de sélectionner la réalisation ou encore l’agencement optimal des pixels, qui conduit à une restitution acceptable du motif source. Pour estimer quel sera l’ordonnancement le plus probable, il est nécessaire d’apprendre la distribution sur l’ensemble de l’image. L’approche a démontré son efficacité pour un ensemble assez vaste et divers de textures. On peut supposer que cette robustesse est liée à l’adaptativité intrinsèque de la technique qui dépend directement du signal source. Cependant, les algorithmes mis en place restent encore actuellement beaucoup trop coûteux.

2.2.1.2 Structure hiérarchique

Les travaux de [Bon95] introduisent une structure hiérarchique au coeur du processus de synthèse. Une hypothèse fondamentale de la technique consiste à supposer qu’une texture est composée de plusieurs régions, qui se distinguent les unes des autres à une faible valeur près. Autrement dit, certaines caractéristiques d’une texture peuvent être visibles à une résolution sans l’être à une autre. Partant de cette hypothèse, l’analyse est basée sur une décomposition de l’image à plusieurs échelles, visant à extraire jusqu’aux composantes les plus basiques de l’image : on

40 Synthèse de texture

obtient une décomposition en sous-bandes de différentes fréquences spatiales, un exemple est représenté en figure 2.3.

FIG. 2.3 – Décomposition en sous-bandes

Une solution proposée par Javier Portilla et Eero Simoncelli [PS00] offre de bons résultats. Leur approche est basée sur l’exploitation des corrélations entre coefficients d’ondelettes aux différentes sous-bandes de la transformation. Le modèle statistique est paramétré en tenant compte de diverses valeurs statistiques dépendantes des corrélations entre coefficients, voisins en termes de localisation spatiale, d’orientation et d’échelle.

2.2.2 Approches structurelles

2.2.2.1 Méthodes supervisées basées pixel

Ces dernières années des méthodes très efficaces ont été développées, basées sur la recopie de pixels issus d’un patch modèle. La philosophie de ce type de méthode peut s’apparenter à une approche déterministe de la synthèse par des champs de Markov. La technique a d’abord été introduite par Alexei A. Efros et Thomas K. Leung [EL00]. Puis, les travaux de Li -Yi Wei et Marc Levoy [EL00] ont démocratisé ce type d’algorithmes. Ils génèrent la texture en recherchant des correspondances point à point, entre le voisinage de l’image en cours de synthèse et des voisinages du patch source, comme l’illustre la figure 2.4.

FIG. 2.4 – Principe de la synthèse de Wei et Levoy

Par la suite, des travaux, notamment ceux de Michael Ashikhmin [Ash01], se sont orientés vers une extension de la technique de Wei et Levoy. L’exploitation de stationnarités locales dans sa méthode lui permet de réduire le nombre de candidats possibles. La figure 2.5 présente quelques uns de ses résultats. Puis, les travaux dans le domaine se sont tout naturellement axés vers des techniques visant de plus en plus à recopier des morceaux complets du patch source. Citons les travaux de Vivek Kwatra et al. [KEBK05] qui mettent en place une approche d’optimisation plus

Exemples de techniques de synthèse 41

globale basée sur un algorithme de type EM1.

FIG. 2.5 – Exemples de synthèse obtenus avec l’algorithme d’Ashikhmin : à gauche, le patch source ; à droite, le résultat de la synthèse

2.2.2.2 Méthodes basées bloc

– Chaos mosaic –

Cette idée originale a été développée par Ying-Quing Xu et al. [XGS00]. La technique proposée est basée sur un placement répété et aléatoire du patch source dans une nouvelle image. La technique faisant apparaître de nombreuses discontinuités entre blocs voisins, les contours sont ensuite filtrés pour éliminer ces artefacts. La figure 2.6 présente un exemple de résultats de synthèse par cette méthode. Par nature, cette technique synthétise ainsi une texture d’aspect déstructuré tout en conservant néanmoins la nature locale du motif. L’algorithme est donc efficace pour générer des textures stochastiques mais présente de faibles résultats quant à la synthèse de textures ordonnées.

– Synthèse par graphcut –

1EM pour Espérance - Maximisation [DLR77]. Cet algorithme itère les étapes E et M successivement et vise à déterminer les paramètres d’un modèle probabiliste via la recherche du maximum de vraisemblance.

42 Synthèse de texture

FIG. 2.6 – Synthèse par chaos mosaic

A. Efros et W.T. Freeman [EF01] ont cherché à combiner deux idées : celle du chaos mosaic qui recopie aléatoirement le patch source et celle qui introduit des contraintes spatiales au niveau pixellique [EL00]. L’idée consiste à recopier côte à côte les patchs source dans une nouvelle image, tout en tolérant une zone de recouvrement entre eux. La texture ainsi synthétisée est ensuite uniformisée en déterminant la couture optimale au niveau du recouvrement. La jointure optimale est calculée via des algorithmes de programmation dynamique. La figure 2.7 présente le principe de la méthode. Kwatra et al. [KSE+03] proposent d’obtenir cette couture en se basant sur la théorie des graphes plutôt que par la programme dynamique. Au niveau du recouvrement des patchs, on détermine le chemin de coût minimal2puis la coupe minimale, qui en découle, va définir la séparation optimale entre les blocs.

– Synthèse par patch –

Une des techniques la plus intuitive, qui permet également de préserver la structure globale de la texture, est la recherche au sein de l’image, d’un ensemble de pixels représentant au mieux (selon un critère défini) la texture à synthétiser. Le voisinage de pixels utilisé pour mesurer la correspondance a la contrainte d’être suffisamment grand pour capter la stationnarité de la texture. Cette synthèse revient à recopier des patchs entiers d’une texture connue. Cette technique, appelée

Template Matching décrite au paragraphe 1.6.3.2 est généralement utilisée pour synthétiser une

texture au sein d’une image.

Dans ce même esprit de synthèse basée sur des patchs exemples, les travaux de [CPT04] proposent de recopier de façon judicieuse un patch de pixels. L’ordre de recopie des pixels du patch est tel qu’il permet de privilégier les forts gradients : cela permet ainsi de propager la texture tout en conservant les structures linéiques marquées au sein de l’image, tels que des contours.

2.2.2.3 Synthèse de texture inverse

La synthèse inverse de texture correspond à des travaux présentés très récemment par Wei et al. [WHZ+08]. On parle de synthèse inverse car elle opère dans le sens opposé à la synthèse classique que nous avons évoquée jusqu’à présent.

Le principe de la synthèse est généralement de créer une grande image de texture à partir d’un petit patch d’une texture modèle. Le but de la synthèse inverse est de générer une texture

2Les algorithmes utilisés peuvent être l’algorithme de Dijkstra [Dij71] ou encore l’algorithme d’Edmonds et Karp [EK72], une version améliorée de l’algorithme de Ford et Fulkerson [FF62].

Exemples de techniques de synthèse 43

FIG. 2.7 – Synthèse par graphcut (Efros et Freeman)

44 Synthèse de texture

compactée, regroupant les principales caractéristiques texturelles d’une texture connue, de plus grande dimension. L’idée est bien sûr de réussir à condenser dans un petit échantillon les motifs nécessaires à la regénération d’une texture similaire de plus grande taille.

On devine aisément le potentiel que pourrait présenter cette technique dans un schéma de compression d’images. La différence majeure par rapport au schéma de compression classique, est que la texture obtenue n’est pas identique à la source (comme l’illustre la figure 2.8). Les techniques d’évaluation de la qualité basée sur une erreur pixel à pixel ne sont plus adaptées. Des critères perceptuels doivent être utilisés afin d’évaluer le degré de similarité entre la texture obtenue par synthèse inverse et la texture source.

2.2.3 Conclusion de la partie

Nous avons présenté différentes techniques de la littérature qui chacune met en œuvre des solutions au problème de synthèse de texture. Il ressort de l’analyse de ces travaux que les algorithmes développés sont nécessairement dépendants des textures traitées (stochastiques ou au contraire fortement ordonnées). Actuellement, il est encore complexe de s’affranchir de cette contrainte. Idéalement, il conviendrait d’effectuer une pré-analyse structurelle de la texture pour rendre la synthèse adaptative. Il existe cependant des techniques de natures différentes qui incorporent au sein même des algorithmes une analyse des composantes significatives de la texture.

Nota bene · · · ·

L’idée est de ne plus se contenter de recopier des pixels issus d’une texture modèle mais plutôt de «voir» la texture et ensuite de l’interpoler.

2.3 L’inpainting d’images