Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Neural Style Transfer

Il trasferimento neurale di stile ridisegna il contenuto di una foto nello stile di un'altra immagine, allineando le statistiche delle caratteristiche di una CNN. Panoramica del metodo di Gatys, dei modelli rapidi e degli impieghi.

Il trasferimento neurale dello stile (NST) è una tecnica di visione artificiale che riproduce il contenuto di un’immagine, come una foto di una strada, nello stile visivo di un’altra, come un dipinto, abbinando le caratteristiche interne di una rete neurale convoluzionale (CNN) preaddestrata. Il contenuto è rappresentato dalle mappe di caratteristiche di un livello profondo, che registrano cosa appare e dove. Lo stile è rappresentato dalle correlazioni tra i canali delle caratteristiche, che registrano trame, colori e pennellate, ma ne ignorano la disposizione. Leon Gatys, Alexander Ecker e Matthias Bethge dell’Università di Tubinga hanno presentato il metodo nell’agosto 2015 in A Neural Algorithm of Artistic Style, e l’anno successivo l’app Prisma lo ha portato sugli smartphone.

Come funziona il metodo originale#

Il metodo di Gatys usa VGG-19, una CNN addestrata su ImageNet, come estrattore di caratteristiche fisso e modifica i pixel dell’immagine di output invece dei pesi della rete. Il risultato è guidato da due funzioni di perdita:

  • Perdita del contenuto: La differenza al quadrato tra le mappe di caratteristiche dell’output e quelle della foto di contenuto in un livello profondo, conv4_2, che mantiene riconoscibili gli oggetti e la disposizione.
  • Perdita dello stile: La differenza al quadrato tra le matrici di Gram di cinque livelli, da conv1_1 a conv5_1. Per un livello con C canali, la matrice di Gram è una tabella C x C in cui l’elemento (i, j) misura la correlazione tra le risposte dei canali i e j, sommata su ogni posizione dell’immagine.

Una somma pesata delle due perdite viene minimizzata con l’algoritmo di ottimizzazione L-BFGS, mentre la retropropagazione propaga il gradiente attraverso la rete congelata fino ai pixel:

Poiché la matrice di Gram somma i valori sulle posizioni, cambia pochissimo quando cambia la disposizione dell’immagine. Lo scambio dei quadranti di una foto lo mostra con ResNet-18 di torchvision, una CNN per ImageNet più piccola di 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%}")

Lo scambio dei quadranti modifica la mappa di caratteristiche del 96%, ma la matrice di Gram solo del 7%; quel 7% residuo deriva dalle nuove giunzioni e dal ritaglio centrale, che conserva una parte diversa di ogni immagine. Ecco perché la perdita dello stile copia le pennellate e la tavolozza di un dipinto senza copiarne la disposizione.

Trasferimento rapido e arbitrario dello stile#

Ottimizzare ogni immagine richiede centinaia di iterazioni, quindi i lavori successivi hanno trasferito l’ottimizzazione nella fase di addestramento. Nel 2016 Justin Johnson, Alexandre Alahi e Li Fei-Fei di Stanford hanno addestrato una rete feed-forward per ogni stile usando le stesse perdite, ottenendo risultati circa tre ordini di grandezza più rapidi, e hanno applicato le stesse perdite percettive alla super-risoluzione. Dmitry Ulyanov e i colleghi hanno scoperto che sostituire la normalizzazione dei batch con la normalizzazione per istanza in quelle reti migliorava la qualità della stilizzazione. La normalizzazione adattiva per istanza di Xun Huang e Serge Belongie (AdaIN, 2017) gestisce qualsiasi stile senza riaddestramento: modifica media e deviazione standard di ogni canale delle caratteristiche del contenuto per farle corrispondere a quelle dell’immagine di stile, poi decodifica il risultato, il tutto in tempo reale.

Trasferimento dello stile per modelli di visione robusti#

Robert Geirhos e i colleghi hanno usato AdaIN per dimostrare che le CNN addestrate su ImageNet si basano più sulla trama che sulla forma: ResNet-50 classifica come elefante l’immagine di un gatto con la trama della pelle di elefante, un esempio di apprendimento di scorciatoie. Il loro Stylized-ImageNet ha rielaborato ogni immagine di ImageNet con un dipinto casuale scelto dalla raccolta Painter by Numbers, composta da 79.434 dipinti; una ResNet-50 addestrata su questo dataset si basava invece sulla forma. Usando tale rete basata sulla forma come backbone di un modello Faster R-CNN per il rilevamento di oggetti, il mAP50 è aumentato da 70,7 a 75,1 su Pascal VOC 2007 e da 52,3 a 55,2 su MS COCO.

La stessa idea funziona come aumento dei dati per i dataset di rilevamento, perché il trasferimento dello stile mantiene ogni oggetto nella posizione originale. Una copia stilizzata di un’immagine etichettata riutilizza i riquadri di delimitazione originali; quindi, in un dataset di rilevamento Ultralytics YOLO26, richiede solo una copia del file di etichette originale con il nuovo nome dell’immagine.

  • Reti generative avversarie (GAN): CycleGAN apprende una mappatura tra intere raccolte di immagini, come fotografie e dipinti di Monet, invece di abbinare le statistiche di una singola immagine di stile.
  • Apprendimento per trasferimento: Ottimizza tramite fine-tuning i pesi preaddestrati per un nuovo compito. L’NST non aggiorna mai i pesi della rete e la usa solo per misurare le perdite.
  • Modelli di diffusione: Rielaborano le immagini a partire da un prompt testuale o da un’immagine di riferimento rigenerandole, un processo che può modificare forme e dettagli insieme allo stile.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning