stringtranslate.com

Transferencia de estilo neuronal

Transferencia de estilo neuronal aplicada a la Mona Lisa :

La transferencia de estilo neuronal ( NST , por sus siglas en inglés) se refiere a una clase de algoritmos de software que manipulan imágenes digitales o videos para adoptar la apariencia o el estilo visual de otra imagen. Los algoritmos NST se caracterizan por el uso de redes neuronales profundas para la transformación de imágenes. Los usos comunes de NST son 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 notables utilizan técnicas NST para este propósito, incluidas DeepArt y Prisma . Este método ha sido utilizado por artistas y diseñadores de todo el mundo para desarrollar nuevas obras de arte basadas en estilos 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 representación no fotorrealista . Los dos primeros algoritmos de transferencia de estilo basados ​​en ejemplos fueron las analogías de imágenes [1] y el acolchado de imágenes [2] . Ambos métodos se basaban en algoritmos de síntesis de texturas basados ​​en parches .

Dado un par de imágenes de entrenamiento (una foto y una ilustración que represente esa foto), se podría aprender una transformación y luego aplicarla para crear una nueva ilustración a partir de una nueva foto, por analogía. Si no se dispone de una foto de entrenamiento, sería necesario producirla procesando la ilustración de entrada; el acolchado de imágenes no requirió este paso de procesamiento, aunque se demostró en un solo estilo.

NST se publicó por primera vez en el artículo "Un algoritmo neuronal de estilo artístico" de Leon Gatys et al., publicado originalmente en ArXiv 2015, [3] y posteriormente aceptado por la conferencia CVPR revisada por pares en 2016. [4] El artículo original utilizó una arquitectura VGG-19 [5] que ha sido entrenada previamente para realizar el reconocimiento de objetos utilizando el conjunto de datos ImageNet .

En 2017, Google AI introdujo un método [6] que permite que una única red de transferencia de estilos convolucional profunda aprenda varios estilos al mismo tiempo. Este algoritmo permite la interpolación de estilos en tiempo real, incluso cuando se realiza en medios de video.

Matemáticas

Las líneas continuas muestran la dirección de propagación hacia adelante de los datos. Las líneas punteadas muestran la propagación hacia atrás del gradiente de pérdida. [7]

Esta sección sigue de cerca el artículo original. [4]

Descripción general

La idea de la Transferencia de Estilo Neural (NST) es tomar dos imágenes (una imagen de contenido y una imagen de estilo ) y generar una tercera imagen que minimice una combinación ponderada de dos funciones de pérdida: una pérdida de contenido y una pérdida de estilo .

La pérdida total es una suma lineal de los 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 de 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 (consulte los detalles a continuación).

El artículo original utilizó una CNN VGG-19 , pero el método funciona para cualquier CNN.

Símbolos

Sea una imagen de entrada a una CNN.

Sea la matriz de respuestas del filtro en la capa de la imagen , donde:

Una imagen de entrada dada se codifica en cada capa de la CNN mediante las respuestas del filtro a esa imagen, y las capas superiores codifican características más globales, pero pierden detalles de las características locales.

Pérdida de contenido

Sea una imagen original. Sea una imagen que se genera para que coincida con el contenido de . Sea la matriz de respuestas de filtro en la capa de la imagen .

La pérdida de contenido se define como la pérdida de error al cuadrado entre las representaciones de características de la imagen generada y la imagen de contenido en una capa elegida de una CNN: donde y son las activaciones del filtro en la posición en la capa para las imágenes generadas y de contenido, respectivamente. Minimizar esta pérdida fomenta que la imagen generada tenga un contenido similar a la imagen de contenido, tal como se captura mediante 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 son 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 diferentes respuestas de filtro en diferentes capas de la CNN: donde Aquí, y son las entradas de las matrices de Gram para las imágenes generadas y de estilo en la capa . Explícitamente,

Minimizar esta pérdida fomenta que la imagen generada tenga características de estilo similares a la imagen de estilo, como se captura mediante las correlaciones entre las respuestas de las características en cada capa. La idea es que las correlaciones de patrones de activación entre filtros en una sola capa capturen el "estilo" en el orden de los campos receptivos en esa capa.

De manera similar al caso anterior, se eligen números reales positivos como hiperparámetros.

Hiperparámetros

En el artículo original, utilizaron una elección particular de hiperparámetros.

La pérdida de estilo se calcula con para las salidas de las capas , , , , en la red VGG-19 y cero en caso contrario. La pérdida de contenido se calcula con para , y cero en caso contrario.conv1_1conv2_1conv3_1conv4_1conv5_1conv4_2

La proporción .

Capacitación

La imagen se aproxima inicialmente añadiendo una pequeña cantidad de ruido blanco a la imagen de entrada y alimentándola 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 de . Después de varios miles de épocas de entrenamiento, surge un (con suerte) que coincide con el estilo de y 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 se pueden eliminar 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]

El 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 para 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 más bien una "pérdida perceptual" que mide 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 se puede utilizar para transformar una imagen en el estilo utilizado durante el entrenamiento, utilizando un único pase de avance 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 propagación hacia adelante 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 combinación de estilos controlable por el usuario, por ejemplo, la transformación de blanqueamiento y coloración (WCT). [15]

Referencias

  1. ^ 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 ordenador y técnicas interactivas . ACM. págs. 327–340. doi :10.1145/383259.383295. ISBN . 978-1-58113-374-5.
  2. ^ Efros, Alexei A.; Freeman, William T. (agosto de 2001). "Acolchado de imágenes para síntesis y transferencia de texturas". Actas de la 28.ª conferencia anual sobre gráficos por ordenador y técnicas interactivas . ACM. págs. 341–346. doi :10.1145/383259.383296. ISBN 978-1-58113-374-5.
  3. ^ 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].
  4. ^ ab Gatys, Leon A.; Ecker, Alexander S.; Bethge, Matthias (2016). Transferencia de estilo de imagen mediante redes neuronales convolucionales. Conferencia IEEE sobre visión artificial y reconocimiento de patrones (CVPR). págs. 2414–2423.
  5. ^ "CNNS muy profundo para reconocimiento visual a gran escala". Robots.ox.ac.uk . 2014 . Consultado el 13 de febrero de 2019 .
  6. ^ Dumoulin, Vincent; Shlens, Jonathon S.; Kudlur, Manjunath (9 de febrero de 2017). "Una representación erudita del estilo artístico". arXiv : 1610.07629 [cs.CV].
  7. ^ Zhang, Aston; Lipton, Zachary; Li, Mu; Smola, Alexander J. (2024). "14.12. Transferencia de estilo neuronal". Sumérjase en el aprendizaje profundo . Cambridge New York Port Melbourne New Delhi Singapore: Cambridge University Press. ISBN 978-1-009-38943-3.
  8. ^ ab Huang, Xun; Belongie, Serge (2017). "Transferencia de estilo arbitrario en tiempo real con normalización de instancias adaptativa": 1501–1510. arXiv : 1703.06868 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  9. ^ 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 . doi :10.1109/TVCG.2019.2921336. ISSN  1077-2626. PMID  31180860.
  10. ^ "Transferencia de estilos neuronales con aprendizaje profundo | Blog de Dawars". dawars.me . Consultado el 23 de septiembre de 2024 .
  11. ^ Ruder, Manuel; Dosovitskiy, Alexey; Brox, Thomas (2016). "Transferencia de estilo artístico para vídeos". Reconocimiento de patrones . Apuntes de clase en informática. Vol. 9796. págs. 26–36. arXiv : 1604.08610 . doi :10.1007/978-3-319-45886-1_3. ISBN 978-3-319-45885-4.ID S2C  47476652.
  12. ^ Ulyanov, Dmitry; Vedaldi, Andrea; Lempitsky, Victor (6 de noviembre de 2017). "Normalización de instancias: el ingrediente que falta para una estilización rápida". arXiv : 1607.08022 [cs.CV].
  13. ^ ab Johnson, Justin; Alahi, Alexandre; Li, Fei-Fei (2016). "Pérdidas perceptivas para transferencia de estilo en tiempo real y superresolución". arXiv : 1603.08155 [cs.CV].
  14. ^ Chen, Dong Dong; Liao, Jing; Yuan, Lu; Yu, Nenghai; Hua, pandilla (2017). "Transferencia coherente de estilos de vídeo en línea". arXiv : 1703.09211 [cs.CV].
  15. ^ 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].