La síntesis de texturas es el proceso de construir algorítmicamente una imagen digital de gran tamaño a partir de una pequeña imagen digital de muestra, aprovechando su contenido estructural. Es objeto de investigación en gráficos por computadora y se utiliza en muchos campos, entre ellos la edición de imágenes digitales , los gráficos 3D por computadora y la postproducción de películas .
La síntesis de texturas se puede utilizar para rellenar huecos en imágenes (como en el relleno de imágenes ), crear imágenes de fondo grandes y no repetitivas y ampliar imágenes pequeñas. [ 1 ]
Contraste con texturas procedimentales
Las texturas procedimentales son una técnica relacionada que permite sintetizar texturas desde cero sin material de origen. Por el contrario, la síntesis de texturas se refiere a técnicas en las que se ajusta o extiende una imagen de origen.
Texturas
" Textura " es una palabra ambigua y, en el contexto de la síntesis de texturas, puede tener uno de los siguientes significados:
- En el lenguaje común, la palabra "textura" se usa como sinónimo de "estructura superficial". La textura se ha descrito mediante cinco propiedades diferentes en la psicología de la percepción : aspereza , contraste , direccionalidad , similitud con líneas y rugosidad..
- En gráficos 3D por computadora , una textura es una imagen digital aplicada a la superficie de un modelo tridimensional mediante mapeo de texturas para darle al modelo una apariencia más realista. A menudo, la imagen es una fotografía de una textura "real", como la veta de la madera .
- En el procesamiento de imágenes , toda imagen digital compuesta por elementos repetidos se denomina "textura".

La textura se puede organizar a lo largo de un espectro que va de regular a estocástico, conectado por una transición suave: [ 2 ]
- Texturas regulares. Estas texturas se asemejan a patrones regulares. Un ejemplo de textura estructurada es una pared de piedra o un suelo embaldosado con adoquines.
- Texturas estocásticas. Las imágenes de texturas estocásticas parecen ruido : puntos de color dispersos aleatoriamente sobre la imagen, apenas definidos por los atributos de brillo mínimo y máximo y color promedio. Muchas texturas parecen estocásticas cuando se ven desde la distancia. Un ejemplo de textura estocástica es el revoque rugoso .
Meta
Los algoritmos de síntesis de texturas están diseñados para crear una imagen de salida que cumpla con los siguientes requisitos:
- La salida debe tener el tamaño especificado por el usuario.
- El resultado debe ser lo más similar posible a la muestra.
- El resultado no debe presentar artefactos visibles como costuras, bloques o bordes mal ajustados.
- El resultado no debe repetirse, es decir, las mismas estructuras en la imagen de salida no deben aparecer en varios lugares.
Como la mayoría de los algoritmos, la síntesis de texturas debe ser eficiente en cuanto al tiempo de cálculo y al uso de la memoria.
Métodos
Se han investigado o desarrollado los siguientes métodos y algoritmos para la síntesis de texturas:
Embaldosado
La forma más sencilla de generar una imagen grande a partir de una imagen de muestra es mediante la técnica de mosaico . Esto significa que se copian y pegan varias copias de la muestra una al lado de la otra. El resultado rara vez es satisfactorio. Salvo en raras ocasiones, aparecerán uniones entre los mosaicos y la imagen resultará muy repetitiva.
Síntesis estocástica de texturas
Los métodos de síntesis de texturas estocásticas generan una imagen seleccionando aleatoriamente valores de color para cada píxel, influenciados únicamente por parámetros básicos como el brillo mínimo, el color promedio o el contraste máximo. Estos algoritmos funcionan bien solo con texturas estocásticas; de lo contrario, producen resultados completamente insatisfactorios, ya que ignoran cualquier tipo de estructura dentro de la imagen de muestra.
Síntesis de texturas estructuradas de propósito único
Los algoritmos de esta familia utilizan un procedimiento fijo para crear una imagen de salida, es decir, se limitan a un solo tipo de textura estructurada. Por lo tanto, estos algoritmos solo pueden aplicarse a texturas estructuradas y únicamente a texturas con una estructura muy similar. Por ejemplo, un algoritmo específico podría producir imágenes de textura de alta calidad de muros de piedra; sin embargo, es muy improbable que produzca un resultado viable si se le proporciona una imagen de muestra que muestre guijarros.
Mosaico del caos
Este método, propuesto por el grupo de Microsoft para gráficos de internet, es una versión refinada del mosaico y realiza los siguientes tres pasos:
- La imagen resultante se rellena completamente mediante un proceso de mosaico. El resultado es una imagen repetitiva con costuras visibles.
- Se copian y pegan aleatoriamente fragmentos de tamaño aleatorio de la muestra sobre la imagen de salida. El resultado es una imagen poco repetitiva con costuras visibles.
- La imagen de salida se filtra para suavizar los bordes.
El resultado es una imagen de textura aceptable, que no es demasiado repetitiva ni contiene demasiados artefactos. Sin embargo, este método resulta insatisfactorio, ya que el suavizado del paso 3 hace que la imagen resultante parezca borrosa.
Síntesis de texturas basada en píxeles
Estos métodos, que utilizan campos de Markov, [ 3 ] muestreo no paramétrico, [ 4 ] cuantización vectorial estructurada en árbol [ 5 ] y analogías de imágenes [ 6 ] son algunos de los algoritmos de síntesis de texturas generales más simples y exitosos. Generalmente sintetizan una textura en orden de línea de escaneo al encontrar y copiar píxeles con el vecindario local más similar a la textura sintética. Estos métodos son muy útiles para completar imágenes. Se pueden restringir, como en las analogías de imágenes , para realizar muchas tareas interesantes. Por lo general, se aceleran con alguna forma del método del vecino más cercano aproximado, ya que la búsqueda exhaustiva del mejor píxel es algo lenta. La síntesis también se puede realizar en multirresolución, como mediante el uso de un campo aleatorio de Markov multiescala no causal y no paramétrico . [ 7 ]

Síntesis de texturas basada en parches
La síntesis de texturas basada en parches crea una nueva textura copiando y uniendo texturas en diferentes desplazamientos, de forma similar al uso de la herramienta de clonación para sintetizar una textura manualmente. El patching de imágenes [ 8 ] y las texturas de corte de grafos [ 9 ] son los algoritmos de síntesis de texturas basados en parches más conocidos. Estos algoritmos suelen ser más eficaces y rápidos que los métodos de síntesis de texturas basados en píxeles.
Aprendizaje profundo y enfoques de redes neuronales
Más recientemente, se ha demostrado que los métodos de aprendizaje profundo constituyen un enfoque paramétrico, potente, rápido y basado en datos para la síntesis de texturas. El trabajo de Leon Gatys [ 10 ] representa un hito: él y sus coautores demostraron que los filtros de una red neuronal profunda entrenada de forma discriminativa pueden utilizarse como descriptores de imagen paramétricos eficaces, lo que da lugar a un novedoso método de síntesis de texturas.
Otro desarrollo reciente es el uso de modelos generativos para la síntesis de texturas. El método Spatial GAN [ 11 ] demostró por primera vez el uso de GAN totalmente no supervisadas para la síntesis de texturas. En un trabajo posterior, [ 12 ] el método se amplió aún más: PSGAN puede aprender imágenes periódicas y no periódicas de forma no supervisada a partir de imágenes individuales o grandes conjuntos de datos. Además, el muestreo flexible en el espacio de ruido permite crear texturas novedosas de tamaño de salida potencialmente infinito y realizar transiciones suaves entre ellas. Esto hace que PSGAN sea único con respecto a los tipos de imágenes que un método de síntesis de texturas puede crear.
Implementaciones
Existen algunas implementaciones de síntesis de texturas como complementos para el editor de imágenes gratuito Gimp :
- Texturizar
- Resintetizador
Implementación de síntesis de texturas basada en píxeles:
- Síntesis de textura controlable en paralelo
Síntesis de texturas basada en parches:
- KUVA: Texturas Graphcut
Síntesis de texturas generativa profunda con PSGAN, implementada en Python con Lasagne + Theano:
- https://github.com/zalandoresearch/psgan
Literatura
Algunos de los artículos más antiguos y citados en este campo incluyen:
- Popat en 1993 - "Nuevo modelo de probabilidad basado en clústeres para la síntesis, clasificación y compresión de texturas".
- Heeger-Bergen en 1995 - "Análisis/síntesis de texturas basada en pirámides".
- Paget-Longstaff en 1998 - "Síntesis de texturas mediante un campo aleatorio de Markov multiescala no causal y no paramétrico"
- Efros-Leung en 1999 - "Síntesis de texturas mediante muestreo no paramétrico".
- Wei-Levoy en 2000 - "Síntesis rápida de texturas mediante cuantización vectorial estructurada en árbol "
aunque también hubo trabajos anteriores sobre el tema, como
- Gagalowicz y Song De Ma en 1986, "Síntesis basada en modelos de texturas naturales para escenas 3D",
- Lewis en 1984, "Síntesis de texturas para pintura digital".
(Este último algoritmo tiene algunas similitudes con el enfoque del Mosaico Caótico).
El método de muestreo no paramétrico de Efros-Leung fue el primero en sintetizar fácilmente la mayoría de los tipos de texturas, e inspiró cientos de trabajos posteriores en gráficos por computadora. Desde entonces, el campo de la síntesis de texturas se ha expandido rápidamente con la introducción de tarjetas aceleradoras de gráficos 3D para computadoras personales. Sin embargo, según Efros , Scott Draves publicó por primera vez la versión basada en parches de esta técnica junto con código GPL en 1993 .
Véase también
- Síntesis granular , una técnica similar para audio en lugar de imágenes.
- Repintado
- Tallado de vetas
- Textura procedural
- Inceptionismo
Referencias
- ↑ "Curso de SIGGRAPH 2007 sobre síntesis de texturas basada en ejemplos"
- ↑ "Análisis y manipulación de texturas casi regulares" . Yanxi Liu , Wen-Chieh Lin y James Hays. SIGGRAPH 2004
- ↑ "Síntesis de texturas mediante un campo aleatorio de Markov multiescala no causal y no paramétrico." Paget y Longstaff, IEEE Trans. on Image Processing, 1998
- ↑ "Síntesis de texturas mediante muestreo no paramétrico". Efros y Leung, ICCV, 1999
- ↑ "Síntesis rápida de texturas mediante cuantización vectorial estructurada en árbol" Wei y Levoy SIGGRAPH 2000
- ↑ "Analogías de imágenes" Hertzmann et al. SIGGRAPH 2001.
- ↑ "Síntesis de texturas mediante un campo aleatorio de Markov multiescala no causal y no paramétrico." Paget y Longstaff, IEEE Trans. on Image Processing, 1998
- ↑ "Acolchado de imágenes". Efros y Freeman. SIGGRAPH 2001
- ↑ "Texturas Graphcut: Síntesis de imágenes y vídeo mediante cortes de grafos." Kwatra et al. SIGGRAPH 2003
- ↑ Gatys, Leon A.; Ecker, Alexander S.; Bethge, Matthias (27-05-2015). "Síntesis de texturas mediante redes neuronales convolucionales". arXiv : 1505.07376 [ cs.CV ].
- ↑ Jetchev, Nikolay; Bergmann, Urs; Vollgraf, Roland (24-11-2016). "Texture Synthesis with Spatial Generative Adversarial Networks". arXiv : 1611.08207 [ cs.CV ].
- ↑ Bergmann, Urs; Jetchev, Nikolay; Vollgraf, Roland (2017-05-18). "Learning Texture Manifolds with the Periodic Spatial GAN". arXiv : 1705.06566 [ cs.CV ].
Enlaces externos
- síntesis de texturas
- síntesis de texturas
- síntesis de películas de texturas
- Textura2005
- Síntesis de textura casi regular
- El Laboratorio de Texturas
- Síntesis de texturas no paramétricas
- Ejemplos de texturas de reacción-difusión
- Implementación del algoritmo de Efros y Leung con ejemplos
- Síntesis de microtexturas mediante aleatorización de fases, con código y demostración en línea.
- Implementación de la GAN espacial periódica para la síntesis de texturas.
- Gráficos por computadora