Texture Synthesis
   HOME

TheInfoList



OR:

Texture synthesis is the process of
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
ically constructing a large
digital image A digital image is an image composed of picture elements, also known as ''pixels'', each with ''finite'', '' discrete quantities'' of numeric representation for its intensity or gray level that is an output from its two-dimensional functions ...
from a small digital sample image by taking advantage of its structural content. It is an object of research in
computer graphics Computer graphics deals with generating images with the aid of computers. Today, computer graphics is a core technology in digital photography, film, video games, cell phone and computer displays, and many specialized applications. A great de ...
and is used in many fields, amongst others
digital image editing Image editing encompasses the processes of altering images, whether they are Digital photography, digital photographs, traditional Photographic processing, photo-chemical photographs, or illustrations. Traditional analog image editing is kno ...
,
3D computer graphics 3D computer graphics, or “3D graphics,” sometimes called CGI, 3D-CGI or three-dimensional computer graphics are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for th ...
and post-production of films. Texture synthesis can be used to fill in holes in images (as in
inpainting Inpainting is a conservation process where damaged, deteriorated, or missing parts of an artwork are filled in to present a complete image. This process is commonly used in image restoration. It can be applied to both physical and digital art me ...
), create large non-repetitive background images and expand small pictures.


Contrast with procedural textures

Procedural texture In computer graphics, a procedural texture is a texture created using a mathematical description (i.e. an algorithm) rather than directly stored data. The advantage of this approach is low storage cost, unlimited texture resolution and easy textur ...
s are a related technique which may synthesise textures from scratch with no source material. By contrast, texture synthesis refers to techniques where some source image is being matched or extended.


Textures

"
Texture Texture may refer to: Science and technology * Surface texture, the texture means smoothness, roughness, or bumpiness of the surface of an object * Texture (roads), road surface characteristics with waves shorter than road roughness * Texture (c ...
" is an ambiguous word and in the context of texture synthesis may have one of the following meanings: # In common speech, the word "texture" is used as a synonym for "surface structure". Texture has been described by five different properties in the psychology of perception: ''coarseness'', ''contrast'', ''directionality'', ''line-likeness'' and ''roughness'' . # In
3D computer graphics 3D computer graphics, or “3D graphics,” sometimes called CGI, 3D-CGI or three-dimensional computer graphics are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for th ...
, a texture is a digital image applied to the surface of a three-dimensional model by
texture mapping Texture mapping is a method for mapping a texture on a computer-generated graphic. Texture here can be high frequency detail, surface texture, or color. History The original technique was pioneered by Edwin Catmull in 1974. Texture mapping ...
to give the model a more realistic appearance. Often, the image is a photograph of a "real" texture, such as
wood grain Wood grain is the longitudinal arrangement of wood fibers or the pattern resulting from such an arrangement. Definition and meanings R. Bruce Hoadley wrote that ''grain'' is a "confusingly versatile term" with numerous different uses, including ...
. # In
image processing An image is a visual representation of something. It can be two-dimensional, three-dimensional, or somehow otherwise feed into the visual system to convey information. An image can be an artifact, such as a photograph or other two-dimensiona ...
, every digital image composed of repeated elements is called a "texture." Texture can be arranged along a spectrum going from regular to stochastic, connected by a smooth transition: * Regular textures. These textures look like somewhat regular patterns. An example of a structured texture is a stonewall or a floor tiled with paving stones. * Stochastic textures. Texture images of stochastic textures look like
noise Noise is unwanted sound considered unpleasant, loud or disruptive to hearing. From a physics standpoint, there is no distinction between noise and desired sound, as both are vibrations through a medium, such as air or water. The difference arise ...
: colour dots that are randomly scattered over the image, barely specified by the attributes minimum and maximum brightness and average colour. Many textures look like stochastic textures when viewed from a distance. An example of a stochastic texture is
roughcast Roughcast or pebbledash is a coarse plaster surface used on outside walls that consists of lime and sometimes cement mixed with sand, small gravel and often pebbles or shells. The materials are mixed into a slurry and are then thrown at the wor ...
.


Goal

Texture synthesis algorithms are intended to create an ''output image'' that meets the following requirements: * The output should have the size given by the user. * The output should be as similar as possible to the sample. * The output should not have visible artifacts such as seams, blocks and misfitting edges. * The output should not repeat, i. e. the same structures in the output image should not appear multiple places. Like most algorithms, texture synthesis should be efficient in computation time and in memory use.


Methods

The following methods and algorithms have been researched or developed for texture synthesis:


Tiling

The simplest way to generate a large image from a sample image is to
tile Tiles are usually thin, square or rectangular coverings manufactured from hard-wearing material such as ceramic, stone, metal, baked clay, or even glass. They are generally fixed in place in an array to cover roofs, floors, walls, edges, or o ...
it. This means multiple copies of the sample are simply copied and pasted side by side. The result is rarely satisfactory. Except in rare cases, there will be the seams in between the tiles and the image will be highly repetitive.


Stochastic texture synthesis

Stochastic texture synthesis methods produce an image by randomly choosing colour values for each pixel, only influenced by basic parameters like minimum brightness, average colour or maximum contrast. These algorithms perform well with stochastic textures only, otherwise they produce completely unsatisfactory results as they ignore any kind of structure within the sample image.


Single purpose structured texture synthesis

Algorithms of that family use a fixed procedure to create an output image, i. e. they are limited to a single kind of structured texture. Thus, these algorithms can both only be applied to structured textures and only to textures with a very similar structure. For example, a single purpose algorithm could produce high quality texture images of stonewalls; yet, it is very unlikely that the algorithm will produce any viable output if given a sample image that shows pebbles.


Chaos mosaic

This method, proposed by the Microsoft group for internet graphics, is a refined version of tiling and performs the following three steps: # The output image is filled completely by tiling. The result is a repetitive image with visible seams. # Randomly selected parts of random size of the sample are copied and pasted randomly onto the output image. The result is a rather non-repetitive image with visible seams. # The output image is filtered to smooth edges. The result is an acceptable texture image, which is not too repetitive and does not contain too many artifacts. Still, this method is unsatisfactory because the smoothing in step 3 makes the output image look blurred.


Pixel-based texture synthesis

These methods, using Markov fields, non-parametric sampling, tree-structured vector quantization and image analogies are some of the simplest and most successful general texture synthesis algorithms. They typically synthesize a texture in scan-line order by finding and copying pixels with the most similar local neighborhood as the synthetic texture. These methods are very useful for image completion. They can be constrained, as in image analogies, to perform many interesting tasks. They are typically accelerated with some form of Approximate Nearest Neighbor method since the exhaustive search for the best pixel is somewhat slow. The synthesis can also be performed in multiresolution, such as through use of a noncausal nonparametric multiscale Markov random field.


Patch-based texture synthesis

Patch-based texture synthesis creates a new texture by copying and stitching together textures at various offsets, similar to the use of the
clone tool The clone tool, as it is known in Adobe Photoshop, Inkscape, GIMP, and Corel PhotoPaint, is used in digital image editing to replace information for one part of a picture with information from another part. In Comparison of raster graphics edito ...
to manually synthesize a texture. Image quilting and graphcut textures are the best known patch-based texture synthesis algorithms. These algorithms tend to be more effective and faster than pixel-based texture synthesis methods.


Deep Learning and Neural Network Approaches

More recently,
deep learning Deep learning (also known as deep structured learning) is part of a broader family of machine learning methods based on artificial neural networks with representation learning. Learning can be supervised, semi-supervised or unsupervised. De ...
methods were shown to be a powerful, fast and data-driven, parametric approach to texture synthesis. The work of Leon Gatys is a milestone: he and his co-authors showed that filters from a discriminatively trained deep neural network can be used as effective parametric image descriptors, leading to a novel texture synthesis method. Another recent development is the use of generative models for texture synthesis. The Spatial GAN method showed for the first time the use of fully unsupervised GANs for texture synthesis. In a subsequent work, the method was extended further—PSGAN can learn both periodic and non-periodic images in an unsupervised way from single images or large datasets of images. In addition, flexible sampling in the noise space allows to create novel textures of potentially infinite output size, and smoothly transition between them. This makes PSGAN unique with respect to the types of images a texture synthesis method can create.


Implementations

Some texture synthesis implementations exist as plug-ins for the free image editor
Gimp GIMP ( ; GNU Image Manipulation Program) is a free and open-source raster graphics editor used for image manipulation (retouching) and image editing, free-form drawing, transcoding between different image file formats, and more specialized task ...
:
Texturize

Resynthesizer
A pixel-based texture synthesis implementation:
Parallel Controllable Texture Synthesis
Patch-based texture synthesis:
KUVA: Graphcut textures
Deep Generative Texture Synthesis with PSGAN, implemented in Python with Lasagne + Theano: * https://github.com/zalandoresearch/psgan


Literature

Several of the earliest and most referenced papers in this field include:
Popat
in 1993 - "Novel cluster-based probability model for texture synthesis, classification, and compression".
Heeger-Bergen
in 1995 - "Pyramid based texture analysis/synthesis".
Paget-Longstaff
in 1998 - "Texture synthesis via a noncausal nonparametric multiscale Markov random field"
Efros-Leung
in 1999 - "Texture Synthesis by Non-parametric Sampling".
Wei-Levoy
in 2000 - "Fast Texture Synthesis using Tree-structured Vector Quantization" although there was also earlier work on the subject, such as * Gagalowicz and Song De Ma in 1986, "Model driven synthesis of natural textures for 3-D scenes", * Lewis in 1984, "Texture synthesis for digital painting". (The latter algorithm has some similarities to the Chaos Mosaic approach). The non-parametric sampling approach of Efros-Leung is the first approach that can easily synthesize most types of texture, and it has inspired literally hundreds of follow-on papers in computer graphics. Since then, the field of texture synthesis has rapidly expanded with the introduction of 3D graphics accelerator cards for personal computers. It turns out, however, that
Scott Draves Scott Draves is the inventor of Fractal Flames and the leader of the distributed computing project Electric Sheep. He also invented patch-based texture synthesis and published the first implementation of this class of algorithms. He is also a v ...
first published the patch-based version of this technique along with GPL code in 1993 according t
Efros


See also

*
Granular synthesis Granular synthesis is a sound synthesis method that operates on the microsound time scale. It is based on the same principle as sampling. However, the samples are split into small pieces of around 1 to 100 ms in duration. These small pieces ar ...
, a similar technique for audio rather than images *
Inpainting Inpainting is a conservation process where damaged, deteriorated, or missing parts of an artwork are filled in to present a complete image. This process is commonly used in image restoration. It can be applied to both physical and digital art me ...
*
Seam carving Seam carving (or liquid rescaling) is an algorithm for content-aware image resizing, developed by Shai Avidan, of Mitsubishi Electric Research Laboratories (MERL), and Ariel Shamir, of the Interdisciplinary Center and MERL. It functions by es ...
*
Procedural texture In computer graphics, a procedural texture is a texture created using a mathematical description (i.e. an algorithm) rather than directly stored data. The advantage of this approach is low storage cost, unlimited texture resolution and easy textur ...
* Inceptionism


References


External links


texture synthesis

texture synthesis

texture movie synthesis

Texture2005

Near-Regular Texture Synthesis

The Texture Lab





Implementation of Efros & Leung's algorithm with examples

Micro-texture synthesis by phase randomization, with code and online demonstration

Implementation of the Periodic Spatial GAN for texture synthesis
{{DEFAULTSORT:Texture Synthesis Computer graphics