CNN: transferencia de estilo neuronal

Jul 25 2022
Sathya Krishnan Suresh, Shunmupapriya P En este artículo, discutiremos un tema interesante llamado "Transferencia de estilo neuronal", que es un método que se puede usar para generar nuevas imágenes cuyo estilo y contenido provienen de dos imágenes separadas. Este artículo está basado en A Neural Algorithm of Artistic Style de Leon A Gatys et al, donde el autor da una explicación detallada sobre la generación de una nueva imagen usando las capas de Convolutional Neural Network (CNN).

Sathya Krishnan Suresh , Shunmupapriya P.

En este artículo, discutiremos sobre un tema interesante llamado "Transferencia de estilo neuronal", que es un método que se puede usar para generar nuevas imágenes cuyo estilo y contenido provienen de dos imágenes separadas. Este artículo está basado en A Neural Algorithm of Artistic Style de Leon A Gatys et al, donde el autor da una explicación detallada sobre la generación de una nueva imagen usando las capas de Convolutional Neural Network (CNN). El código presentado en este artículo se puede encontrar aquí . Ha sido adaptado del sitio web de tensorflow .

Conceptos básicos de CNN:
antes de comenzar a mezclar imágenes y crear arte, primero comprendamos los conceptos básicos de CNN, que es absolutamente necesario para comprender el tema. Tenga en cuenta que esto será solo una breve descripción general de los conceptos básicos de CNN.

Las redes neuronales convolucionales (CNN) son modelos de aprendizaje profundo que se componen de múltiples capas convolucionales. Estas capas se utilizan para extraer diversa información de una imagen que se utiliza para resolver el problema en cuestión, es decir, clasificación de imágenes, detección de objetos, etc. Las capas convolucionales extraen la información mediante el uso de múltiples filtros para cada capa convolucional que genera mapas de características que representan alguna característica de la imagen.

Cada filtro utiliza un kernel que es una ventana deslizante bidimensional que se desliza sobre la imagen o el mapa de características según su posición en la arquitectura de la CNN. A medida que el núcleo se desliza sobre los mapas de características de la capa anterior, produce mapas de características que resultan de la multiplicación vectorial de los pesos del núcleo y los valores de la posición del mapa de características sobre el que se desliza. Las capas inferiores de una CNN capturan la información más general asociada con una imagen, como la forma de los bordes, etc. A medida que se desplaza por la red, encontrará que las capas superiores combinan las características de bajo nivel capturadas por las capas inferiores. y las capas superiores identifican características específicas de una imagen como la presencia de una nariz, las abolladuras en un automóvil, etc.

Capas de estilo y contenido:
Cada imagen tiene un contenido y un estilo. Por ejemplo, considere la siguiente imagen de un perro. El contenido de la imagen es el perro y el estilo de la imagen es la textura de la imagen, el color de la imagen, cómo se organiza la imagen y cómo se coloca el perro en la imagen.

Una CNN identifica el estilo, el contenido y muchas otras características de una imagen y la información que representa estas capas se almacena en los mapas de características del modelo CNN. En este artículo, nos centramos en aquellas capas que representan el estilo y el contenido de esta imagen.

Por lo general, las capas inferiores capturan bien el contenido de una imagen, porque hay poco procesamiento de la imagen en las capas inferiores y la imagen estará más o menos presente en su forma original. Las capas superiores de una arquitectura capturan bien el estilo de una imagen, porque combinan la información capturada en los niveles inferiores y generalmente tienen una buena idea sobre el estilo de una imagen.

En este artículo, la arquitectura que usaremos es el modelo VGG19, que es un modelo ganador de ILSVRC. Los autores del artículo han identificado 5 capas del modelo que representan bien el estilo del modelo y 1 capa que representa bien el contenido del modelo. Las capas del modelo se muestran en la siguiente imagen y las capas seleccionadas como capas de estilo y contenido se mencionan en la parte inferior.

Gram Matrix:
una última cosa que debe comprender antes de comenzar a mezclar las imágenes es cómo se captura el estilo a partir de múltiples mapas de características de una capa. Resulta que el estilo de una imagen se puede representar mediante las medias y las correlaciones de los múltiples mapas de características de una capa. Es por eso que se usa una matriz de gramos. Una Matriz Gram se calcula usando la siguiente fórmula,

Aquí F representa un mapa de características, "jc" y "jd" representan las dimensiones del mapa de características, que serán las mismas para mapas de características de la misma capa e "i" representa qué mapa de características de la capa "l" se está multiplicando . Se han discutido todos los conceptos necesarios para entender lo que vamos a hacer. Empecemos a mezclar imágenes ahora.

Transferencia de estilo:
lo primero que tenemos que hacer es obtener los resultados producidos por las capas de estilo y contenido del modelo VGG19 mencionado anteriormente. Esto se puede hacer construyendo un modelo personalizado que nos dará los resultados de estas capas. La siguiente figura muestra cómo obtener los resultados requeridos.

En la figura anterior, cargamos primero el modelo VGG19, excluyendo las capas superiores. Pasamos los nombres de las capas cuyas salidas requerimos como argumentos y luego construimos un modelo personalizado que pasa su entrada al modelo VGG19 y nos devuelve las salidas producidas por ellos. La función devuelve el modelo.

Se ha elegido la pintura de Kandinsky como imagen de estilo con la que combinaremos la imagen del labrador.

Los pasos que seguiremos para convertir esta imagen son sencillos. Primero extraeremos el contenido y estilo de la imagen de contenido y luego extraeremos el estilo de la imagen de estilo (pintura de Kandinsky). Luego intentaremos convertir el estilo de la imagen de contenido en el estilo de la imagen de estilo. El proceso de conversión del estilo se realiza calculando primero la pérdida cuadrática media entre el objetivo (salida de las capas de estilo de la imagen de Kandinsky) y las salidas de la capa de estilo de la imagen de contenido. Luego, se calcula el gradiente de esta pérdida con respecto a la imagen de contenido, después de lo cual se modifican los valores de las capas de estilo de la imagen de estilo para estar más cerca del valor objetivo, que son los valores de las capas de estilo de la imagen de Kandinsky. Los pasos mencionados anteriormente se muestran a continuación.

Se crea un modelo personalizado para anotar la salida de las capas de estilo y contenido por los nombres de las capas y devuelve un diccionario como salida que contiene anotaciones de estilo y contenido. Puede ver que las salidas de las capas de estilo se pasan a una matriz de gramo antes de que se devuelvan.

El cálculo de pérdidas se muestra en la siguiente figura. Puede ver que se calcula el error cuadrático medio para el estilo y el contenido y se devuelve su suma ponderada. El peso del contenido suele ser mayor, ya que el objetivo del contenido es el mismo que la salida de las capas de contenido. El peso del estilo es siempre pequeño.

Finalmente, las dos funciones importantes que mezclarán las imágenes se muestran a continuación. La función run_gradient rastrea las salidas y las variables de pérdida y ejecuta el descenso de gradiente en las capas de estilo y contenido. La función de mezcla se utiliza para determinar cuánto estilo de la imagen de Kandinsky queremos en la imagen de nuestro labrador.

Cuando se ejecute el modelo, se obtendrá el siguiente resultado, que es una hermosa combinación de la imagen de contenido y la imagen de estilo.

Conclusión:
En este artículo, vimos el fascinante concepto de transferencia de estilo. Los próximos artículos se centrarán en impulsar y ensamblar. Si te ha gustado el artículo aplaude, suscríbete y comenta.

Sugerencias de envío de Mlearning.ai

© Copyright 2021 - 2022 | unogogo.com | All Rights Reserved