Articulo de referencia

Transferencia de estilo neuronal

Transferencia de estilo neuronal aplicada a la Mona Lisa : La noche estrellada Mujer con sombrero La gran ola de Kanagawa Los algoritmos de transferencia de estilo neuronal ( NS...

Transferencia de estilo neuronal aplicada a la Mona Lisa :

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

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 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 contenidopag{\displaystyle {\vec {p}}}y una imagen de estiloa{\displaystyle {\vec {a}}}—y generar una tercera imagenincógnita{\displaystyle {\vec {x}}}que minimiza una combinación ponderada de dos funciones de pérdida: una pérdida de contenidoLcontenido (pag,incógnita){\displaystyle {\mathcal {L}}_{\text{content }}({\vec {p}},{\vec {x}})}y una pérdida de estiloLestilo (a,incógnita){\displaystyle {\mathcal {L}}_{\text{estilo }}({\vec {a}},{\vec {x}})}.

La pérdida total es una suma lineal de las dos:LNST(pag,a,incógnita)=αLcontenido(pag,incógnita)+βLestilo(a,incógnita){\displaystyle {\mathcal {L}}_{\text{NST}}({\vec {p}},{\vec {a}},{\vec {x}})=\alpha {\mathcal {L}}_{\text{content}}({\vec {p}},{\vec {x}})+\beta {\mathcal {L}}_{\text{style}}({\vec {a}},{\vec {x}})}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

Dejarincógnita{\textstyle {\vec {x}}}ser una imagen de entrada para una CNN.

DejarFlRnortel×METROl{\textstyle F^{l}\in \mathbb {R} ^{N_{l}\times M_{l}}}sea ​​la matriz de respuestas de filtro en la capal{\textstyle l}a la imagenincógnita{\textstyle {\vec {x}}}, dónde:

  • nortel{\textstyle N_{l}}es el número de filtros en la capal{\textstyle l} ;
  • METROl{\textstyle M_{l}}es la altura multiplicada por el ancho (es decir, el número de píxeles) de cada filtro en la capa.l{\textstyle l} ;
  • Fijl(incógnita){\textstyle F_{ij}^{l}({\vec {x}})}es la activación de laiel{\textstyle i^{\text{th}}}filtro en la posiciónj{\textstyle j}en capal{\textstyle l}.

Una imagen de entrada dadaincógnita{\textstyle {\vec {x}}}Cada 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

Dejarpag{\textstyle {\vec {p}}}ser una imagen original.incógnita{\textstyle {\vec {x}}}ser una imagen que se genera para coincidir con el contenido depag{\textstyle {\vec {p}}}. DejarPAGl{\textstyle P^{l}}sea ​​la matriz de respuestas de filtro en la capal{\textstyle l}a la imagenpag{\textstyle {\vec {p}}}.

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.l{\displaystyle l}de una CNN: Lcontenido (pag,incógnita,l)=12i,j(Aijl(incógnita)Aijl(pag))2{\displaystyle {\mathcal {L}}_{\text{content }}({\vec {p}},{\vec {x}},l)={\frac {1}{2}}\sum _{i,j}\left(A_{ij}^{l}({\vec {x}})-A_{ij}^{l}({\vec {p}})\right)^{2}} dóndeAijl(incógnita){\displaystyle A_{ij}^{l}({\vec {x}})}yAijl(pag){\displaystyle A_{ij}^{l}({\vec {p}})}son las activaciones de laiel{\displaystyle i^{\text{th}}}filtro en la posiciónj{\displaystyle j}en capal{\displaystyle l}para 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:Lcontenido (pag,incógnita)=lvlLcontenido (pag,incógnita,l){\displaystyle {\mathcal {L}}_{\text{content }}({\vec {p}},{\vec {x}})=\sum _{l}v_{l}{\mathcal {L}}_{\text{content }}({\vec {p}},{\vec {x}},l)}, donde elvl{\displaystyle v_{l}}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 las diferentes respuestas de los filtros en las diferentes capas de la CNN: Lestilo (a,incógnita)=l=0Lwlmil,{\displaystyle {\mathcal {L}}_{\text{estilo }}({\vec {a}},{\vec {x}})=\sum _ {l=0}^{L}w_{l}E_{l},} dónde mil=14nortel2METROl2i,j(GRAMOijl(incógnita)GRAMOijl(a))2.{\displaystyle E_{l}={\frac {1}{4N_{l}^{2}M_{l}^{2}}}\sum _{i,j}\left(G_{ij}^{l}({\vec {x}})-G_{ij}^{l}({\vec {a}})\right)^{2}.}Aquí,GRAMOijl(incógnita){\displaystyle G_{ij}^{l}({\vec {x}})}yGRAMOijl(a){\displaystyle G_{ij}^{l}({\vec {a}})}son las entradas de las matrices de Gram para las imágenes generadas y de estilo en la capal{\displaystyle l}Explícitamente,GRAMOijl(incógnita)=kFikl(incógnita)Fjkl(incógnita){\displaystyle G_{ij}^{l}({\vec {x}})=\sum _{k}F_{ik}^{l}({\vec {x}})F_{jk}^{l}({\vec {x}})}

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, elwl{\displaystyle w_{l}}son 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 mediantewl=0,2{\displaystyle w_{l}=0.2}para 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 mediantewl=1{\displaystyle w_{l}=1}para conv4_2, y cero en caso contrario.

La proporciónα/β[5,50]×104{\displaystyle \alpha /\beta \in [5,50]\times 10^{-4}}.

Capacitación

Imagenincógnita{\displaystyle {\vec {x}}}se aproxima inicialmente añadiendo una pequeña cantidad de ruido blanco a la imagen de entrada.pag{\displaystyle {\vec {p}}}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 deincógnita{\displaystyle {\vec {x}}}Después de varios miles de épocas de entrenamiento, unincógnita{\displaystyle {\vec {x}}}(con suerte) surge algo que se ajusta al estilo dea{\displaystyle {\vec {a}}}y el contenido depag{\displaystyle {\vec {p}}}.

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

  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 computadora 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). «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.
  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. 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 . 
  5. "Redes neuronales convolucionales muy profundas para el 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 aprendida para el 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érgete en el aprendizaje profundo . Cambridge, Nueva York, Puerto Rico, Melbourne, Nueva Delhi, Singapur: Cambridge University Press. ISBN 978-1-009-38943-3.
  8. 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 .
  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 . Código Bib : 2020ITVCG..26.3365J . doi : 10.1109/TVCG.2019.2921336 . ISSN 1077-2626 . PMID 31180860 .  
  10. "Transferencia de estilo neuronal 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 . 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 . 
  12. 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 ].
  13. 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 ].
  14. ^ 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 ].
  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 ].