Come posso ricostruire una struttura 3D da una serie di immagini?


24

Ho un insieme di contorni (insieme di segmenti di linea) raggruppati nel modo seguente:

Si={I0,Iπ4,I2π4,,I7π4}

dove

  • Si indica una sequenza di foto di un oggetto concreto.
  • Ij denoto un'immagine, con jth punto di vista ( j=0 significa vista frontale).

Ecco un esempio di Iπ (vista posteriore):

inserisci qui la descrizione dell'immagine

Come posso ricostruire la struttura 3d dell'oggetto con un dato Si ?

Qualcuno può indicarmi alcuni documenti o anche darmi alcune parole chiave? So che ci sono molti articoli che operano con nuvole di punti e così via, ma quelli non funzionano come sto operando con le linee.

Risposte:


20

In realtà è un argomento piuttosto difficile. La ricostruzione classica multi-view in 3D si occupa in primo luogo della corrispondenza dei punti, ovvero trova lo stesso punto su ogni immagine. Dati i parametri della telecamera (vista) per ogni immagine, è possibile ricostruire il punto 3d originale. (Utilizzando un laser o un proiettore la scena può essere illuminata in modo che la corrispondenza possa essere eseguita in modo relativamente semplice.)

La bibbia del campo è Geometria a vista multipla in Computer Vision di Hartley e Zisserman

Nel libro c'è una sezione sul tensore trifocale, che è un vincolo multilineare tra 3 viste. Contiene non solo vincoli di corrispondenza punto ma anche linea. Può essere usato molto bene per la ricostruzione di edifici.

Quindi i tuoi contorni dovrebbero essere abbinati al primo posto e forse possono essere ricostruiti conoscendo i parametri della fotocamera (la calibrazione della fotocamera è anche coperta nel libro). Quindi avrai contorni in 3d ma niente di più. Per superfici reali è necessario eseguire una corrispondenza del punto denso. Sebbene il tensore che ho citato abbia un bell'aspetto, è usato per linee rette e sono sicuro che un'auto moderna ha linee curve dappertutto.

Non so come hai ottenuto quei contorni, ma vedendo l'immagine che hai pubblicato sono abbastanza scettico sulla solidità di quell'algoritmo, quindi la ricostruzione sarà scarsa.

Un altro metodo che mi è venuto in mente è lo scafo visivo o l'intaglio dello spazio . Dovrebbe essere eseguita anche la matematica dei contorni. Eseguendo il metodo su ciascun contorno è possibile avere il modello.


Sto ottenendo quei contorni applicando Canny, e poi da alcuni algoritmi di semplificazione della linea, che prende il raster binario e quindi restituisce un set di bordi. In realtà, è possibile coinvolgere immagini semplici, senza filtri, ma la ragione per cui ho formulato un'attività in questo modo è che avrei bisogno di calcolare costantemente contorni sotto diverse angolazioni (che potrebbe avere delta abbastanza basso: < ) di vista. Ho pensato che se avessi potuto ripristinare i bordi in 3d, tutto ciò che dovevo fare è semplicemente eseguire la proiezione. Forse è stato un errore (in tal caso, per favore, fammi sapere). π/4
om-nom-nom,

1
Non vedo come si ottiene un punto 3d fuori contorno dalla proiezione. Esistono tecniche di modellazione 3d che si occupano delle superfici NURBS estese tra le spline, ma per questo devi fornire spline caratteristiche. (Forse un artista 3d potrebbe definire la parola caratteristica in questo contesto, ma non io.) Ancora una volta, penso che la forma da contorno (come lo scafo visivo) possa costruire un modello approssimativo per te. Successivamente è possibile perfezionarlo in base alle immagini. Ma non ci sono modi standard per quello.
Bálint Fodor,

2

Mentre citato da Fodor Hartley e il libro di Zisserman vale sicuramente la pena di leggerlo, è più per la comprensione generale che per gli algoritmi pratici. È abbastanza obsoleto e questi metodi non sono efficienti. Informazioni sul problema: la formulazione del problema in sé è molto rara. Come è stato menzionato da Fodor, iniziare con la corrispondenza dei punti funzione invece dei contorni è molto più semplice. In caso di punti la panoramica assolutamente migliore dei metodi moderni disponibili è l'articolo di Triggs "Regolazione del bundle - Una sintesi moderna" Ma prima di usare la regolazione del bundle avresti dovuto abbinare il punto corrispondente sulle immagini usando qualcosa come SIFT o la corrispondenza del modello. Google per la ricostruzione 3Dper esempi di alcuni metodi completi. Puoi anche usare pacchetti open source per questo, ce ne sono diversi disponibili.

Se insisti nell'usare i contorni, il problema è molto più difficile, sebbene sia ancora (a malapena) trattabile. Per prima cosa dovrai identificare e abbinare i contorni corrispondenti in tutte le immagini, dopodiché scrivi la funzione di costo - della somma degli errori di riproiezione per ciascun gruppo di contorni abbinati come funzione dalla posizione e dall'orientamento della telecamera di ogni immagine. Successivamente, trova il set di posizioni della telecamera che minimizza questa funzione di costo. Ogni fase di questo processo è estremamente difficile e non esiste una buona panoramica come Triggs. È possibile cercare su Google alcuni articoli pertinenti in quanto una combinazione di termini "contorni" "conturisce la corrispondenza" "regolazione del fascio" "errore di riproiezione" "ricostruzione 3D".


Mentre è sicuramente più facile gestire le caratteristiche simili a SIFT, c'è un problema che SIFT nel mio dominio spesso cattura ombre / riflessi sulla superficie delle auto lucide, quindi usando SIFT sto ottenendo un'enorme quantità di funzioni di rumore che non si basano su un reale forma dell'auto quindi ho una diminuzione della precisione.
om-nom-nom,

Puoi provare un approccio basato sul modello se sai che stai guardando l'auto. Parametrizza il modello di auto generico e prova ad adattarlo all'immagine usando tutti i pixel dell'immagine. Scrivi la funzione di costo in funzione dei parametri della fotocamera e del parametro del modello di auto e minimizzala. Potrebbe funzionare (o no) - sembra che tu abbia un problema abbastanza difficile.
mirror2image

Sfortunatamente, non ho capito cosa mi hai proposto di fare. Fornisci alcuni esempi (potrebbe trattarsi di un articolo esterno, lavori correlati o qualcosa del genere).
om-nom-nom,

Intendo modello di forma attiva en.wikipedia.org/wiki/Active_shape_model o qualcosa di
simile

2

Dai un'occhiata alla ricostruzione del modello dalle immagini, che è un po 'diversa da quella che stai facendo, ma parlo di come passare dalle immagini a un modello 3d. Dai un'occhiata anche a MeshLab , ha alcuni algoritmi di ricostruzione in cui potresti essere in grado di inserire i tuoi dati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.