Scopri come i Neural Radiance Fields (NeRF) sintetizzano scene 3D da immagini 2D. Impara a migliorare l'addestramento NeRF utilizzando Ultralytics per una segmentazione precisa.
I campi di radianza neurale (NeRF) rappresentano un progresso rivoluzionario nella visione artificiale (CV) e nell' intelligenza artificiale generativa, progettati per sintetizzare scene 3D fotorealistiche da un insieme sparso di immagini 2D. A differenza dei tradizionali approcci di modellazione 3D che si basano su strutture geometriche esplicite come poligoni, mesh o nuvole di punti, un NeRF utilizza una rete neurale (NN) per apprendere una rappresentazione "implicita" di una scena. Mappando le coordinate spaziali e le direzioni di visione ai valori di colore e densità, i NeRF possono rendere nuovi punti di vista con eccezionale fedeltà, catturando accuratamente effetti visivi complessi come riflessi, trasparenza e illuminazione variabile che sono spesso difficili da riprodurre con la fotogrammetria standard .
Fondamentalmente, un NeRF modella una scena come una funzione volumetrica continua. Questa funzione è tipicamente parametrizzata da una rete di deep learning (DL) completamente connessa. Il processo inizia con il ray marching, in cui i raggi vengono proiettati da una telecamera virtuale attraverso ogni pixel del piano dell'immagine desiderata nello spazio 3D.
Per i punti campionati lungo ciascun raggio, la rete accetta un input 5D, comprendente la posizione spaziale 3D ($x, y, z$) e la direzione di visualizzazione 2D ($\theta, \phi$), e restituisce il colore emesso e la densità di volume (opacità) in quel punto. Utilizzando tecniche basate sul rendering del volume, questi valori campionati vengono accumulati per calcolare il colore finale del pixel. La rete viene addestrata minimizzando la differenza tra i pixel renderizzati e i pixel effettivi dei dati di addestramento originali , ottimizzando efficacemente i pesi del modello per memorizzare le proprietà visive della scena .
La tecnologia NeRF è passata rapidamente dalla ricerca accademica agli strumenti pratici, influenzando vari settori industriali colmando il divario tra la fotografia statica e gli ambienti 3D interattivi.
Per comprendere l'utilità specifica della tecnologia NeRF, è utile distinguerla dalle altre tecnologie 3D e di visione.
L'addestramento di un NeRF di alta qualità richiede spesso dati puliti. Il rumore di fondo o gli oggetti in movimento possono causare artefatti di "ghosting" nel rendering finale. Per mitigare questo problema, gli sviluppatori utilizzano spesso modelli di segmentazione delle istanze per mascherare automaticamente il soggetto di interesse prima di addestrare il NeRF.
Ultralytics e Python consentono una perfetta integrazione della segmentazione in questo flusso di lavoro di pre-elaborazione. L'esempio seguente mostra come utilizzare YOLO26 per generare maschere per una serie di immagini, preparandole per la ricostruzione 3D.
from ultralytics import YOLO
# Load the YOLO26 segmentation model
model = YOLO("yolo26n-seg.pt")
# Run inference to detect and segment objects
# Saving results creates masks useful for NeRF preprocessing
results = model("scene_image.jpg", save=True)
# Access the binary masks for the detected objects
masks = results[0].masks.data
print(f"Generated {len(masks)} masks for NeRF training.")
Combinando la precisione della segmentazione con la potenza generativa dei NeRF, gli ingegneri possono creare pipeline robuste per la generazione di dati sintetici, consentendo la creazione di campioni di addestramento illimitati per altre attività a valle.