Gaussian Splatting
Esplora il Gaussian Splatting per la ricostruzione fotorealistica di scene 3D. Scopri come abilita il rendering in tempo reale e si integra con Ultralytics YOLO26 per la visione artificiale.
Il Gaussian Splatting è una moderna tecnica di rasterizzazione utilizzata nella computer grafica e nella visione artificiale per ricostruire scene 3D fotorealistiche a partire da un insieme di immagini 2D. A differenza della modellazione 3D tradizionale, che si basa su mesh poligonali, o di recenti progressi dell'IA come i Campi di radianza neurale (NeRF), che utilizzano reti neurali per approssimare una scena, il Gaussian Splatting rappresenta una scena come una raccolta di milioni di distribuzioni gaussiane 3D (ellissoidi). Questo metodo consente il rendering in tempo reale a frequenze elevate (spesso superiori a 100 FPS), mantenendo al contempo un'eccezionale fedeltà visiva e risolvendo un importante collo di bottiglia delle prestazioni presente nei precedenti metodi di sintesi delle viste.
Come funziona il Gaussian Splatting#
L'idea fondamentale consiste nel rappresentare lo spazio 3D in modo esplicito anziché implicito. In un flusso di lavoro tipico, il processo inizia con una nuvola di punti sparsa generata da un insieme di foto utilizzando una tecnica chiamata Struttura dal movimento (SfM). Ogni punto di questa nuvola viene quindi inizializzato come una gaussiana 3D.
Durante il processo di addestramento, il sistema ottimizza diversi parametri per ogni gaussiana:
- Posizione: le coordinate 3D (X, Y, Z) nella scena.
- Covarianza: determina la forma e la rotazione dell'ellissoide (ad esempio, quanto è allungato o inclinato lo "splat").
- Opacità: quanto la gaussiana appare trasparente o solida (valore alfa).
- Colore: rappresentato utilizzando gli armonici sferici, che consentono al colore di cambiare a seconda dell'angolo di osservazione, catturando riflessi ed effetti di illuminazione realistici.
Il termine "splatting" si riferisce al processo di rasterizzazione in cui queste gaussiane 3D vengono proiettate, o "splattate", sul piano 2D della fotocamera per formare un'immagine. Questa proiezione è completamente differenziabile, il che significa che è possibile utilizzare algoritmi standard di discesa del gradiente per minimizzare la differenza tra l'immagine renderizzata e la foto originale di riferimento.
Gaussian Splatting vs. NeRF#
Sebbene entrambe le tecniche mirino a generare nuove viste di una scena, differiscono fondamentalmente per architettura e prestazioni. NeRF (Campi di radianza neurale) codifica una scena nei pesi di una rete neurale. Il rendering di un NeRF richiede di interrogare questa rete milioni di volte per ogni singolo fotogramma (ray marching), un'operazione costosa dal punto di vista computazionale e lenta.
Al contrario, il Gaussian Splatting utilizza una rappresentazione esplicita (l'elenco delle gaussiane). Ciò gli consente di utilizzare un'efficiente rasterizzazione basata su tile, simile a quella impiegata dai videogiochi per il rendering della grafica. Di conseguenza, il Gaussian Splatting è significativamente più veloce da addestrare e renderizzare rispetto ai NeRF, risultando più adatto alle applicazioni consumer e all'inferenza in tempo reale.
Applicazioni nel mondo reale#
La velocità e la qualità del Gaussian Splatting hanno aperto nuove possibilità in diversi settori:
- Turismo virtuale e settore immobiliare: i creatori possono acquisire un museo, un sito storico o una casa in vendita utilizzando un drone o uno smartphone. Il Gaussian Splatting consente agli utenti remoti di esplorare questi spazi in Realtà virtuale (VR) con 6 gradi di libertà (6DoF), osservando dettagli raffinati come i riflessi sui pavimenti in legno che la fotogrammetria tradizionale potrebbe non riuscire a cogliere.
- Simulazione automobilistica: le aziende che sviluppano veicoli autonomi hanno bisogno di grandi quantità di dati per testare i propri algoritmi di percezione. Il Gaussian Splatting può ricostruire isolati urbani reali a partire dai dati dei sensori, creando un ambiente di simulazione fotorealistico. All'interno di questi ambienti, i modelli di visione come Ultralytics YOLO26 possono essere testati per garantire che identifichino correttamente i pericoli in scenari 3D complessi.
Preprocessing per lo Splatting con la visione artificiale#
Per funzionare efficacemente, il Gaussian Splatting richiede generalmente che le immagini di addestramento siano statiche. Gli oggetti in movimento (come pedoni o automobili) nelle foto di origine possono causare artefatti chiamati "floaters". Le pipeline avanzate utilizzano la segmentazione delle istanze per mascherare automaticamente questi elementi dinamici prima di addestrare il modello splat.
La Ultralytics Platform consente ai team di gestire dataset e addestrare modelli che possono contribuire a questa fase di preprocessing. Ecco come si potrebbe utilizzare un modello di segmentazione per creare maschere per un dataset destinato alla ricostruzione 3D:
from ultralytics import YOLO
# Load the YOLO26 segmentation model
model = YOLO("yolo26n-seg.pt")
# Run inference on an image from the scan dataset
# Class 0 is 'person' in COCO - we mask them out to keep the scene static
results = model.predict("scan_frame_001.jpg", classes=[0])
# Save the generated mask to exclude the person from the 3D reconstruction
for result in results:
result.save_masks("scan_frame_001_mask.png")Importanza nell'IA e tendenze future#
Il Gaussian Splatting rappresenta un cambiamento nella visione artificiale verso metodi ibridi che combinano la capacità di apprendimento dell'Apprendimento profondo con l'efficienza della grafica computerizzata classica. Questa tecnica si sta evolvendo rapidamente: i ricercatori stanno esplorando modi per comprimere le dimensioni dei file (che possono essere elevate) e integrarla con l'IA generativa per creare risorse 3D a partire da prompt testuali. Con il continuo miglioramento degli acceleratori hardware come le GPU, è probabile che il Gaussian Splatting diventi lo standard per acquisire e renderizzare il mondo reale in formato digitale.









