Los algoritmos de transferencia de estilo neuronal ( NST ) permiten manipular imágenes o vídeos digitales para adoptar la apariencia o el estilo visual de otra imagen. Estos algoritmos se caracterizan por el uso de redes neuronales profundas para la transformación de imágenes. Entre sus aplicaciones más comunes se encuentra la creación de obras de arte artificiales a partir de fotografías, por ejemplo, transfiriendo la apariencia de pinturas famosas a fotografías proporcionadas por el usuario. Varias aplicaciones móviles destacadas utilizan técnicas NST con este fin, como DeepArt y Prisma . Este método ha sido empleado por artistas y diseñadores de todo el mundo para desarrollar nuevas obras de arte basadas en estilos ya existentes.
Historia
NST es un ejemplo de estilización de imágenes , un problema estudiado durante más de dos décadas en el campo de la renderización no fotorrealista . Los dos primeros algoritmos de transferencia de estilo basados en ejemplos fueron las analogías de imágenes [ 1 ] y el patchwork de imágenes [ 2 ] . Ambos métodos se basaban en algoritmos de síntesis de texturas basados en parches .
A partir de un par de imágenes de entrenamiento (una fotografía y una obra de arte que la representa), se podía aprender una transformación y aplicarla, por analogía, para crear una nueva obra de arte a partir de una nueva fotografía. Si no se disponía de una fotografía de entrenamiento, esta debía generarse procesando la obra de arte de entrada; la técnica de patchwork de imágenes no requería este paso de procesamiento, aunque solo se demostró con un estilo.
NST se publicó por primera vez en el artículo "A Neural Algorithm of Artistic Style" de Leon Gatys et al., publicado originalmente en ArXiv 2015, [ 3 ] y posteriormente aceptado por la conferencia revisada por pares CVPR en 2016. [ 4 ] El artículo original utilizó una arquitectura VGG-19 [ 5 ] que ha sido preentrenada para realizar el reconocimiento de objetos utilizando el conjunto de datos ImageNet .
En 2017, Google AI presentó un método [ 6 ] que permite que una única red neuronal convolucional profunda de transferencia de estilo aprenda múltiples estilos simultáneamente. Este algoritmo permite la interpolación de estilos en tiempo real, incluso en contenido de vídeo.
Matemáticas

Esta sección sigue fielmente el artículo original. [ 4 ]
Descripción general
La idea de la transferencia de estilo neuronal (NST) es tomar dos imágenes: una imagen de contenidoy una imagen de estilo—y generar una tercera imagenque minimiza una combinación ponderada de dos funciones de pérdida: una pérdida de contenidoy una pérdida de estilo.
La pérdida total es una suma lineal de las dos:Al minimizar conjuntamente las pérdidas de contenido y estilo, NST genera una imagen que combina el contenido de la imagen de contenido con el estilo de la imagen de estilo.
Tanto la pérdida de contenido como la pérdida de estilo miden la similitud entre dos imágenes. La similitud de contenido es la suma ponderada de las diferencias al cuadrado entre las activaciones neuronales de una única red neuronal convolucional (CNN) en dos imágenes. La similitud de estilo es la suma ponderada de las matrices de Gram dentro de cada capa (véase más abajo para más detalles).
El artículo original utilizaba una red neuronal convolucional VGG-19 , pero el método funciona con cualquier red neuronal convolucional.
Símbolos
Dejarser una imagen de entrada para una CNN.
Dejarsea la matriz de respuestas de filtro en la capaa la imagen, dónde:
- es el número de filtros en la capa ;
- es la altura multiplicada por el ancho (es decir, el número de píxeles) de cada filtro en la capa. ;
- es la activación de lafiltro en la posiciónen capa.
Una imagen de entrada dadaCada capa de la CNN está codificada por las respuestas del filtro a esa imagen, y las capas superiores codifican características más globales, pero pierden detalles sobre las características locales.
pérdida de contenido
Dejarser una imagen original.ser una imagen que se genera para coincidir con el contenido de. Dejarsea la matriz de respuestas de filtro en la capaa la imagen.
La pérdida de contenido se define como la pérdida de error cuadrático entre las representaciones de características de la imagen generada y la imagen de contenido en una capa elegida.de una CNN: dóndeyson las activaciones de lafiltro en la posiciónen capapara las imágenes generadas y de contenido, respectivamente. Minimizar esta pérdida fomenta que la imagen generada tenga un contenido similar al de la imagen de contenido, tal como lo capturan las activaciones de características en la capa elegida.
La pérdida total de contenido es una suma lineal de las pérdidas de contenido de cada capa:, donde elson números reales positivos elegidos como hiperparámetros.
Pérdida de estilo
La pérdida de estilo se basa en las matrices de Gram de las imágenes generadas y de estilo, que capturan las correlaciones entre las diferentes respuestas de los filtros en las diferentes capas de la CNN: dónde Aquí,yson las entradas de las matrices de Gram para las imágenes generadas y de estilo en la capaExplícitamente,
Minimizar esta pérdida favorece que la imagen generada tenga características de estilo similares a la imagen de referencia, tal como se refleja en las correlaciones entre las respuestas de las características en cada capa. La idea es que las correlaciones del patrón de activación entre los filtros de una misma capa capturan el "estilo" en función de los campos receptivos de esa capa.
De manera similar al caso anterior, elson números reales positivos elegidos como hiperparámetros.
Hiperparámetros
En el artículo original, utilizaron una selección particular de hiperparámetros.
La pérdida de estilo se calcula mediantepara las salidas de las capas conv1_1, conv2_1, conv3_1, conv4_1, conv5_1en la red VGG-19, y cero en caso contrario. La pérdida de contenido se calcula mediantepara conv4_2, y cero en caso contrario.
La proporción.
Capacitación
Imagense aproxima inicialmente añadiendo una pequeña cantidad de ruido blanco a la imagen de entrada.y alimentándolo a través de la CNN. Luego retropropagamos sucesivamente esta pérdida a través de la red con los pesos de la CNN fijos para actualizar los píxeles deDespués de varios miles de épocas de entrenamiento, un(con suerte) surge algo que se ajusta al estilo dey el contenido de.
A partir de 2017, cuando se implementa en una GPU , tarda unos minutos en converger. [ 8 ]
Extensiones
En algunas implementaciones prácticas, se observa que la imagen resultante tiene demasiados artefactos de alta frecuencia, que pueden suprimirse sumando la variación total a la pérdida total. [ 9 ]
En comparación con VGGNet, AlexNet no funciona bien para la transferencia de estilo neuronal. [ 10 ]
NST también se ha extendido a los vídeos. [ 11 ]
Trabajos posteriores mejoraron la velocidad de NST para imágenes mediante el uso de normalizaciones de propósito especial . [ 12 ] [ 8 ]
En un artículo de Fei-Fei Li et al., adoptaron una métrica de pérdida regularizada diferente y un método acelerado para el entrenamiento con el fin de producir resultados en tiempo real (tres órdenes de magnitud más rápido que Gatys). [ 13 ] Su idea era utilizar no la pérdida basada en píxeles definida anteriormente, sino una "pérdida perceptual" que midiera las diferencias entre capas de nivel superior dentro de la CNN. Utilizaron una CNN de convolución-deconvolución simétrica. El entrenamiento utiliza una función de pérdida similar al método NST básico, pero también regulariza la salida para suavizarla utilizando una pérdida de variación total (TV). Una vez entrenada, la red puede utilizarse para transformar una imagen al estilo utilizado durante el entrenamiento, utilizando una sola pasada de propagación hacia adelante de la red. Sin embargo, la red está restringida al único estilo en el que ha sido entrenada. [ 13 ]
En un trabajo de Chen Dongdong et al. exploraron la fusión de información de flujo óptico en redes de alimentación directa para mejorar la coherencia temporal de la salida. [ 14 ]
Más recientemente, se han explorado métodos NST basados en transformaciones de características para una estilización rápida que no están acoplados a un único estilo específico y permiten la mezcla de estilos controlable por el usuario , por ejemplo, la transformación de blanqueamiento y coloración (WCT). [ 15 ]
Referencias
- ↑ Hertzmann, Aaron; Jacobs, Charles E.; Oliver, Nuria; Curless, Brian; Salesin, David H. (agosto de 2001). «Analogías de imágenes» . Actas de la 28.ª conferencia anual sobre gráficos por computadora y técnicas interactivas . ACM. págs. 327–340 . doi : 10.1145/383259.383295 . ISBN 978-1-58113-374-5.
- ↑ Efros, Alexei A.; Freeman, William T. (agosto de 2001). «Image quilting for texture synthesis and transfer» . Actas de la 28.ª conferencia anual sobre gráficos por computadora y técnicas interactivas . ACM. págs. 341–346 . doi : 10.1145/383259.383296 . ISBN 978-1-58113-374-5.
- ↑ Gatys, Leon A.; Ecker, Alexander S.; Bethge, Matthias (26 de agosto de 2015). "Un algoritmo neuronal de estilo artístico". arXiv : 1508.06576 [ cs.CV ].
- 1 2 Gatys, Leon A.; Ecker, Alexander S.; Bethge, Matthias (2016). Transferencia de estilo de imagen mediante redes neuronales convolucionales . Conferencia IEEE sobre visión por computadora y reconocimiento de patrones (CVPR). págs. 2414–2423 .
- ↑ "Redes neuronales convolucionales muy profundas para el reconocimiento visual a gran escala" . Robots.ox.ac.uk . 2014. Consultado el 13 de febrero de 2019 .
- ↑ Dumoulin, Vincent; Shlens, Jonathon S.; Kudlur, Manjunath (9 de febrero de 2017). "Una representación aprendida para el estilo artístico". arXiv : 1610.07629 [ cs.CV ].
- ↑ Zhang, Aston; Lipton, Zachary; Li, Mu; Smola, Alexander J. (2024). "14.12. Transferencia de estilo neuronal" . Sumérgete en el aprendizaje profundo . Cambridge, Nueva York, Puerto Rico, Melbourne, Nueva Delhi, Singapur: Cambridge University Press. ISBN 978-1-009-38943-3.
- 1 2 Huang, Xun; Belongie, Serge (2017). "Transferencia de estilo arbitraria en tiempo real con normalización de instancia adaptativa" . ICCV : 1501–1510 . arXiv : 1703.06868 .
- ^ Jing, Yongcheng; Yang, Yezhou; Feng, Zunlei; Sí, Jingwen; Yu, Yizhou; Canción, Mingli (1 de noviembre de 2020). "Transferencia de estilo neuronal: una revisión". Transacciones IEEE sobre visualización y gráficos por computadora . 26 (11): 3365–3385 . arXiv : 1705.04058 . Código Bib : 2020ITVCG..26.3365J . doi : 10.1109/TVCG.2019.2921336 . ISSN 1077-2626 . PMID 31180860 .
- ↑ "Transferencia de estilo neuronal con aprendizaje profundo | Blog de Dawars" . dawars.me . Consultado el 23 de septiembre de 2024 .
- ↑ Ruder, Manuel; Dosovitskiy, Alexey; Brox, Thomas (2016). «Transferencia de estilo artístico para vídeos». Reconocimiento de patrones . Notas de clase en informática. Vol. 9796. pp. 26–36 . arXiv : 1604.08610 . doi : 10.1007/978-3-319-45886-1_3 . ISBN 978-3-319-45885-4. S2CID 47476652 .
- ↑ Ulyanov, Dmitry; Vedaldi, Andrea; Lempitsky, Victor (2017-11-06). "Normalización de instancias: el ingrediente que falta para una estilización rápida". arXiv : 1607.08022 [ cs.CV ].
- 1 2 Johnson, Justin; Alahi, Alexandre; Li, Fei-Fei (2016). "Pérdidas perceptuales para transferencia de estilo en tiempo real y superresolución". arXiv : 1603.08155 [ cs.CV ].
- ^ Chen, Dongdong; Liao, Jing; Yuan, Lu; Yu, Nenghai; Hua, pandilla (2017). "Transferencia coherente de estilos de vídeo en línea". arXiv : 1703.09211 [ cs.CV ].
- ^ Li, Yijun; Colmillo, Chen; Yang, Jimei; Wang, Zhaowen; Lu, Xin; Yang, Ming-Hsuan (2017). "Transferencia de estilo universal mediante transformaciones de funciones". arXiv : 1705.08086 [ cs.CV ].
- Algoritmos
- Aprendizaje profundo