Neural Style Transfer
Neural Style Transfer überträgt den Inhalt eines Fotos in den Stil eines anderen Bildes, indem die Statistiken der CNN-Merkmale angeglichen werden. Behandelt werden die Methode von Gatys, schnelle Modelle und Anwendungsbereiche.
Neuronale Stilübertragung (NST) ist eine Computer-Vision-Technik, mit der der Inhalt eines Bildes, etwa das Foto einer Straße, im visuellen Stil eines anderen Bildes, etwa eines Gemäldes, dargestellt wird. Dazu werden die internen Merkmale eines vortrainierten Faltungsnetzes (CNN) abgeglichen. Der Inhalt wird durch die Merkmalskarten einer tiefen Schicht erfasst, die festhalten, was wo zu sehen ist. Der Stil wird durch die Korrelationen zwischen Merkmalskanälen erfasst. Sie bilden Texturen, Farben und Pinselstriche ab, lassen deren Anordnung aber außer Acht. Leon Gatys, Alexander Ecker und Matthias Bethge von der Universität Tübingen stellten die Methode im August 2015 in A Neural Algorithm of Artistic Style vor. Im Jahr darauf brachte die App Prisma sie auf Smartphones.
So funktioniert die ursprüngliche Methode#
Gatys’ Methode verwendet VGG-19, ein auf ImageNet trainiertes CNN, als festen Merkmalsextraktor. Dabei werden die Pixel des Ausgabebildes verändert, nicht die Gewichte des Netzes. Zwei Verlustfunktionen bestimmen das Ergebnis:
- Inhaltsverlust: Die quadrierte Differenz zwischen den Merkmalskarten des Ausgabebildes und des Inhaltsfotos an einer tiefen Schicht, conv4_2. Dadurch bleiben Objekte und Bildaufbau erkennbar.
- Stilverlust: Die quadrierte Differenz zwischen Gram-Matrizen an fünf Schichten von conv1_1 bis conv5_1. Für eine Schicht mit C Kanälen ist die Gram-Matrix eine C x C große Tabelle. Ihr Eintrag (i, j) misst, wie stark die Kanäle i und j gemeinsam reagieren, summiert über alle Positionen im Bild.
Eine gewichtete Summe der beiden Verluste wird mit dem Optimierungsalgorithmus L-BFGS minimiert. Die Rückpropagierung leitet den Gradienten durch das eingefrorene Netz zurück zu den Pixeln:
Da die Gram-Matrix über Positionen summiert, ändert sie sich kaum, wenn sich der Bildaufbau ändert. Ein Beispiel mit vertauschten Bildquadranten veranschaulicht dies anhand von ResNet-18 aus torchvision – einem kleineren ImageNet-CNN als VGG-19 – in 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%}")Das Vertauschen der Quadranten verändert die Merkmalskarte um 96 %, die Gram-Matrix jedoch nur um 7 %. Die verbleibenden 7 % entstehen durch die neuen Übergänge und den mittigen Zuschnitt, der jeweils einen anderen Bildausschnitt beibehält. Deshalb übernimmt der Stilverlust die Pinselführung und Farbpalette eines Gemäldes, ohne die Anordnung der dargestellten Elemente zu kopieren.
Schnelle und beliebige Stilübertragung#
Die Optimierung jedes Bildes erfordert Hunderte von Iterationen. Spätere Arbeiten verlagerten die Optimierung deshalb ins Training. Justin Johnson, Alexandre Alahi und Li Fei-Fei von Stanford trainierten 2016 für jeden Stil ein neuronales Netz mit Vorwärtsdurchlauf und denselben Verlustfunktionen. Dadurch entstanden Ergebnisse etwa drei Größenordnungen schneller. Dieselben wahrnehmungsbasierten Verluste verwendeten sie auch für die Superauflösung. Dmitry Ulyanov und Kollegen stellten fest, dass der Ersatz von Batch-Normalisierung durch Instanznormalisierung in diesen Netzen die Qualität der Stilübertragung verbesserte. Die adaptive Instanznormalisierung (AdaIN, 2017) von Xun Huang und Serge Belongie verarbeitet jeden Stil ohne erneutes Training: Sie passt Mittelwert und Standardabweichung jedes Merkmalskanals des Inhalts an das Stilbild an und dekodiert anschließend das Ergebnis. Das Verfahren läuft in Echtzeit.
Stilübertragung für robuste Bildverarbeitungsmodelle#
Robert Geirhos und Kollegen nutzten AdaIN, um zu zeigen, dass auf ImageNet trainierte CNNs sich stärker auf Texturen als auf Formen stützen: Ein ResNet-50 klassifiziert ein Bild einer Katze mit Elefantenhaut-Textur als Elefant – eine Form des Abkürzungslernens. Für Stylized-ImageNet wurde jedes ImageNet-Bild mit einem zufälligen Gemälde aus der Sammlung Painter by Numbers mit 79.434 Gemälden neu gestaltet. Ein darauf trainiertes ResNet-50 stützte sich stattdessen auf Formen. Als Rückgrat eines Faster-R-CNN-Modells zur Objekterkennung erhöhte dieses formbasierte Netz den mAP50 auf Pascal VOC 2007 von 70,7 auf 75,1 und auf MS COCO von 52,3 auf 55,2.
Dieselbe Idee eignet sich als Datenerweiterung für Erkennungsdatensätze, da die Stilübertragung jedes Objekt an seiner ursprünglichen Position belässt. Eine stilisierte Kopie eines annotierten Bildes verwendet dieselben Begrenzungsrahmen wie das Original. In einem Ultralytics YOLO26-Erkennungsdatensatz braucht sie daher nur eine Kopie der ursprünglichen Labeldatei unter dem neuen Bildnamen.
Neuronale Stilübertragung und verwandte Begriffe#
- Generative adversarielle Netze (GANs): CycleGAN lernt eine Abbildung zwischen ganzen Bildsammlungen, etwa Fotos und Monet-Gemälden, anstatt die Statistiken eines einzelnen Stilbildes abzugleichen.
- Transferlernen: Passt vortrainierte Gewichte für eine neue Aufgabe feinab. Bei NST werden die Gewichte des Netzes nie aktualisiert; das Netz dient lediglich zur Berechnung der Verluste.
- Diffusionsmodelle: Gestalten Bilder anhand eines Text-Prompts oder Referenzbildes neu, indem sie sie erneut erzeugen. Dabei können sich neben dem Stil auch Formen und Details ändern.










