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

Gaussian Splatting

Il Gaussian splatting ricostruisce scene 3D fotorealistiche da foto sotto forma di milioni di gaussiane 3D, renderizzate in tempo reale. Panoramica di addestramento, NeRF e acquisizione.

Il Gaussian splatting, detto anche Gaussian splatting 3D (3DGS), è una tecnica per ricostruire una scena 3D fotorealistica da normali fotografie e renderizzarne nuove viste in tempo reale. Rappresenta la scena con milioni di gaussiane 3D, ellissoidi morbidi che hanno ciascuno posizione, forma, opacità e colore dipendente dal punto di vista, e disegna un'immagine proiettandoli («splatting») sullo schermo e fondendoli. Presentato a SIGGRAPH 2023 in 3D Gaussian Splatting for Real-Time Radiance Field Rendering, ha eguagliato la qualità d'immagine dei migliori campi di radianza neurali (NeRF), eseguendo il rendering a 30 fotogrammi al secondo o più a 1080p, un risultato mai raggiunto prima da altri metodi su scene ampie e illimitate. È un metodo per la sintesi di nuove viste e la ricostruzione 3D.

Come funziona Gaussian Splatting#

Ogni gaussiana memorizza 59 numeri apprendibili: una posizione 3D, una scala 3D e un quaternione di rotazione a 4 numeri che, insieme, ne definiscono la covarianza (forma e orientamento), un'opacità e 48 coefficienti delle armoniche sferiche, 16 per canale di colore, che consentono al colore di variare con la direzione di osservazione per catturare riflessi e lucentezza. L'addestramento parte dalla nuvola di punti sparsa prodotta da Structure from Motion (SfM) durante la calibrazione delle fotocamere, collocando una gaussiana in ogni punto. A ogni iterazione viene renderizzata una vista di addestramento, la si confronta con la foto reale usando una combinazione ponderata di perdite L1 e D-SSIM e si aggiornano tutte le gaussiane tramite discesa del gradiente attraverso il renderer differenziabile. Ogni 100 iterazioni, il controllo adattivo della densità clona le gaussiane piccole nelle regioni ricostruite in modo insufficiente, divide quelle grandi che coprono troppi dettagli e rimuove quelle quasi trasparenti, portando ogni scena descritta nell'articolo a contenere da 1 a 5 milioni di gaussiane.

Per disegnare un fotogramma, il renderer proietta ogni gaussiana 3D in un'ellisse 2D sul piano dell'immagine, divide lo schermo in tasselli da 16×16 pixel, ordina per profondità le gaussiane che si sovrappongono a ciascun tassello con un GPU radix sort e le fonde con alpha blending, da davanti a dietro, per ogni pixel. Poiché la scena è un elenco esplicito di primitive, il rendering funziona come il rasterizzatore di un motore di gioco e non valuta alcuna rete neurale per pixel.

Gaussian splatting a confronto con NeRF e mesh#

Un NeRF memorizza una scena in modo implicito nei pesi di una rete neurale e la renderizza interrogando tale rete in molti punti lungo ogni raggio della fotocamera. Il Gaussian splatting memorizza la scena in modo esplicito, quindi il rendering si riduce all'ordinamento e alla fusione. Sull'hardware usato nell'articolo originale, Mip-NeRF360 richiedeva in media 48 ore di addestramento e circa 10 secondi per fotogramma renderizzato; dopo 35–45 minuti di addestramento, gli splat gaussiani completamente addestrati ne eguagliavano o superavano leggermente la qualità, eseguendo il rendering in tempo reale. La rappresentazione esplicita richiede memoria: con 59 numeri per gaussiana, una scena con 3 milioni di gaussiane contiene circa 700 MB di numeri in virgola mobile a 32 bit, e durante l'addestramento di scene di grandi dimensioni la memoria GPU di picco poteva superare i 20 GB nell'implementazione originale. Gli splat inoltre non hanno una superficie definita, quindi le applicazioni che richiedono geometrie per le collisioni o modifiche in stile CAD li convertono ancora in mesh tramite metodi successivi; le scene in movimento richiedono estensioni come il Gaussian splatting 4D.

Acquisizione dei dati per il Gaussian splatting#

Un'acquisizione consiste in una serie di fotografie sovrapposte o fotogrammi video ripresi muovendosi attorno a una scena statica. Qualsiasi elemento in movimento durante l'acquisizione, come un passante o un'auto, compare in alcuni fotogrammi ma non in altri; l'ottimizzazione cerca di rappresentarlo con artefatti semitrasparenti detti floaters. Perciò le pipeline di addestramento accettano maschere che escludono gli oggetti in movimento e il formato dati di Nerfstudio prevede maschere in bianco e nero in cui il nero indica i pixel da ignorare. I modelli di segmentazione delle istanze YOLO26 generano automaticamente queste maschere segmentando ogni persona in ciascun fotogramma.

import cv2
from ultralytics import YOLO

# Carica un modello di segmentazione di istanze YOLO26
model = YOLO("yolo26n-seg.pt")

# Segmenta solo le persone (classe COCO 0), una causa comune di floaters in un'acquisizione
results = model("https://ultralytics.com/images/bus.jpg", classes=[0], retina_masks=True)
result = results[0]

# Il bianco indica la scena statica da usare per l'addestramento, il nero le persone da ignorare
people = result.masks.data.sum(dim=0) > 0
keep_mask = (~people).cpu().numpy().astype("uint8") * 255
cv2.imwrite("bus_mask.png", keep_mask)

Il file bus_mask.png salvato ha la risoluzione completa della foto perché retina_masks=True restituisce le maschere alle dimensioni originali dell'immagine e ogni persona nel fotogramma è nera.

Applicazioni#

  • Immobili e tour virtuali: l'acquisizione di una casa, un museo o un sito storico con un telefono o un drone diventa una scena che i visitatori possono esplorare liberamente in un browser o con un visore VR, conservando i riflessi sui pavimenti e sulle finestre.
  • Effetti visivi e produzione virtuale: i team cinematografici e di sviluppo di videogiochi acquisiscono luoghi reali come splat e li usano come sfondi fotorealistici e riferimenti per le scenografie.
  • Gemelli digitali e mappatura: le piattaforme geospaziali trasmettono grandi ricostruzioni splat di città, cantieri e infrastrutture insieme alle tradizionali tile 3D.
  • Simulazione di guida e robotica: le ricostruzioni di tragitti reali consentono ai team di veicoli autonomi di renderizzare nuovamente le scene registrate da nuove posizioni della fotocamera per testare i modelli di percezione.

Librerie open source come gsplat forniscono rasterizzatori CUDA per addestrare gli splat e il Khronos Group ha ratificato KHR_gaussian_splatting, un'estensione glTF 2.0 per memorizzare splat gaussiani, sviluppata con il contributo di Cesium, Esri, Niantic Spatial, NVIDIA, Huawei e Autodesk.

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