Contents — find the section you need

Ciò che la tecnica Structure from Motion ricostruisce è una nuvola di punti 3D sparsa che collega solo punti caratteristici. È possibile distinguere il contorno di un edificio o gli angoli della sua superficie, ma muri e superfici curve risultano quasi privi di punti, e il risultato non può essere utilizzato come "forma" così com'è. La Multi-View Stereo (MVS) prende come dati le pose della telecamera già note da SfM o calibrazione della telecamera e stima la profondità per quasi ogni pixel dell'immagine, riempiendola in una nuvola di punti o mesh densa. La divisione del lavoro – la stima della posa è compito di SfM, la ricostruzione densa della forma è compito di MVS – è il punto di partenza per comprendere la relazione tra queste due tecnologie.

0. Riepilogo di 30 secondi

  • MVS è una tecnologia che stima la profondità densa, pixel per pixel, a partire da numerose immagini con pose note, integrandola in una nuvola di punti o in una mesh. È il processo a valle che riempie la nuvola di punti sparsa della SfM (Structure from Motion) in una forma densa.

  • Il suo principio fondamentale è la fotoconsistenza: si assume la corretta profondità per un punto 3D e i pixel corrispondenti nelle molteplici immagini che lo vedono dovrebbero avere colore e luminosità simili.

  • Esistono due approcci classici rappresentativi: Plane-Sweep, che valuta la coerenza scorrendo i potenziali punti di profondità come piani, e Patch-based (PMVS), che espande e filtra iterativamente piccole patch.

  • Negli ultimi anni, i metodi basati sul deep learning che elaborano un volume di costo tramite convoluzione (come MVSNet) superano sempre più i metodi classici in termini di accuratezza e robustezza.

  • Le mappe di profondità multivista risultanti vengono utilizzate direttamente come nuvola di punti o convertite in una mesh tramite fusione TSDF o ricostruzione di superficie di Poisson. La stima della profondità in tempo reale con telecamere stereo o di profondità condivide il principio di coerenza fotografica, ma si differenzia per il numero di punti di vista, la natura offline e il budget di calcolo.

1. Quali sono i dati di input e cosa risolve?

L'input di MVS è costituito dalle seguenti informazioni, già acquisite tramite SfM o calibrazione della telecamera:

  • La posizione della telecamera e i parametri intrinseci P_i = K_i[R_i\mid\mathbf{t}_i] di ciascuna immagine i (considerati noti)
  • Un insieme di immagini \{I_1,\dots,I_N\} che fotografano la scena target

L'output è una mappa di profondità densa \{D_i\} per ciascuna immagine (o per un insieme selezionato di immagini di riferimento), oppure la nuvola di punti/mesh ottenuta integrandole. Se l'output di SfM (la nuvola di punti sparsa e le pose della telecamera) è lo "scheletro", MVS è il processo che gli dà "corpo". Non è possibile ricostruire una forma densa con pose sconosciute: MVS si trova sempre a valle di SfM o della calibrazione, ed è importante tenere a mente questo ordine fin dall'inizio.

2. Perché una nuvola di punti sparsa non è sufficiente?

Il motivo per cui SfM non produce direttamente una nuvola di punti densa è che il suo input dipende dalla corrispondenza dei punti caratteristici. Come abbiamo visto in Il manuale di base sul rilevamento delle caratteristiche, solo i pixel "distintivi" (angoli, bordi) possono essere rilevati e abbinati in modo stabile. Una regione con texture uniforme, come una parete liscia, non ha punti caratteristici, lasciando un vuoto nella nuvola di punti 3D di SfM.

Il metodo MVS, d'altro canto, può sfruttare il forte vincolo che le pose siano già note, quindi non necessita affatto di punti caratteristici. Per ogni pixel, può valutare direttamente "questo candidato di profondità rimane coerente nelle altre immagini?". Ciò apre la possibilità di stimare la profondità anche per una parete con poca texture, purché ci sia almeno un qualche schema o ombreggiatura su cui lavorare (una superficie completamente priva di caratteristiche rimane un punto debole, come discusso in seguito).

3. Il principio fondamentale: la fotoconsistenza

Quasi tutti i metodi MVS si basano sul presupposto della fotoconsistenza. Supponiamo che la profondità del punto 3D corrispondente al pixel \mathbf{u} in un'immagine di riferimento sia d; Quel punto 3D può essere recuperato come

\mathbf{X}(\mathbf{u}, d) = \pi_{\text{ref}}^{-1}(\mathbf{u}, d)

e l'ipotesi di coerenza fotografica è che riproiettandolo in un'altra immagine k, al pixel \mathbf{u}' = \pi_k(\mathbf{X}(\mathbf{u},d)), si dovrebbero ottenere un colore e una luminosità simili a quelli di I_{\text{ref}}(\mathbf{u}). Questo è più facile da comprendere come una generalizzazione, da 2 punti di vista a N punti di vista, della ricerca di disparità della telecamera stereoscopica: il processo, descritto in Come funzionano le telecamere di profondità e Come funzionano le telecamere stereoscopiche, di trovare i pixel corrispondenti tra le immagini sinistra e destra tramite la corrispondenza della luminosità. In realtà, la profondità per una telecamera stereo a due occhi si calcola con la semplice formula:

Z = \frac{fB}{d_{\text{disp}}}

utilizzando la lunghezza focale f, la lunghezza della linea di base B e la disparità d_{\text{disp}}. Il sistema MVS (Multi-View System) è esattamente questa operazione di "ricerca della disparità e conversione in profondità", estesa a qualsiasi numero di telecamere e a qualsiasi configurazione.

Un'implementazione tipica utilizza una piccola finestra W attorno al pixel e misura la concordanza con la correlazione incrociata normalizzata (NCC).

\mathrm{NCC}(\mathbf{u}, d) = \frac{\sum_{\mathbf{x}\in W}\left(I_{\text{ref}}(\mathbf{x})-\bar I_{\text{ref}}\right)\left(I_k(\mathbf{x}')-\bar I_k\right)} {\sqrt{\sum_{\mathbf{x}\in W}\left(I_{\text{ref}}(\mathbf{x})-\bar I_{\text{ref}}\right)^2}\sqrt{\sum_{\mathbf{x}\in W}\left(I_k(\mathbf{x}')-\bar I_k\right)^2}}

\mathbf{x}' è il punto corrispondente ottenuto mappando \mathbf{x} nell'immagine k, assumendo un piano locale come candidato per la profondità d. \mathrm{NCC} è robusto rispetto alle variazioni di scala e offset della luminosità, quindi funziona anche in presenza di differenze di esposizione o illuminazione tra le immagini. Il calcolo di questo punteggio di concordanza per ogni coppia di immagini e per ogni potenziale profondità, e la scelta della profondità con il punteggio migliore, costituiscono lo scheletro computazionale di MVS.

4. La pipeline di base

Diagram 1 · Use the button to switch views
The basic MVS pipeline A diagram showing the flow from a set of images with known camera poses, through estimating each image's dense depth map via either Plane-Sweep or Patch-based methods, to fusing multi-view depth maps into a dense point cloud or mesh. Image set +known camera poses Plane-Sweepsweep depth candidates,evaluate photo-consistency Patch-basedexpand patches,filter by visibility Dense depth mapfor each image Depth mapfusion Point cloud/mesh

La forma base classica del metodo MVS è una struttura a due fasi: si sceglie tra Plane-Sweep o Patch-based per trovare prima la mappa di profondità densa di ciascuna immagine, quindi le si fondono in un'unica forma 3D coerente nella seconda fase. I moderni metodi basati sul deep learning seguono in gran parte questa stessa struttura a due fasi, sostituendo però i meccanismi interni di stima della profondità con una rete neurale.

5. Il metodo Plane-Sweep

Il metodo Plane-Sweep deriva da un approccio di corrispondenza multi-immagine con scansione spaziale proposto da Collins al CVPR 1996. Il sistema calcola i costi calcolando i costi su piani virtuali, distanziati a intervalli regolari, perpendicolari all'asse ottico della telecamera di riferimento (o orientati in base alla scena) all'interno del suo campo visivo, e li valuta durante la scansione della profondità, da superficiale a profonda.

Supponendo un piano a una certa profondità d, i punti su tale piano possono essere mappati dall'immagine di riferimento a un'altra immagine tramite una trasformazione di omografia. Utilizzando una trasformazione della forma H = K_k(R+\mathbf{t}\mathbf{n}^\mathsf{T}/d)K_{\text{ref}}^{-1}, descritta nel Manuale di omografia, l'altra immagine I_k viene deformata nel punto di vista di riferimento. La coerenza fotoelettrica (come l'NCC della sezione precedente) viene calcolata per ogni pixel tra l'immagine deformata e l'immagine di riferimento, e il costo viene accumulato per ogni candidato di profondità.

d^*(\mathbf{u}) = \arg\min_{d\in\mathcal{D}} \sum_{k} \rho\left(1-\mathrm{NCC}_k(\mathbf{u},d)\right)

Una volta calcolato il costo per ogni profondità Per ogni pixel candidato, viene scelta la profondità con il costo minimo. Si tratta di una ricerca di profondità discreta, che si abbina bene alla parallelizzazione GPU, valutando simultaneamente molte ipotesi di profondità. Molte implementazioni combinano questo approccio con l'aggregazione dei costi semi-locali (una regolarizzazione simile al Semi-Global Matching), interpolando in modo fluido la profondità dalle informazioni vicine anche in regioni con scarsa texture. Il modulo di ricostruzione densa di COLMAP adotta anche un approccio simile al Plane-Sweep, ottimizzando la selezione della vista per pixel (Pixelwise View Selection): l'articolo di Schönberger et al. presentato all'ECCV 2016 ne è un esempio rappresentativo.

6. Il metodo basato su patch (PMVS)

Anziché scorrere la profondità pixel per pixel, il metodo basato su patch genera ed espande direttamente un insieme di piccole patch rettangolari che coprono la superficie della scena. Un esempio rappresentativo è PMVS (Patch-based Multi-View Stereo), pubblicato da Furukawa e Ponce su IEEE TPAMI nel 2010.

L'elaborazione si ripete in tre fasi: "Corrispondenza, espansione, filtraggio."

  1. Corrispondenza: innanzitutto, si genera un piccolo numero di patch iniziali a partire da punti di corrispondenza facilmente identificabili come punti caratteristici, ad esempio gli angoli SIFT o di Harris. Ogni patch contiene informazioni sulla posizione del centro, sulla direzione della normale e sull'insieme di immagini che vedono quel punto (visibilità).

  2. Espansione: si propagano nuove patch nel vicinato delle patch iniziali, ampliando l'area coperta ai pixel circostanti. La posizione e la normale di ogni patch propagata vengono ottimizzate localmente per massimizzare la coerenza fotografica con le immagini circostanti.

  3. Filtro: si rimuovono le patch con contraddizioni di visibilità (ad esempio, un caso in cui una patch risulta visibile pur essendo dietro un'altra patch) o con bassa coerenza fotografica.

A differenza del metodo Plane-Sweep, che determina la profondità indipendentemente per ogni pixel, il PMVS (Plane-Sweep View) contiene le informazioni aggiuntive della normale di una patch, pertanto tende ad avere una maggiore precisione di ricostruzione per le superfici oblique. D'altra parte, poiché si basa su un processo iterativo di espansione e filtraggio, l'espansione non procede bene nelle regioni con poche patch iniziali. o texture scadente, e la ricostruzione tende a presentare delle lacune.

7. Metodi basati sul deep learning: l'idea del volume di costo

Negli ultimi anni, i metodi che rappresentano la concordanza per candidato di profondità non con una metrica progettata manualmente (come NCC) ma con caratteristiche apprese da una rete neurale convoluzionale e un volume di costo sono diventati di uso comune. Un esempio rappresentativo è MVSNet, pubblicato da Yao et al. all'ECCV 2018.

MVSNet ottiene una mappa di caratteristiche da ciascuna immagine tramite un estrattore di caratteristiche addestrato, presuppone piani di profondità discreti all'interno del frustum di visualizzazione della telecamera di riferimento e allinea la mappa di caratteristiche di ciascuna immagine al punto di vista di riferimento tramite una deformazione omologica differenziabile. Combina la varianza tra le mappe di caratteristiche di più immagini in un singolo volume di costo, lo regolarizza con una convoluzione 3D e quindi esegue la regressione della profondità tramite una funzione softmax lungo la direzione della profondità. Il suo scheletro di base segue l'idea di Plane-Sweep di "scansionare i candidati di profondità e valutarli", ma la differenza rispetto a Il vantaggio dei metodi classici è che il calcolo della fotoconsistenza stessa diventa apprendibile.

I metodi basati sull'apprendimento tendono a comportarsi in modo più robusto in condizioni in cui le metriche di fotoconsistenza definite manualmente faticano (pattern ripetitivi, texture deboli), a condizione che i dati di addestramento includano situazioni simili. D'altra parte, le prestazioni possono degradare in scene molto diverse dalla distribuzione del dataset di addestramento (materiali non familiari, illuminazione estrema).

8. Fusione e meshing delle mappe di profondità

Poiché le mappe di profondità multivista vengono stimate ciascuna in modo indipendente, la semplice sovrapposizione come punti 3D lascia incoerenze dovute a rumore e occlusione (punti leggermente spostati nella stessa posizione che si accumulano in più livelli, o profondità non coerente tra i punti di vista). La fusione è il processo che consolida queste mappe di profondità in un'unica rappresentazione coerente.

  • Fusione come nuvola di punti: si adottano solo i pixel in cui la profondità è coerente tra i punti di vista, si scartano i dati di profondità a bassa confidenza e si integra. COLMAP e altri producono una nuvola di punti densa in questo modo.

  • TSDF Fusione (Truncated Signed Distance Function)**: un metodo volumetrico, proposto da Curless e Levoy al SIGGRAPH 1996, che divide lo spazio in voxel e accumula una distanza con segno in ciascun voxel. Ampiamente utilizzato nella fusione di immagini di profondità in tempo reale (come KinectFusion) e applicabile anche alla fusione di mappe di profondità MVS.

Meshing**: da una nuvola di punti o da un campo di distanze con segno, metodi come la ricostruzione di superfici di Poisson (2006), di Kazhdan et al., generano una mesh poligonale liscia. L'aggiunta di texture mapping completa un modello 3D utilizzabile anche visivamente.

9. Confronto tra algoritmi rappresentativi

Aspetto Scansione planare Basato su patch (PMVS) Basato sull'apprendimento (famiglia MVSNet)
Principio Scansiona i piani di profondità, valuta la coerenza fotografica per pixel Espande iterativamente e Filtra piccole porzioni Regolarizza un volume di costo con una CNN e calcola la profondità tramite regressione

Accuratezza | Dipende dalla risoluzione della profondità e dalla progettazione dell'aggregazione dei costi; da moderata ad alta | Tende ad essere accurato per forme locali oblique o complesse | Alta accuratezza in condizioni simili ai dati di addestramento |

Costo computazionale | Facilmente parallelizzabile su GPU, veloce | Tende ad essere più lento di Plane-Sweep a causa dell'elaborazione iterativa | Inferenza rapida dopo l'addestramento; il costo dell'addestramento è separato |

Robustezza | Debole nelle regioni con scarsa texture | Tende a lasciare vuoti nelle regioni con poche porzioni iniziali | Relativamente robusto a texture deboli o pattern ripetitivi |

Difficoltà di implementazione | Moderata (deformazione dell'omografia e aggregazione dei costi) | Alta (gestione della visibilità e progettazione dell'espansione iterativa) | Alta (richiede dati di addestramento e progettazione della rete) |

Implementazioni rappresentative | COLMAP denso, molti strumenti di fotogrammetria commerciali | PMVS/CMVS | MVSNet, metodi successivi basati sull'apprendimento |

10. Relazione Telecamere stereo e di profondità

Il sistema MVS condivide il suo principio fondamentale — "trovare la profondità dalla corrispondenza tra più punti di vista" — con le telecamere stereo e le telecamere di profondità, ma occupano posizioni diverse.

  • Le telecamere stereo utilizzano una configurazione fissa a due occhi, limitando la ricerca della disparità a una dimensione lungo la linea epipolare, e sono progettate per l'elaborazione in tempo reale. Il metodo Plane-Sweep di MVS può essere inteso come una generalizzazione di questa ricerca della disparità a qualsiasi numero di telecamere in qualsiasi configurazione.

  • Le telecamere di profondità (luce strutturata, ToF, stereo attive) proiettano attivamente la luce, consentendo loro di ottenere stabilmente la distanza anche su superfici con scarsa texture. Poiché MVS si basa esclusivamente sulla fotoconsistenza passiva, è intrinsecamente svantaggiato su superfici a bassa texture — una netta differenza rispetto alle telecamere di profondità attive.

  • MVS è fondamentalmente un sistema offline, che costruisce forme ad alta precisione e alta densità a partire da molte immagini (da decine a centinaia), mentre le telecamere stereo e di profondità sono ottimizzate per fornire dati di profondità un fotogramma alla volta, in tempo reale.

A seconda dell'applicazione, robot o realtà aumentata che necessitano di prestazioni in tempo reale sono adatti alle telecamere stereo/di profondità, mentre modelli 3D offline ad alta precisione per la documentazione del patrimonio culturale, il rilievo architettonico o la fotogrammetria sono adatti a MVS.

11. Condizioni difficili e casi di errore comuni

  • Superfici con texture scarsa o uniformi: pareti bianche, pavimenti lisci e cieli offrono pochi indizi per la fotocoerenza, lasciando la profondità indeterminata o influenzata da un valore errato a causa del rumore circostante.

  • Oggetti speculari, trasparenti o traslucidi: vetro, superfici d'acqua e riflessi metallici cambiano aspetto a seconda del punto di vista, violando l'assunto stesso di fotocoerenza.

  • Motivi ripetitivi: piastrelle, mattoni e file di colture in un campo possono produrre "soluzioni fantasma", dove una profondità errata mostra comunque un'elevata coerenza fotografica locale.

  • Occlusione: le regioni visibili solo da alcuni punti di vista possono finire per valutare la coerenza fotografica utilizzando l'immagine sbagliata se la visibilità viene stimata in modo errato, invalidando la stima della profondità.

  • Punti di vista o parallasse insufficienti: se il numero di punti di vista di copertura è piccolo o la parallasse è troppo piccola, semplicemente non c'è risoluzione disponibile lungo la direzione della profondità fin dall'inizio.

12. Scelte pratiche

  • Se le pose sono già note da SfM o calibrazione e l'obiettivo è la ricostruzione 3D offline con la massima precisione (documentazione del patrimonio culturale, rilievo architettonico, fotogrammetria per la produzione video), un'implementazione della famiglia Plane-Sweep, come la pipeline densa di COLMAP, è un punto di partenza accessibile.

  • Se la precisione per superfici oblique o forme locali complesse è una priorità particolare, si consideri un approccio basato su Patch nella famiglia PMVS o un'implementazione ibrida che ne incorpori le idee.

  • Se si sa in anticipo che la scena è Per le scene con texture povere o con molti pattern ripetitivi, i metodi basati sull'apprendimento (famiglia MVSNet) tendono ad essere più robusti. Poiché le prestazioni possono degradare su scene al di fuori della distribuzione dei dati di addestramento, è consigliabile valutarle su dati simili al dominio di destinazione prima di adottarne una.

Per applicazioni che richiedono prestazioni in tempo reale, come robot, AR/VR e rilevamento di ostacoli nella guida autonoma, è preferibile utilizzare telecamere stereo o telecamere di profondità anziché MVS. Il campo di applicazione principale di MVS è la ricostruzione offline ad alta densità e alta precisione.

Se il risultato finale deve essere una mesh o un modello 3D con texture, è consigliabile scegliere la fusione TSDF o la ricostruzione di superficie di Poisson nella fase di fusione della mappa di profondità; se è sufficiente una semplice nuvola di punti, è possibile fermarsi qui.

13. Riepilogo

Multi-View Stereo utilizza le pose della telecamera già note da SfM o dalla calibrazione e recupera la profondità densa utilizzando La coerenza delle immagini è il suo indizio. I due approcci classici, Plane-Sweep e Patch-based, presentano compromessi diversi e, negli ultimi anni, i metodi della famiglia MVSNet, che apprendono un volume di costo, stanno spingendo ulteriormente la precisione e la robustezza. L'intero flusso passa attraverso la fusione e la creazione della mesh delle mappe di profondità risultanti, e comprendere la distinzione tra MVS che sacrifica le prestazioni in tempo reale per la precisione, e le telecamere stereo/di profondità che danno priorità alle prestazioni in tempo reale, è fondamentale per fare la scelta pratica giusta.

Verifica la tua comprensione
Una nuvola di punti più densa garantisce una geometria più accurata?

Un maggior numero di profondità errate non migliora la precisione. Verifica separatamente la coerenza multivista, l'occlusione, la riflessione e la texture dalla densità.

Riferimenti

-

What to read next

Review the backgroundIntroduzione al Bundle Adjustment: il metodo dei minimi quadrati non lineari che perfeziona le pose della fotocamera e i punti 3D.Continue the seriesIntroduzione a VO/VIO: nozioni pratiche per la stima del movimento da una telecamera e da un'unità di misura inerziale (IMU)Explore another aspect of this fieldLab di luminosità e luminanza — esposizione, gamma e clipping