Neural Style Transfer
La transferencia neuronal de estilo redibuja el contenido de una fotografía con el estilo de otra imagen mediante la comparación de las estadísticas de características de una CNN. Descubre el método de Gatys, los modelos rápidos y sus usos.
La transferencia de estilo neuronal (NST) es una técnica de visión artificial que representa el contenido de una imagen —por ejemplo, una foto de una calle— con el estilo visual de otra —por ejemplo, un cuadro— mediante la comparación de las características internas de una red neuronal convolucional (CNN) preentrenada. El contenido se recoge en los mapas de características de una capa profunda, que registran qué aparece y dónde. El estilo se recoge en las correlaciones entre los canales de características, que registran texturas, colores y pinceladas, pero descartan su disposición. Leon Gatys, Alexander Ecker y Matthias Bethge, de la Universidad de Tubinga, presentaron el método en agosto de 2015 en A Neural Algorithm of Artistic Style, y la aplicación Prisma lo acercó a los usuarios de móviles al año siguiente.
Cómo funciona el método original#
El método de Gatys utiliza VGG-19, una CNN entrenada con ImageNet, como extractor de características fijo, y modifica los píxeles de la imagen de salida en lugar de los pesos de la red. Dos funciones de pérdida guían el resultado:
- Pérdida de contenido: La diferencia al cuadrado entre los mapas de características de la salida y de la foto de contenido en una capa profunda, conv4_2, que mantiene reconocibles los objetos y la composición.
- Pérdida de estilo: La diferencia al cuadrado entre las matrices de Gram de cinco capas, de conv1_1 a conv5_1. Para una capa con C canales, la matriz de Gram es una tabla C x C cuya entrada (i, j) mide la intensidad con la que los canales i y j responden conjuntamente, sumada en todas las posiciones de la imagen.
Se minimiza una suma ponderada de las dos pérdidas mediante el algoritmo de optimización L-BFGS, y la retropropagación lleva el gradiente a través de la red congelada hasta los píxeles:
Como la matriz de Gram suma las posiciones, apenas cambia cuando cambia la composición de la imagen. El intercambio de los cuadrantes de una foto lo demuestra con ResNet-18 de torchvision, una CNN de ImageNet más pequeña que VGG-19, en PyTorch:
import torch
from skimage import data
from torchvision.models import ResNet18_Weights, resnet18
weights = ResNet18_Weights.DEFAULT
cnn = resnet18(weights=weights).eval()
early_layers = torch.nn.Sequential(cnn.conv1, cnn.bn1, cnn.relu, cnn.maxpool, cnn.layer1)
preprocess = weights.transforms()
photo = torch.tensor(data.astronaut()).permute(2, 0, 1) # 3 x 512 x 512
rearranged = torch.roll(photo, shifts=(256, 256), dims=(1, 2)) # same pixels, quadrants swapped
def content_and_style(image):
"""Return an early CNN layer's feature map (content) and its Gram matrix (style)."""
with torch.no_grad():
features = early_layers(preprocess(image)[None])[0].flatten(1) # channels x positions
return features, features @ features.T / features.shape[1]
(content_a, style_a), (content_b, style_b) = content_and_style(photo), content_and_style(rearranged)
print(f"Content change: {(content_a - content_b).norm() / content_a.norm():.0%}")
print(f"Style change: {(style_a - style_b).norm() / style_a.norm():.0%}")El intercambio de los cuadrantes cambia el mapa de características un 96 %, pero la matriz de Gram solo un 7 %. El 7 % restante se debe a las nuevas uniones y al recorte central, que conserva una parte distinta de cada imagen. Por eso, la pérdida de estilo copia las pinceladas y la paleta de un cuadro sin copiar la posición de sus elementos.
Transferencia de estilo rápida y arbitraria#
Optimizar cada imagen requiere cientos de iteraciones, así que los trabajos posteriores incorporaron la optimización al entrenamiento. En 2016, Justin Johnson, Alexandre Alahi y Li Fei-Fei, de Stanford, entrenaron una red de propagación hacia delante por estilo con las mismas pérdidas, lo que produjo resultados unas tres órdenes de magnitud más rápidos, y aplicaron las mismas pérdidas perceptuales a la superresolución. Dmitry Ulyanov y sus colegas descubrieron que sustituir la normalización por lotes por la normalización por instancias en esas redes mejoraba la calidad de la estilización. La normalización adaptativa por instancias (AdaIN, 2017) de Xun Huang y Serge Belongie admite cualquier estilo sin reentrenamiento: ajusta la media y la desviación estándar de cada canal de características del contenido para que coincidan con las de la imagen de estilo y, después, decodifica el resultado en tiempo real.
Transferencia de estilo para modelos de visión robustos#
Robert Geirhos y sus colegas utilizaron AdaIN para demostrar que las CNN entrenadas con ImageNet dependen más de la textura que de la forma: ResNet-50 clasifica como elefante una imagen de un gato con textura de piel de elefante, un ejemplo de aprendizaje basado en atajos. Su conjunto Stylized-ImageNet aplicó a cada imagen de ImageNet un estilo aleatorio de la colección Painter by Numbers, con 79 434 cuadros; una ResNet-50 entrenada con él se basaba en la forma. Usar esa red basada en formas como columna vertebral de un modelo Faster R-CNN de detección de objetos elevó el mAP50 en Pascal VOC 2007 de 70,7 a 75,1 y en MS COCO de 52,3 a 55,2.
La misma idea sirve como aumento de datos para conjuntos de datos de detección, porque la transferencia de estilo mantiene cada objeto en su sitio. Una copia estilizada de una imagen etiquetada reutiliza sus cuadros delimitadores originales, así que, en un conjunto de datos de detección de Ultralytics YOLO26, solo necesita una copia del archivo de etiquetas original con el nuevo nombre de imagen.
Transferencia de estilo neuronal y términos relacionados#
- Redes generativas antagónicas (GANs): CycleGAN aprende una correspondencia entre colecciones de imágenes completas —como fotos y cuadros de Monet— en lugar de comparar las estadísticas de una sola imagen de estilo.
- Aprendizaje por transferencia: Ajusta pesos preentrenados para una tarea nueva. La NST nunca actualiza los pesos de la red y solo la utiliza para medir las pérdidas.
- Modelos de difusión: Cambian el estilo de las imágenes a partir de una instrucción de texto o una imagen de referencia regenerándolas, lo que puede alterar las formas y los detalles, además del estilo.










