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

Neural Rendering

Il rendering neurale sostituisce parti della pipeline grafica con reti neurali per creare immagini e scene 3D apprese dalle fotografie. Metodi e codice.

Il rendering neurale è la generazione di immagini e video con reti neurali che sostituiscono o integrano parti della pipeline tradizionale della grafica computerizzata, mantenendo il controllo su proprietà della scena come il punto di vista della telecamera, l'illuminazione, la geometria e l'aspetto. Il rendering convenzionale calcola un'immagine a partire da modelli 3D, materiali e sorgenti luminose realizzati manualmente, applicando la fisica del trasporto della luce. Il rendering neurale, invece, apprende alcuni di questi elementi da fotografie e video, oppure impara a produrre direttamente i pixel finali. In quanto disciplina, il rendering neurale combina apprendimento automatico generativo con conoscenze fisiche provenienti dalla grafica computerizzata, spesso integrando il rendering differenziabile nell'addestramento delle reti. Il rendering neurale rende possibili acquisizioni 3D fotorealistiche di luoghi reali, upscaling con AI e generazione di fotogrammi nei videogiochi, oltre a simulazioni per la robotica e le auto a guida autonoma.

Come funziona il rendering neurale#

Il ramo più influente apprende una scena 3D da normali fotografie. Una rappresentazione della scena, come una rete neurale, una griglia di caratteristiche apprese o un insieme di primitive 3D, viene trasformata in un'immagine dalla posizione della telecamera corrispondente a una foto di addestramento tramite un renderer differenziabile. Poiché è possibile calcolare la derivata di ogni passaggio del renderer, la differenza tra l'immagine renderizzata e la foto reale può essere propagata all'indietro, tramite la backpropagation, fino a ogni parametro della scena. Ripetendo il processo da molte angolazioni, si ricostruisce la scena abbastanza bene da renderizzare punti di vista mai catturati da una telecamera:

Le pose delle telecamere per le foto provengono di solito da software di ricostruzione del movimento da più viste, come COLMAP, che abbina le caratteristiche tra foto sovrapposte per ricostruire il luogo in cui è stata scattata ciascuna.

Rappresentazioni neurali delle scene#

I campi di radianza neurale (NeRF), introdotti nel 2020, rappresentano una scena nei pesi di un percettrone multistrato che mappa una posizione 3D e una direzione di osservazione in una densità e un colore. Per renderizzare un pixel, NeRF campiona punti lungo il raggio della telecamera che lo attraversa e ne fonde i colori tramite il rendering volumetrico: ogni campione contribuisce in base alla propria opacità e alla quantità di luce che supera i campioni che lo precedono. Questo codice PyTorch addestra un campo minimo a riprodurre un pixel osservato lungo un raggio:

import torch
from torch import nn

# A tiny neural field that maps a 3D point to a density and an RGB color
torch.manual_seed(0)
field = nn.Sequential(nn.Linear(3, 64), nn.ReLU(), nn.Linear(64, 4))
optimizer = torch.optim.Adam(field.parameters(), lr=0.01)

# 64 points along one camera ray, and the color a training photo shows for that pixel
depths = torch.linspace(2.0, 6.0, 64)
points = torch.stack([torch.zeros(64), torch.zeros(64), depths], dim=1)
observed = torch.tensor([0.9, 0.4, 0.1])

for step in range(200):
    density, color = field(points).split([1, 3], dim=1)
    # Volume rendering: each sample's opacity times the light that reaches it through the samples in front
    alpha = 1 - torch.exp(-nn.functional.softplus(density.squeeze(1)) * (depths[1] - depths[0]))
    transmittance = torch.cumprod(torch.cat([torch.ones(1), 1 - alpha[:-1]]), dim=0)
    pixel = (transmittance * alpha) @ torch.sigmoid(color)
    loss = ((pixel - observed) ** 2).sum()
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    if step in (0, 199):
        print(f"step {step}: rendered {pixel.detach().numpy().round(2)}, loss {loss.item():.4f}")

Stampa step 0: rendered [0.71 0.37 0.56], loss 0.2496 e step 199: rendered [0.9 0.4 0.1], loss 0.0000. La rete non addestrata renderizza un colore arbitrario, mentre i gradienti che si propagano all'indietro attraverso l'equazione di rendering modificano i suoi pesi finché il pixel renderizzato non corrisponde alla foto. Un NeRF reale fa lo stesso con milioni di raggi provenienti da decine o centinaia di foto.

Il NeRF originale richiedeva da uno a due giorni di addestramento per scena su una GPU NVIDIA V100 e ogni immagine renderizzata comportava da 150 a 200 milioni di interrogazioni alla rete, circa 30 secondi per fotogramma. Instant NGP di NVIDIA ha sostituito gran parte della rete con una tabella hash multirisoluzione di caratteristiche apprese, riducendo l'addestramento a secondi o minuti e il rendering a decine di millisecondi a 1920×1080. Nel 2023, il Gaussian splatting ha fatto un ulteriore passo avanti: rappresenta le scene con milioni di gaussiane 3D esplicite, rasterizzate in tempo reale senza valutare alcuna rete al momento del rendering; di solito viene considerato parte del rendering neurale perché usa lo stesso metodo di ottimizzazione.

Rendering neurale nello spazio immagine#

Un secondo ramo mantiene un renderer convenzionale e usa reti per rifinire o ampliare il risultato. DLSS di NVIDIA renderizza i giochi a risoluzione ridotta, ne aumenta la risoluzione con modelli Transformer e, sulle GPU GeForce RTX 50 Series, genera fino a cinque fotogrammi per ogni fotogramma renderizzato dal gioco. Il rendering con path tracing usa algoritmi di denoising appresi per produrre immagini nitide a partire da pochi campioni di luce per pixel. Altri modelli sintetizzano immagini da layout di scene: GauGAN di NVIDIA trasformava una mappa semantica di cielo, acqua e alberi in un paesaggio fotorealistico, mentre i sistemi di avatar neurali renderizzano il volto di una persona da nuove angolazioni o con una nuova illuminazione.

  • Rendering differenziabile: renderer il cui output è differenziabile rispetto agli input. È il meccanismo che permette al rendering neurale di apprendere dalle immagini e viene usato anche senza reti neurali, per esempio per adattare una mesh alle foto.
  • Rendering inverso: ricostruzione di geometria, materiali e illuminazione a partire dalle immagini, spesso tramite rendering differenziabile, così da poter modificare e renderizzare di nuovo i risultati.
  • Sintesi di viste inedite: il compito di produrre immagini da punti di vista mai osservati, affrontato da NeRF e Gaussian splatting; il rendering neurale comprende un insieme più ampio di tecniche.
  • IA generativa: i modelli da testo a immagine e di generazione video creano contenuti a partire da prompt, di solito senza una scena esplicita osservabile da una posizione di telecamera scelta.

Applicazioni nel mondo reale#

  • Cinema e produzione virtuale: i luoghi acquisiti vengono ricostruiti come campi di radianza o insiemi di gaussiane e renderizzati da nuovi percorsi della telecamera per gli effetti visivi e la previsualizzazione.
  • Gemelli digitali ed e-commerce: le acquisizioni effettuate con il telefono di stanze, edifici e prodotti diventano viste 3D che clienti e progettisti possono esplorare in un browser o con un visore AR.
  • Robotica e veicoli autonomi: I tragitti registrati vengono ricostruiti e renderizzati di nuovo da punti di vista spostati, producendo dati sintetici per testare i sistemi di percezione. Le persone e le auto che si muovono durante l'acquisizione lasciano artefatti semitrasparenti, perciò le pipeline le escludono dalle foto di addestramento tramite maschere e i modelli YOLO26 di segmentazione di istanze generano automaticamente queste maschere per ogni fotogramma. Block-NeRF di Waymo ha ricostruito un intero quartiere di San Francisco a partire da 2,8 milioni di immagini, assemblando una griglia di NeRFs addestrati separatamente.

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