Differenza tra Sfm e ricostruzione 3D?

2

Per quanto riguarda la visione artificiale (CV), sento sempre questi tre termini usati quasi in modo intercambiabile:

  • Struttura da movimento (Sfm)
  • Ricostruzione 3D
  • Visione / elaborazione stereo

Tuttavia, da quello che ho letto, questi sono simili-ancora-diversi, ma da nessuna parte posso trovare una definizione universale di come sono diversi.

Secondo Wikipedia:

Sfm :

...refers to the process of estimating three-dimensional structures from two-dimensional image sequences

Ricostruzione 3D :

...is the process of capturing the shape and appearance of real objects

Elaborazione stereo :

...is a term that is most often used to refer to the perception of depth and 3-dimensional structure obtained on the basis of visual information deriving from two eyes by individuals with normally developed binocular vision

Le librerie open source best-in-show in questa arena sembrano essere Bundler e PMVS / CMVS .

Bundler è pubblicizzato come software Sfm, mentre PMVS / CMVS è pubblicizzato come ricostruttori 3D. Questi strumenti sembrano devono essere concepiti per essere usati l'uno con l'altro, ma potrebbero essere tecnicamente usati separatamente. Quindi chiaramente c'è una differenza tra la ricostruzione Sfm e 3D, come minimo, ma non vedo la foresta tra gli alberi qui.

Quindi chiedo: Qual è la differenza tra questi tre concetti, come sono correlati e in che modo si completano a vicenda?

    
posta smeeb 26.08.2016 - 18:58
fonte

2 risposte

1

Immagina 50 fotocamere fisse disposte in cerchio (qualcosa come questo , sebbene quelle telecamere siano Go-Pros) . Hai un cane che salta nel mezzo del cerchio e tutte e 50 le telecamere scattano un'immagine bidimensionale nello stesso istante. Ora hai 50 foto del cane, tutto intorno al cane.

SFM prenderà quelle 50 immagini e ti permetterà di stampare una ricostruzione fisica del cane su una stampante 3d. Questo tipo di informazioni è utile ai robot, perché consente loro di ragionare sui tre forma tridimensionale dell'oggetto ricostruito.

La struttura dal movimento è una forma di ricostruzione 3d.

L'elaborazione stereo è ciò che accade quando guardi un oggetto con i tuoi due occhi e percepisci la profondità. Poiché le immagini dei tuoi due occhi sono leggermente diverse, le differenze ti permettono (o un robot) di fare cose come stimare la distanza dall'oggetto.

    
risposta data 26.08.2016 - 19:11
fonte
1

La visione stereo (o visione binoculare) è fondamentalmente il metodo con cui gli esseri umani (e altri animali binoculari) percepiscono la profondità. La differenza nella posizione di un oggetto sull'asse X su due telecamere è denominata Disparia. Quanto più lontano è lontano l'oggetto osservato, tanto più bassa è la disparità. Questa proprietà è ciò che ci consente di percepire la profondità e stimare meglio le distanze e la struttura degli oggetti dai segnali visivi.

In generale, ogni volta che hai 2 (o più) foto di un oggetto stazionario, e ammesso di conoscere la posizione e le proprietà delle 2 fotocamere che hanno scattato queste 2 foto, puoi calcolare la distanza di ogni pixel da uno di le camme, che ti permetteranno di ricostruire la forma 3D di ciò che è in vista.

Con Stereo Vision (Multi View Stereo), di solito hai il controllo sulla tua fotocamera rig. Ad esempio, puoi scegliere 2 o più fotocamere con le stesse proprietà intrinseche che conosci (lunghezza focale, apertura, risoluzione, ecc.) E le calibra in modo da poter stimare la loro posizione e rotazione l'una rispetto all'altra. Dopo aver calibrato le telecamere, hai sostanzialmente corretto alcune variabili e ora puoi calcolare la disparità. L'algoritmo seleziona fondamentalmente un pixel nella prima immagine e cerca di trovare il suo equivalente nella seconda immagine per sapere quanto è stato spostato. In realtà, i pixel si muovono lungo le linee epipolari, che sono calcolate dalle proprietà intrinseche di ciascuna telecamera e dalla configurazione estrinseca della coppia stereo.

Come per Structure from Motion (SFM), vale lo stesso principio. Tranne, ora non abbiamo una coppia di telecamere controllate e calibrate. Abbiamo più foto, scattate da diverse fotocamere, possibilmente dal web. Anche le posizioni di quelle telecamere sono a noi sconosciute. La prima complessità è che, diversamente dalle coppie calibrate, non abbiamo i vincoli epipolari e avremo bisogno di fare una ricerca approfondita per ogni pixel attraverso le immagini. Il processo è più lento e soggetto a errori. Solitamente ricorriamo a rivelatori di bordo e feature per questo compito, come SURF, SIFT e ORB. Una volta che abbiamo le caratteristiche corrispondenti, proviamo a stimare la Matrice fondamentale, che modella le posizioni e le rotazioni delle telecamere l'una rispetto all'altra. Questo è anche soggetto a errori. La stima della matrice funziona solo quando c'è una buona linea di base tra le due telecamere e viene generalmente calcolata usando RANSAC o algoritmi di ottimizzazione simili che possono o meno restituire buoni risultati. Una volta che abbiamo estrinseccaniche, possiamo procedere come con MVS per estrarre nuvole di punti e stimare la forma.

Altre tecniche che ti permettono di ottenere la struttura 3d includono (non esaustivo):

  • Scansione della luce strutturata in cui un motivo noto di luce (di solito laser) viene proiettato sulla superficie di un oggetto e viene scattata una foto. La deformazione del modello fornisce una stima della superficie normale e quindi della forma

  • Forma da Shading, se ti capita di conoscere la posizione di una fonte di luce e di assumere una superficie di materiale lambertiana (nessuna superficie lucida, speculare o trasparente) l'intensità della luce a ciascun pixel può darti una stima di la superficie normale

  • Scansione LIDAR e Ora del volo ( link )

  • Struttura dalla polarizzazione (leggi link )

risposta data 11.05.2018 - 04:41
fonte

Leggi altre domande sui tag