- Messaggi: 850
- Ringraziamenti ricevuti 118
Analisi anomalie foto Apollo con strumenti matematici
L'argomentazione di Oleynik è per assurdo, ed è formalmente corretta: [(A=>B)and(non ]=>non A. Parto dall'ipotesi A="lo sfondo si trova a 3km", questa implica B="lo sfondo non ha parallasse", verifico che invece vale non B="lo sfondo ha parallasse" e concludo non A="lo sfondo non è a 3km".doktorenko ha scritto:
Quest`obiezione l`avevo sollevata anch`io, nella discussione precedente, in merito al lavoro di Oleynik: cioe` se lo sfondo non e` virtualmente all`infinito -ovvero i punti presi come riferimento non giacciono sullo stesso piano- non e` possibile usarli per ottenere la matrice H che trasforma una posa nell`altra, e quindi poter calcolare la parallasse; ma e` pur vero che se lo sfondo non e` veramente "sfondo", ma abbastanza vicino, la parallasse sara` evidente sullo (pseudo)sfondo stesso: quindi di riffa o di raffa il sistema dovrebbe funzionare.FranZeta ha scritto: Ci sarebbe una ulteriore obiezione: se il lavoro di Oleynik è corretto lo sfondo non si trova affatto a 3 km ma a poche centinaia di metri. Dato che questa è la premessa del tuo ragionamento, se fosse falsa risulterebbe automaticamente inutile tutto ciò che segue, da premesse false può seguire tutto e il contrario di tutto: l'implicazione (formale) A=>B è sempre vera se A è falsa.
Per il resto non c'è nessun bisogno che i punti siano sullo stesso piano, solo che siano abbastanza lontani. Per esempio le stelle fisse sono tutte "all'infinito" ma non sono certo sullo stesso piano. Il sistema di Oleinik funziona perchè lui non vuole concludere che lo sfondo si trova a 137,68 m dalla fotocamera, ma "a non più di 150 m", e comunque sicuramente non a 3 km. Continui ad ignorare il problema dell'errore.
Quello che stai facendo è costruire il piano proiettivo associato alla scena, questo è il motivo per cui la distanza non cambia: tutti i punti che stanno sulla stessa retta passante per l'origine sono lo stesso punto proiettivo. Normalmente si usa un metodo molto più semplice: posizionata la fotocamera in (0,0,0) si prendono le coordinate dello spazio tridimensionale e si mettono due punti al posto delle virgole: (x,y,z)-->(x:y:z) et voilà, hai il tuo piano proiettivo. I due punti stanno ad indicare che si tratta di coordinate omogenee, cioè la terna è definita a meno di una costante diversa da zero. Non voglio rovinarti il divertimento di trovarti le cose da te, ma quello che non capisco è il motivo per cui fai tutta questa procedura: se hai una ricostruzione 3D hai sicuramente la possibilità di fare un rendering che fa quello che vorresti fare tu con precisione maggiore.Da ogni px_i faccio partire una retta r_i passante per O(0,0), e calcolo i punti di intersezione tra queste rette con le rette sulle quali giacciono i punti z(u,v) allineati per righe v.
........
Se avete notato, la trasformazione non cambia v: questo perche` possiamo considerare i punti di una stessa retta parallela al piano di proiezione tutti alla stessa distanza; ossia lo scostamento angolare dal centro avvicina i punti in rapporto al cos(a).
FranZη
Si prega Accesso a partecipare alla conversazione.
- doktorenko
- Autore della discussione
- Offline
- Utente
- Messaggi: 169
- Ringraziamenti ricevuti 8
FranZeta ha scritto: Per il resto non c'è nessun bisogno che i punti siano sullo stesso piano, solo che siano abbastanza lontani. Per esempio le stelle fisse sono tutte "all'infinito" ma non sono certo sullo stesso piano.
Io ho scritto "virtualmente all`infinito", e qui siamo d`accordo, poi ho aggiunto che uno sfondo abbastanza lontano (ad esempio una rilievo montuoso a piu` di 3km) possiamo considerarlo come se fosse bidimensionale (tutti i punti sullo stesso piano): non e` corretto?
Il sistema di Oleinik funziona perchè lui non vuole concludere che lo sfondo si trova a 137,68 m dalla fotocamera, ma "a non più di 150 m", e comunque sicuramente non a 3 km. Continui ad ignorare il problema dell'errore.
Scusa ma io ho scritto che: il sistema di Oleynik funziona nei due casi perche` 1) calcola la parallasse correttamente, oppure 2) evidenzia la vicinanza dello sfondo; ho aggiunto poi che non ha bisogno di tutta la precisione che invece occorre a me nel posizionare le camere, quindi non capisco il tuo appunto. Ma anche la mia procedura non avrebbe la necessita` di essere cosi` accurata, trattando una foto con un rilievo a grande distanza e un altro oggetto piu` vicino per la collimazione.
Non voglio rovinarti il divertimento di trovarti le cose da te, ma quello che non capisco è il motivo per cui fai tutta questa procedura: se hai una ricostruzione 3D hai sicuramente la possibilità di fare un rendering che fa quello che vorresti fare tu con precisione maggiore.
Con la mia procedura ho:
1) un maggiore controllo
2) posso estrarre facilmente le sagome dei rilievi per il confronto
3) posso esibire l`eventuale anomalia in modo matematico/geometrico e non "visuale", ad esempio segnalando le altezze che non tornano mediante gli indici x,y nella mappa dei dati altimetrici.
p.s.
Chiarisco meglio cosa intendevo dire sul metodo O.:
1) volevo rettificare la mia obiezione che avevo sollevato nella discussione precedente sul vecchio sito
2) volevo dire che il metodo funziona anche perche` il supposto errore della Nasa sarebbe veramente marchiano
E se la Nasa ha commesso lo stesso errore anche nella mancata "caduta" di vette lontane (quindi di parecchi metri), dovrei con il mio sistema scoprirlo abbastanza facilmente.
Si prega Accesso a partecipare alla conversazione.
Il fatto che i punti dello sfondo siano sullo stesso piano non fa alcuna differenza. Quello che conta è che siano abbastanza lontani. In questo modo si possono considerare punti all'infinito, che poi questi siano sono sullo stesso piano, il piano all'infinito appunto, dal punto di vista della posizione spaziale dei punti è irrilevante, dato che il piano all'infinito non appartiene allo spazio tridimensionale.doktorenko ha scritto: Io ho scritto "virtualmente all`infinito", e qui siamo d`accordo, poi ho aggiunto che uno sfondo abbastanza lontano (ad esempio una rilievo montuoso a piu` di 3km) possiamo considerarlo come se fosse bidimensionale (tutti i punti sullo stesso piano): non e` corretto?
Forse non ho chiarito sufficientemente il concetto che se parti da un errore iniziale E nella ricostruzione tridimensionale, puoi collimare finchè vuoi ma l'errore finale sarà necessariamente maggiore, non è una mia opinione ma è matematica pure questa.Ma anche la mia procedura non avrebbe la necessita` di essere cosi` accurata, trattando una foto con un rilievo a grande distanza e un altro oggetto piu` vicino per la collimazione.
Non direi proprio che hai maggiore controllo. Il rendering di default è impostato per ridurre al minimo i calcoli e di conseguenza gli errori nell'immagine finale. Se ricavi in 5 passaggi quello che si può ricavare in 1 hai già moltiplicato di almeno 5 volte il tuo errore. Resterebbe anche da controllare la correttezza dei passaggi, tra parentesi. In ogni caso la geometria proiettiva è matematica a tutti gli effetti, non c'è niente di "visuale", per fare un rendering il computer fa solo ed esclusivamente calcoli algebrici. Comunque direi che è meglio aspettare i risultati per altri commenti, l'unico suggerimento che ti darei a questo punto è che se non usi le coordinate omogenee che ho introdotto sopra non hai nessuna speranza di riuscire a trovare la matrice H che ti serve.Con la mia procedura ho:
1) un maggiore controllo
2) posso estrarre facilmente le sagome dei rilievi per il confronto
3) posso esibire l`eventuale anomalia in modo matematico/geometrico e non "visuale", ad esempio segnalando le altezze che non tornano mediante gli indici x,y nella mappa dei dati altimetrici.
FranZη
Si prega Accesso a partecipare alla conversazione.
- doktorenko
- Autore della discussione
- Offline
- Utente
- Messaggi: 169
- Ringraziamenti ricevuti 8
FranZeta ha scritto: Non direi proprio che hai maggiore controllo. Il rendering di default è impostato per ridurre al minimo i calcoli e di conseguenza gli errori nell'immagine finale. Se ricavi in 5 passaggi quello che si può ricavare in 1 hai già moltiplicato di almeno 5 volte il tuo errore.
La riduzione dei passaggi era proprio una mia preoccupazione: ad esempio considerare i punti di una retta parallela al piano di proiezione (come specificato sopra) tutti alla stessa distanza dal foro O, secondo me permette di semplificare il calcolo.
Resterebbe anche da controllare la correttezza dei passaggi, tra parentesi. In ogni caso la geometria proiettiva è matematica a tutti gli effetti, non c'è niente di "visuale", per fare un rendering il computer fa solo ed esclusivamente calcoli algebrici.
Naturalmente, ma per "visuale" (tra virgolette) intendevo dire che la matematica che produce l`immagine e` in secondo piano, non e` evidente come e` stato calcolata: anche se fosse una prova matematicamente corretta (per come e` stata ottenuta) non e` di immediata lettura e controllo. Mantenendo la stessa precisione e correttezza, io vorrei invece ottenere una prova di facile interpretazione: ad esempio punti, angoli, rette, ecc.; e di questi enti ho un maggior controllo usando un mio programma.
Parliamo ancora del metodo della parallasse; ho pensato a quest`altra possibile verifica, in merito alle foto AS15-86-11601 e AS15-86-11602.
procedura semplificata:
procedura completa:
Volendo si puo` saltare il punto 6) usando la matrice H_Ol originale (bisognerebbe chiederla ad Oleynik), oppure direttamente le sue immagini.
Pero` per me sarebbe importante sapere i valori di H_Ol: altrimenti si potrebbe obiettare, non conoscendo la procedura esatta di passaggio da un`immagine all`altra, che e` la trasformazione usata a causare un effetto di simil-parallasse.
Si prega Accesso a partecipare alla conversazione.
Il punto è che non fidarsi delle immagini del computer è come non fidarsi della sua calcolatrice, tanto varrebbe spegnere tutto e usare carta penna e calamaio. Come dicevo sopra, quello che fa il computer è prendere una scena 3D e ricavare l'immagine mediante coordinate omogenee. Posta la fotocamera nell'origine, se l'asse x è la direzione dell'inquadratura e y,z sono gli assi del piano di proiezione, allora le coordinate omogenee dei punti dell'immagine sono semplicemente (x:y:z), tradotte in coordinate cartesiane e considerando la focale diventano F*(y/x,z/x). Questo è il metodo standard, ma è anche il più semplice: 1 passaggio, qualunque altro metodo per calcolare la proiezione se è corretto deve portare allo stesso risultato in un numero di passaggi superiore.doktorenko ha scritto: La riduzione dei passaggi era proprio una mia preoccupazione: ad esempio considerare i punti di una retta parallela al piano di proiezione (come specificato sopra) tutti alla stessa distanza dal foro O, secondo me permette di semplificare il calcolo.
....
Naturalmente, ma per "visuale" (tra virgolette) intendevo dire che la matematica che produce l`immagine e` in secondo piano, non e` evidente come e` stato calcolata: anche se fosse una prova matematicamente corretta (per come e` stata ottenuta) non e` di immediata lettura e controllo. Mantenendo la stessa precisione e correttezza, io vorrei invece ottenere una prova di facile interpretazione: ad esempio punti, angoli, rette, ecc.; e di questi enti ho un maggior controllo usando un mio programma.
Dovresti anche considerare che la computer grafica è una materia altamente sviluppata e specializzata, non puoi pensare di metterti lì ragionando sui triangoli simili e trovare un metodo più efficiente di quello già implementato, sviluppato in secoli di ricerche (sì perchè la materia nasce con ser Filippo Brunelleschi...). Inoltre stiamo ignorando la questione colori/illuminazione che invece è importante per poter trovare la corrispondenza fra i punti dello sfondo. Vorrei chiarire che se faccio questi appunti non è per fare il guastafeste, è perchè mi immagino le enormi difficoltà a cui andresti incontro e perchè non c'è proprio bisogno di affrontarle, il paragone della calcolatrice qui sopra non è un'esagerazione.
Per quanto riguarda il problema dell'errore iniziale e di quale possa essere il suo peso, quella che segue è una scansione del formulario del testo Introduzione all'analisi degli errori di J.R.Taylor, propedeutico ai corsi di Laboratorio di Fisica, per dare un'idea di cosa sia la propagazione dell'errore:
Infatti questa è proprio la fonte di incertezza riguardo ai suoi risultati, se si verifica che questo passaggio è stato eseguito con la dovuta precisione quella di Oleynik diventa una dimostrazione rigorosa. Si può provare a ripetere il suo processo scegliendo 4 punti idonei sullo sfondo delle due immagini che prende in considerazione, cambiare metodo per fare questa verifica non avrebbe molto senso, anche perchè Oleynik ha già scelto la via più comoda. Comunque se confronti 2 immagini generate dal modello 3D non puoi trovare una parallasse nello sfondo, altrimenti hai sbagliato qualcosa, se lo sfondo nel modello è realmente lontano deve avere parallasse zero per due pose vicine tra loro.Pero` per me sarebbe importante sapere i valori di H_Ol: altrimenti si potrebbe obiettare, non conoscendo la procedura esatta di passaggio da un`immagine all`altra, che e` la trasformazione usata a causare un effetto di simil-parallasse.
A questo punto direi che è opportuno chiarire come si ricava la famosa matrice H, la scansione seguente è il calcolo nel caso monodimensionale, ho tolto cioè una dimensione e invece del piano siamo sulla retta proiettiva. Si vuole trovare la proiettività H che trasforma i 3 punti p,q,r in p',q'r'; ricordo che H è definita a meno di una costante diversa da zero. Prima trovo le componenti della matrice in funzione dei rapporti mu_i/lambda_i usando i primi due punti, poi ricavo questi rapporti in funzione di una costante -arbitraria- k usando il terzo. La soluzione finale (che non ho esplicitato) si ottiene sostituendo questi valori nelle espressioni delle h_ij, come si può verificare il risultato finale comprende la costante k, come è giusto che sia:
Il caso bidimensionale si tratta allo stesso modo, quello che cambia è che ora servono 4 punti e le h_ij passano da 4 a 9, mentre i sottosistemi di 2 incognite in 2 equazioni (le espressioni che precedono le frecce "=>") diventano 3x3, servirà quindi un po' più di pazienza.
FranZη
Si prega Accesso a partecipare alla conversazione.
- doktorenko
- Autore della discussione
- Offline
- Utente
- Messaggi: 169
- Ringraziamenti ricevuti 8
FranZeta ha scritto: Il punto è che non fidarsi delle immagini del computer è come non fidarsi della sua calcolatrice, tanto varrebbe spegnere tutto e usare carta penna e calamaio. Dovresti anche considerare che la computer grafica è una materia altamente sviluppata e specializzata, non puoi pensare di metterti lì ragionando sui triangoli simili e trovare un metodo più efficiente di quello già implementato, sviluppato in secoli di ricerche (sì perchè la materia nasce con ser Filippo Brunelleschi...). Inoltre stiamo ignorando la questione colori/illuminazione che invece è importante per poter trovare la corrispondenza fra i punti dello sfondo. Vorrei chiarire che se faccio questi appunti non è per fare il guastafeste, è perchè mi immagino le enormi difficoltà a cui andresti incontro e perchè non c'è proprio bisogno di affrontarle, il paragone della calcolatrice qui sopra non è un'esagerazione.
Non sei per nulla un guastafeste, anzi il rigore matematico e` il succo di questa discussione, pero` tu mi costringi a puntualizzare cose che non ho mai inteso dire: ad esempio che non mi fiderei dei programmi di modellazione tridimensionale, o ancora peggio, che non mi fiderei della matematica che ci sta dietro: io ho solo detto che vorrei avere un maggior controllo mantenendo la stessa correttezza e precisione. Un esempio di questo maggior controllo potrebbe essere conoscere, per ogni punto dell`immagine risultante, la coordinata x,y,z che l`ha prodotto: questo non lo so fare con i programmi 3d di cui dispongo; potrei imparare a farlo o usare altri programmi: magari in futuro, altrimenti non riusciamo ad avanzare con la discussione :wink:
Adesso finalmente posto un`immagine: e` la procedura "semplificata" (anche se forse sarebbe meglio indicarla come "banale") spiegata nel mio precedente messaggio: la ricostruzione approssimativa della scena della foto Apollo15-11602 da due inquadrature a circa un metro di distanza, con il rilievo da analizzare sullo sfondo.
Da questa ricostruzione non si nota nessuna parallasse del cratere.
Comunque se confronti 2 immagini generate dal modello 3D non puoi trovare una parallasse nello sfondo, altrimenti hai sbagliato qualcosa, se lo sfondo nel modello è realmente lontano deve avere parallasse zero per due pose vicine tra loro.
Hai ragione: per saperlo bastava anche solo la mappa con i punti del fotografo e del cratere: ma ora abbiamo pure la conferma "visuale" :wink: che il rilievo e` abbastanza distante dal fotografo, secondo i dati della sonda altimetrica.
Per il confronto:
Per completezza bisogna anche dire che la teoria di O. si basa sul presupposto (che ho adottato anch`io, senza troppi approfondimenti) che la camera non apporti nessuna percepibile deformazione oltre a quella prospettica. Questo sarebbe un punto da esaminare con cura prima di trarre conclusioni certe.
Si prega Accesso a partecipare alla conversazione.
- doktorenko
- Autore della discussione
- Offline
- Utente
- Messaggi: 169
- Ringraziamenti ricevuti 8
FranZeta ha scritto: Dovresti anche considerare che la computer grafica è una materia altamente sviluppata e specializzata, non puoi pensare di metterti lì ragionando sui triangoli simili e trovare un metodo più efficiente di quello già implementato, sviluppato in secoli di ricerche (sì perchè la materia nasce con ser Filippo Brunelleschi...). Inoltre stiamo ignorando la questione colori/illuminazione che invece è importante per poter trovare la corrispondenza fra i punti dello sfondo. Vorrei chiarire che se faccio questi appunti non è per fare il guastafeste, è perchè mi immagino le enormi difficoltà a cui andresti incontro e perchè non c'è proprio bisogno di affrontarle, il paragone della calcolatrice qui sopra non è un'esagerazione.
Per riassumere, tu dici:
1) la procedura corretta e minimale per il calcolo e` quella
2) il tuo risultato lo devi confrontare con la 1)
3) ogni passaggio supplementare e` inutile e dannoso
Fino a qua credo di aver capito, ed era infatti una mia preoccupazione fin dall`inizio, pero` io sono convinto di fare meno calcoli: ad esempio non ruoterei i punti in accordo alla camera (per averla orientata lungo un asse), ma "orienterei" la camera deformando successivamente una proiezione ottenuta con i punti non ruotati o ruotati per salti di 45 gradi.
Quindi alla fine mi sembra di fare meno passaggi, tenuto conto che la trasformazione omografica dovrei farla in ogni caso.
Per l`illuminazione in realta` ci avevo pensato: per adesso la ottengo banalmente dall`angolo del terreno con il Sole, senza calcolare le ombre gettate e la luce ambientale; per evidenziare i crateri e la direzione solare dovrebbe essere sufficiente.
Un esempio di questa tecnica applicata in 2d:
e in 3d:
p.s.
Come da tuo suggerimento, sto cercando di rielaborare la procedura mediante le coordinate omogenee; per il momento direi quindi di considerare in sospeso la questione. :wave:
Ti ringrazio per il prezioso contributo e la pazienza :pint:
Si prega Accesso a partecipare alla conversazione.
Il passaggio imprescindibile è che la fotocamera sia nell'origine dello spazio tridimensionale (d'ora in poi lo chiamerò col suo nome tecnico: R^3). Indipendentemente da come sia orientata rispetto al sistema di coordinate, le coordinate omogenee del piano proiettivo (P^2) sono sempre le stesse: (x:y:z) (si trovano anche notazioni differenti per le coordinate omogenee: [x,y,z], [x;y;z] o altro ancora, io preferisco la notazione coi due punti perchè non presenta ambiguità, si usa solo ed esclusivamente in questo caso). Però se abbiamo scelto le coordinate di R^3 allineate con la macchina fotografica e la pellicola, diventa immediato ricavare le corrispondenti coordinate cartesiane nella foto, quindi è meglio fare prima una rotazione delle coordinate in R^3, piuttosto che poi una proiettività in P^2, ma prima o dopo la trasformazione va fatta e il numero di "passaggi" è sempre quello. Tra l'altro la proiettività che si usa è proprio quella indotta dalla rotazione.doktorenko ha scritto: Per riassumere, tu dici:
1) la procedura corretta e minimale per il calcolo e` quella
2) il tuo risultato lo devi confrontare con la 1)
3) ogni passaggio supplementare e` inutile e dannoso
Fino a qua credo di aver capito, ed era infatti una mia preoccupazione fin dall`inizio, pero` io sono convinto di fare meno calcoli: ad esempio non ruoterei i punti in accordo alla camera (per averla orientata lungo un asse), ma "orienterei" la camera deformando successivamente una proiezione ottenuta con i punti non ruotati o ruotati per salti di 45 gradi.
Quindi alla fine mi sembra di fare meno passaggi, tenuto conto che la trasformazione omografica dovrei farla in ogni caso.
Ecco, se usi le coordinate omogenee puoi confrontarle direttamente senza nessuna rotazione. La rotazione era comoda più che altro per il discorso della "caduta dei rilievi", parlando invece del metodo Oleynik lavorare direttamente in coordinate omogenee è la cosa migliore.Come da tuo suggerimento, sto cercando di rielaborare la procedura mediante le coordinate omogenee; per il momento direi quindi di considerare in sospeso la questione. :wave:
Di niente, colgo l'occasione per ripassare un po' di argomenti che non riguardavo da parecchi anni. In effetti l'argomento della mia tesi riguardava la geometria proiettiva, anche se da un punto di vista decisamente più astratto di quello che stiamo affrontando qui. Se ti può interessare qualche anno fa ho scritto un breve saggio sulla geometria proiettiva pensato per dei ragazzi della quarta liceo, puoi trovare una introduzione alle coordinate omogenee del piano con alcuni esempi: Rette e ConicheTi ringrazio per il prezioso contributo e la pazienza :pint:[/color]
FranZη
Si prega Accesso a partecipare alla conversazione.
- doktorenko
- Autore della discussione
- Offline
- Utente
- Messaggi: 169
- Ringraziamenti ricevuti 8
A questo punto direi che è opportuno chiarire come si ricava la famosa matrice H ...
Se non ho capito male O. ricava la matrice usando tutti i punti dello sfondo, cercando con la forza bruta la combinazione di valori che minimizza la differenza di colore tra l`immagine di riferimento e la seconda deformata.
E` interessante anche la conclusione che trae successivamente: cioe` che la deformazione non e` dovuta alla parallasse, ma ad una deformazione dell`immagine non originata da diffetti/caratteristiche ottiche dell`obiettivo, ma causata dalla tecnica di falsificazione: la proiezione dello sfondo su di una superficie curva.
Anche questo punto potrebbe essere oggetto di analisi: ad esempio si potrebbe verificare se esiste una deformazione che varia da fotografia a fotografia, cosi` da escludere una sua origine ottica.
Cercando i punti di riferimento sull`immagine (a15-16102) credo di essere incappato in un tipo di deformazione non di origine prospettica o dovuta al posizionamento della camera:
La telecamera e` collimata sul cratere "bianco"; come si puo` notare il mio modello e` "stirato" nel senso della larghezza rispetto all`immagine della Nasa. Questo stiramento (salvo miei errori, tutt`altro che improbabili) non riesco a spiegarlo: se fosse di origine ottica, non dovrebbe dipendere dalla distanza complessiva dal centro, e non solo dalla distanza orizzontale?
@FranZeta:
Questo e` un esempio di cio` che intendo per "maggiore controllo": l`immagine l`ho ottenuta con un programma di modellazione 3d, ma vai sapere che cosa posso aver sbagliato: parametri di scala, altezze sbagliate, opzioni mal selezionate, ecc..
p.s.
appena posso tento una verifica di questa presunta anomalia usando le coordinate omogenee.
Si prega Accesso a partecipare alla conversazione.
Beh devo dire che come prima immagine non c'è male, mi aspettavo di peggio. Mi sembra che che ci sia anche un piccolo stiramento in senso verticale, più una leggera rotazione oraria, potrebbe anche essere una deformazione di tipo prospettico nel complesso. I crateri che si vedono sono distanti km? Nel qual caso li puoi usare come punti di riferimento per trovare l'omografia tra le due immagini, anche se non sono propriamente punti dello sfondo.doktorenko ha scritto: La telecamera e` collimata sul cratere "bianco"; come si puo` notare il mio modello e` "stirato" nel senso della larghezza rispetto all`immagine della Nasa. Questo stiramento (salvo miei errori, tutt`altro che improbabili) non riesco a spiegarlo: se fosse di origine ottica, non dovrebbe dipendere dalla distanza complessiva dal centro, e non solo dalla distanza orizzontale?
In realtà questo non è fondamentale, perchè è vero che garantisce una maggiore precisione nell'identificare i punti, ma il risultato a cui arriva è per forza ottenibile stabilendo corrispondenze fra quattro punti nelle due immagini. Più precisamente, qualunque sia l'omografia che trova Oleynik, presi quattro punti sullo sfondo della prima immagine (a tre a tre non allineati, solito presupposto), esistono quattro punti sullo sfondo della seconda che associati ai primi definiscono la stessa omografia.Se non ho capito male O. ricava la matrice usando tutti i punti dello sfondo, cercando con la forza bruta la combinazione di valori che minimizza la differenza di colore tra l`immagine di riferimento e la seconda deformata.
FranZη
Si prega Accesso a partecipare alla conversazione.
- doktorenko
- Autore della discussione
- Offline
- Utente
- Messaggi: 169
- Ringraziamenti ricevuti 8
FranZeta ha scritto: Beh devo dire che come prima immagine non c'è male, mi aspettavo di peggio.
Questa allora dovrebbe essere ancora meglio: e` piu` definita e ho aggiunto i vettori dello spostamento (misurati ad occhio) dei crateri. il punto che ho usato per collimare la camera e` D7:
Mi sembra che che ci sia anche un piccolo stiramento in senso verticale, più una leggera rotazione oraria, potrebbe anche essere una deformazione di tipo prospettico nel complesso. I crateri che si vedono sono distanti km? Nel qual caso li puoi usare come punti di riferimento per trovare l'omografia tra le due immagini, anche se non sono propriamente punti dello sfondo.
Parlando come se fosse la mia immagine ad essere deformata, io vedo solo un chiaro stiramento orizzontale; la rotazione in senso orario puo` dipendere facilmente dalla camera, che non ho ancora finito di allineare. Sono interessanti anche i punti D10 e D14 che deviano dallo schema generale di deformazione.
In realtà questo non è fondamentale, perchè è vero che garantisce una maggiore precisione nell'identificare i punti, ma il risultato a cui arriva è per forza ottenibile stabilendo corrispondenze fra quattro punti nelle due immagini. Più precisamente, qualunque sia l'omografia che trova Oleynik, presi quattro punti sullo sfondo della prima immagine (a tre a tre non allineati, solito presupposto), esistono quattro punti sullo sfondo della seconda che associati ai primi definiscono la stessa omografia.
Comunque prima delle omografie vorrei valutare le altre eventuali deformazioni (ottiche o di altro tipo non prospettico).
NOTA:
Mi sono accorto di non aver applicato la curvatura al modello 3d, potrebbe esserci allora anche un leggero schiacciamento verso il basso dei punti piu` lontani.
@FranZeta:
mi chiedevi delle distanze dei crateri: D6 4 km, D2 5 km, D9 7 km, D14 8.5km
Si prega Accesso a partecipare alla conversazione.
- doktorenko
- Autore della discussione
- Offline
- Utente
- Messaggi: 169
- Ringraziamenti ricevuti 8
Usando i punti 5,6,10,11:
Posizione pixel x,y riferita al centro:
p.s.
Scusate se non mi dilungo, ma adesso non ne ho la possibilita`; in seguito cerchero` di scomporre la matrice omografica per calcolare gli angoli di scostamento della camera tra le due inquadrature: stando all`ipotesi di O., essi potrebbero equivalere all`angolo di inclinazione della superficie che riproduce artificialmente lo sfondo rispetta al fotografo.
Vorrei poi ripetere l`omografia anche con la foto gemella (A15-11601) per vedere se la matrice omografica cambia in maniera corrispondente alla differenza di angolatura delle due camere.
Si prega Accesso a partecipare alla conversazione.
- doktorenko
- Autore della discussione
- Offline
- Utente
- Messaggi: 169
- Ringraziamenti ricevuti 8
FranZeta ha scritto: In realtà questo non è fondamentale, perchè è vero che garantisce una maggiore precisione nell'identificare i punti, ma il risultato a cui arriva è per forza ottenibile stabilendo corrispondenze fra quattro punti nelle due immagini. Più precisamente, qualunque sia l'omografia che trova Oleynik, presi quattro punti sullo sfondo della prima immagine (a tre a tre non allineati, solito presupposto), esistono quattro punti sullo sfondo della seconda che associati ai primi definiscono la stessa omografia.
Questo e` vero solo se tra le due fotografie la omografia e` lecita, cioe` se la posizione della camera nelle due pose e` fissa: altrimenti l`omografia vale solo per i punti complanari a quelli usati per calcolare la deformazione. Quindi se lo sfondo fosse costituito da una fotografia proiettata su di un piano, l`omografia dovrebbe valere per tutti i punti; questa pero` non e` la conclusione di O.: per spiegare questa discrepanza, che non ci sarebbe stata nel caso di sfondo reale ma distante chilometri, ipotizza una proiezione su di una superficie curva.
Per riassumere, in caso di traslazione della camera:
1) se lo sfondo e` tridimensionale e lontano: nessuna parallassi visibile, ed e` possibile un omografia che vale per tutti i punti (sfondo idealmente all`infinito)
2) se lo sfondo e` tridimensionale ma ravvicinato: abbiamo una parallassi visibile, e non e` possibile un omografia che vale per tutti i punti
3) se lo sfondo e` bidimensionale (proiezione di una fotografia su di una superficie piana): abbiamo una parallassi ma e` possibile calcolare l`omografia corretta per tutti i punti dello stesso
4) se lo sfondo e` tri/bidimensionale (proiezione di una fotografia su di una superficie curva): caso ipotizzato da O.
Nel punto 3) la parallassi dello sfondo e` la stessa risultante dal medesimo spostamento della camera, ma in scala.
Le mie prime omografie sembrano piu` compatibili con questa situazione: la posizione della camera e` corretta per gli elementi in primo piano (modulo lunare), non per lo sfondo (stimo un errore di posizionamento sull`ordine delle centinaia di metri).
Faccio delle ipotesi per giustificare questo scarto, chiamando P_1 la posizione del fotografo corretta per il primo piano, P_2 quella per lo sfondo:
Si prega Accesso a partecipare alla conversazione.
doktorenko ha scritto:
Questo e` vero solo se tra le due fotografie la omografia e` lecita, cioe` se la posizione della camera nelle due pose e` fissa: altrimenti l`omografia vale solo per i punti complanari a quelli usati per calcolare la deformazione. Quindi se lo sfondo fosse costituito da una fotografia proiettata su di un piano, l`omografia dovrebbe valere per tutti i punti; questa pero` non e` la conclusione di O.: per spiegare questa discrepanza, che non ci sarebbe stata nel caso di sfondo reale ma distante chilometri, ipotizza una proiezione su di una superficie curva.
No, un momento, il discorso della complanarità non c'entra ed è opportuno dimenticarselo per non confondere le cose. Si usano 4 punti del piano proiettivo per ricavare l'omografia, ma la loro reale posizione spaziale non è nota, non è importante e soprattutto il fatto che siano complanari non cambia le cose. Che stanno come affermi nel tuo punto 3): se i punti "lontani" sono proiezioni su uno schermo vicino, non esiste comunque una proiettività tra due foto prese da posizioni diverse, esiste una proiettività parziale fra i due schermi che però non funziona per i restanti punti dell'immagine, e che comunque restituirebbe una parallasse sbagliata per i punti vicini.
Abbiamo già stabilito cosa fa Oleynik, trova una omografia che trasforma i due sfondi uno nell'altro e calcola le distanze degli oggetti vicini usando la parallasse. Ma nel caso delle foto lunari ciò non avviene mai, cioè le foto mostrano tutte una parallasse dello sfondo, ciò non toglie che usi pur sempre una proiettività prima di sovrapporre le foto. Poi nella fase successiva passa a prendere in considerazione il caso in cui lo sfondo sia proiettato su uno schermo curvo a un centinaio di metri dall'obiettivo, allora per sovrapporre i due sfondi bisogna ricorrere a trasformazioni più complicate delle proiettività.
E' a questo punto che dice di aver trattato le foto pixel per pixel facendo risolvere al computer un sistema con un milione di equazioni, quindi se ti riferivi a questo quando dicevi:
la questione della forza bruta riguarda solo la seconda parte del suo lavoro, forse mi è sfuggito ma nella prima parte non menziona il metodo effettivo usato. Quindi se vogliamo riassumere l'argomentazione di Oleynik è nella prima parte per assurdo, applicando il procedimento della parallasse alle foto lunari e dimostrando che non funziona mai, dato che l'unica ipotesi usata è che gli sfondi siano lontani km, ne deduce che questa sia in effetti falsa. Nella seconda parte usa invece un'argomentazione analitica: partendo dall'ipotesi che gli sfondi siano proiezioni su schermo ricava la forma e le dimensioni approssimative dello schermo e del teatro di posa.Se non ho capito male O. ricava la matrice usando tutti i punti dello sfondo, cercando con la forza bruta la combinazione di valori che minimizza la differenza di colore tra l`immagine di riferimento e la seconda deformata.
Veniamo alle tue prime foto, ho provato a fare un confronto a occhio anch'io tra i vettori spostamento che avevi segnato per verificare se in effetti le deformazioni della prima coppia di immagini ( commento 8957 ) possano essere imputabili a un'omografia.
Nell'immagine sotto (la foto Apollo a cui hai applicato l'omografia) ho cerchiato in rosso i 4 punti usati per la trasformazione, nell'immagine sopra (foto Apollo originale con segnati i vettori spostamento rispetto alla tua ricostruzione) ho trovato solo due di questi punti, cerchiati pure in rosso: O5-->D5 e O6-->D8. Per come hai ricavato la seconda immagine i vettori associati a questi punti devono essere uguali e opposti nelle due immagini, e se gli sfondi sono effettivamente legati da proiettività questo deve valere per tutti gli altri punti, tra l'altro a parte una sottile striscia in primo piano quasi tutti i punti dell'immagine si possono considerare sfondo, vista la distanza che dovrebbero avere.
Quindi ho cerchiato con colori uguali i punti corrispondenti, preciso che non è necessario che siano proprio esattamente gli stessi, basta che siano abbastanza vicini, e sembrerebbe esserci una buona correlazione tra i relativi vettori. Questo significa che in effetti i due sfondi sono abbastanza vicini ad essere in corrispondenza omografica, anche se però qualche piccola anomalia pare comunque esserci.
Diciamo che fra queste manca l'ipotesi Oleynik: lo sfondo è proiettato su uno schermo leggermente curvo, per ora potremmo ricadere anche in questa. Per azzardare nuove conclusioni occorrerebbe ripetere il procedimento sulla seconda foto Apollo e poi analizzare i vettori-spostamento fra le due immagini sottoposte a omografia rispetto alla tua ricostruzione 3D. Bisogna anche ammettere che in effetti Oleynik col suo sistema da un milione di equazioni è riuscito a far coincidere quasi perfettamente i due sfondi, quindi o ha mentito spudoratamente sul sistema utilizzato oppure è diversi passi davanti a noi:Faccio delle ipotesi per giustificare questo scarto, chiamando P_1 la posizione del fotografo corretta per il primo piano, P_2 quella per lo sfondo...
immagine
FranZη
Si prega Accesso a partecipare alla conversazione.
- doktorenko
- Autore della discussione
- Offline
- Utente
- Messaggi: 169
- Ringraziamenti ricevuti 8
FranZeta ha scritto: No, un momento, il discorso della complanarità non c'entra ed è opportuno dimenticarselo per non confondere le cose. Si usano 4 punti del piano proiettivo per ricavare l'omografia, ma la loro reale posizione spaziale non è nota, non è importante e soprattutto il fatto che siano complanari non cambia le cose.
Io volevo dire che se sono complanari e` comunque possibile, nel caso di una traslazione della telecamera, un`omografia parziale che vale solo per questo piano.
Veniamo alle tue prime foto, ho provato a fare un confronto a occhio anch'io tra i vettori spostamento che avevi segnato per verificare se in effetti le deformazioni della prima coppia di immagini
Scusami per i nomi dei punti, ma ho cambiato sistema di individuazione e non ho pensato di mantenerli nello steso ordine.
Per azzardare nuove conclusioni occorrerebbe ripetere il procedimento sulla seconda foto Apollo e poi analizzare i vettori-spostamento fra le due immagini
sottoposte a omografia rispetto alla tua ricostruzione 3D.
Si` e proprio quello che volevo fare, ma la foto 11601 purtroppo e` di cattiva qualita` e questo rende piu` difficile l`individuazione dei crateri.
Bisogna anche ammettere che in effetti Oleynik col suo sistema da un milione di equazioni è riuscito a far coincidere quasi perfettamente i due sfondi, quindi o ha mentito spudoratamente sul sistema utilizzato oppure è diversi passi davanti a noi.
Anche la mia combacia abbastanza (ho notato adesso un errore nella selezione del punto D6 e D10 che vedro` di correggere):
Nel caso riuscissi a far coincidere i miei modelli 3d con le foto Apollo, per la proprieta` transitiva dovrebbe essere possibile anche un`omografia tra lo sfondo delle foto reali, in contraddizione pero` con i risultati ottenuti da O.
Questa e` la matrice omografica che ho usato, la copio come me la fornisce il programma, non fare caso alla precisione assurda dei numeri:
Matrice camera:
K=array([[ 4.60000000e+03, 0.00000000e+00, 2.08750000e+03],
[ 0.00000000e+00, 4.60000000e+03, 2.08750000e+03],
[ 0.00000000e+00, 0.00000000e+00, 1.00000000e+00]])
Matrice omografica:
H= ([[ 1.17636701e+00, 4.63316892e-03, -2.02624600e+02],
[ 4.73366545e-02, 1.04359893e+00, -3.17726934e+01],
[ 2.03244646e-05, 1.58708477e-05, 1.00000000e+00]])
Scomposizione H in angoli di Eulero:
ax,ay,az=[4.310592268253919, -4.635486989699652, -2.633711923822946]
Si prega Accesso a partecipare alla conversazione.
- doktorenko
- Autore della discussione
- Offline
- Utente
- Messaggi: 169
- Ringraziamenti ricevuti 8
1) omografia valida per il maggior numero di punti possibili dello sfondo
Questa omografia "media" dovrebbe annullare la deformazione prospettica tra i due scatti e al contempo preservare la parallasse nello sfondo e in primo piano.
Difficolta`:
a) per preservare la parallasse reale non si dovrebbe avere la possibilita` di un`omografia completa dello sfondo/riferimento, e non "media"?
(Con questo metodo la parallasse si manifesta, non lo metto in dubbio: quello che non capisco e` quale valore ha questa parallasse, e che rapporto ha con quello reale)
2) griglia di distorsione applicata alla foto e all`immagine omografica per fare coincidere lo sfondo
Questo punto non mi e` chiaro per niente:
b) usa una matrice per ogni immagine? (credo di si`, pero` ne mostra sempre una)
c) le due matrici sono in rapporto tra di loro in base all`omografia calcolata in precedenza?
d) cosa rappresenta il risultato? lo stesso sfondo artificiale visto da quel punto, ma come se fosse proiettato su di una superficie piana?
Ho provato a fare un`omografia dell`immagine con lo sfondo "raddrizzato" (punto 2) ottenuta da O. usando il mio modello come riferimento:
Questa combacia di piu` delle altre perche` in quelle che ho postato in precedenza l`individuazione del punto O10 nel mio modello era sbagliata (e non di poco), quindi il risultato sembrava quasi-corretto solo per caso: un altro punto a favore di O.
Comunque dovrei trovare un sistema per raggiungere una maggiore accuratezza nella selezione dei punti, scendendo nella frazione di pixel.
Si prega Accesso a partecipare alla conversazione.
Come dicevo in altri commenti questo è il punto debole dell'argomentazione. Se non spiega esattamente quello che fa in questa prima fase si può pensare che ci sia qualche trucco, o errore. Ma, fatto salvo per il criterio del "massimo nero nello sfondo" di cui parla, criterio in effetti abbastanza "oscuro", non dà molte informazioni. Tuttavia non è ambiguo quando afferma di usare trasformazioni ottiche, quindi la sua omografia, ancorchè "media", può essere ottenuta associando punti opportuni delle immagini, resta quindi da verificare l'effettiva corrispondenza. Da quello che ho capito però se cercassimo di risalire ai punti in questione troveremmo che sono tutti nella parte nera dell'immagine, questo perchè lo sfondo presenta una parallasse e per soddisfare il suo criterio di massimo bisogna scegliere dei punti effettivamente all'infinito, e gli unici disponibili sono nella parte nera dell'immagine. Detto in altre parole: scegliendo punti sullo sfondo otterrebbe sì 4 punti fissi, ma tutto il resto presenterebbe una distorsione/parallasse ancora maggiore.doktorenko ha scritto: Non per criticare, ma per capire meglio il metodo di O. (che e` ucraino e non russo, come avevo scritto in precedenza) segnalo i punti che non mi sono del tutto chiari:
1) omografia valida per il maggior numero di punti possibili dello sfondo
Questa omografia "media" dovrebbe annullare la deformazione prospettica tra i due scatti e al contempo preservare la parallasse nello sfondo e in primo piano.
Difficolta`:
a) per preservare la parallasse reale non si dovrebbe avere la possibilita` di un`omografia completa dello sfondo/riferimento, e non "media"?
(Con questo metodo la parallasse si manifesta, non lo metto in dubbio: quello che non capisco e` quale valore ha questa parallasse, e che rapporto ha con quello reale)
b) No, usa più matrici per ogni immagine, come abbiamo visto una matrice (3x3) è per forza un'omografia, ma in questo caso non basta: divide l'immagine in settori e calcola una sorta di omografia parziale per ogni settore.2) griglia di distorsione applicata alla foto e all`immagine omografica per fare coincidere lo sfondo
Questo punto non mi e` chiaro per niente:
b) usa una matrice per ogni immagine? (credo di si`, pero` ne mostra sempre una)
c) le due matrici sono in rapporto tra di loro in base all`omografia calcolata in precedenza?
d) cosa rappresenta il risultato? lo stesso sfondo artificiale visto da quel punto, ma come se fosse proiettato su di una superficie piana?
c) a questo punto verifica che la distorsione dei singoli settori è compatibile con lo stesso tipo di griglia (deformazione dello sfondo)
d) Se ti riferisci all'immagine che ho linkato credo di no, dovrebbe trattarsi della sovrapposizione delle due immagini nella stessa modalità del metodo della parallasse, solo che per ottenere questa sovrapposizione al posto di una semplice proiettività ha dovuto usare il sistema della griglia di proiezione e l'analisi pixel per pixel. In sostanza dice: toh, sono riuscito a far coincidere gli sfondi, ma non avete idea di che casino...altro che trasformazioni ottiche, questa cosa funziona solo nel caso di schermi curvi a una distanza di 100-120 metri.
E' interessante anche come poi, sulla base della parallasse di queste foto, stimi la distanza degli oggetti 3D con un errore di "non oltre il 60%", che può sembrare tanto ma in realtà è molto più accurato del necessario, visto che le differenze fra distanze misurate e distanze teoriche è enorme. Il fatto che sia arrivato a stimare il limite dell'errore significa che ha un buon controllo di tutto il processo. A meno che, ovviamente, non stia mentendo spudoratamente pure qui, non lo sto a ripetere...
FranZη
Si prega Accesso a partecipare alla conversazione.
- doktorenko
- Autore della discussione
- Offline
- Utente
- Messaggi: 169
- Ringraziamenti ricevuti 8
Non si nota alcuna deformazione rispetto alla foto reale; A15-11599, collimata con il cratere vicino alla mano dell`astronauta:
(il taglio del cratere principale e` dovuta alla mancanza di dati altimetrici per quella zona)
Elenchiamo quelle che potrebbero essere le differenze tra i due scatti:
1) caratteristiche macchina fotografica
2) distanza del soggetto dal centro immagine (deformazione dovuta all`obiettivo)
3) errore nella stima della posizione nel modello 3d / sfondo artificiale angolato / sfondo artificiale che proietta una foto/ricostruzione ripresa da un altro punto (deformazione omografica)
1) credo sia lo stesso modello
2) la porzione A14-9487 interessante per il confronto con il modello 3d corrisponde all`intera riga centrale, mentre in A15-11599 la zona e` posta piu` in alto; questa differenza pero` non mi pare giustificare questo tipo di deformazione.
3) questo tipo di deformazione mi sembra invece principalmente dovuta ad un`omografia, causata da una diversa angolazione di ca. 4 gradi/diverso posizionamento di centinaia di metri.
Una possibile verifica potrebbe essere quella di valutare se anche i soggetti in primo piano subiscono la stessa deformazione, basandosi sulle proporzioni del veicolo lunare e sulla prima linea di orizzonte, posta a circa 300m di distanza.
Si prega Accesso a partecipare alla conversazione.
- doktorenko
- Autore della discussione
- Offline
- Utente
- Messaggi: 169
- Ringraziamenti ricevuti 8
Sempre in merito alle foto gemelle di O. pensavo di:
1) misurare distanza e orientamento R relativo delle camere nei due scatti, collimando la scena con una ricostruzione 3d, usando come riferimento gli oggetti in primo piano (ad es.: veicolo lunare)
2) calcolare la matrice K della macchina fotografica originale
3) calcolare la matrice omografica H usando la formula:
Matrice K:
Non ho completato il punto 1), ma ad una prima approssimazione le camere hanno questi angoli:
Con questa convenzione:
La distanza stimata tra i due scatti e` di circa 50 cm.
La matrice l`ho fatta calcolare al computer; pero` prima ho dovuto cambiare convenzione agli angoli: invertendo di segno az e scambiandolo con ay; per l`angolo di rollio ho stimato 0.8 gradi, confrontando il riferimento e l`omografia (questi sono passaggi che devo controllare).
Conoscendo K (matrice calibrazione camera) e R (matrice rotazione tra i due scatti), si puo` calcolare H:
L`immagine finale non risulta collimata, quindi ho provveduto a ri-collimarla usando un punto centrale come riferimento.
Io direi che la cosa piu` evidente e` la diversa scala del fondo: bisogna capire se e` reale o e` stata introdotta in qualche modo. A me sembrerebbe comunque esagerata, per un avanzamento di 20 cm della ripresa (lo schermo dovrebbe essere a decine di metri, e non centinaia, come calcola O.).
A questa cosa non avevo pensato: con il metodo della scelta dei punti l`eventuale scala, se presente, verrebbe ad annullarsi.
p.s.
Aggiungo il particolare dell`effetto avvicinamento dello sfondo:
In seguito applichero` la procedura anche al modello 3d per confrontare il risultato.
p.s. 2
Ho modificato la prima immagine perche` mi sono accorto di avere inserito quella ancora non collimata. Il punto usato e quella piccola macchia nera in posizione centrale, all`interno deel cratere principale.
Si prega Accesso a partecipare alla conversazione.
La tua immagine è interessante, prima di parlarene però ci sarebbero alcuni dettagli tecnici. Per quanto riguarda la scala dello sfondo diversa azzardo l'ipotesi che possa c'entrare l'ultimo termine della matrice H: 1.04... perchè normalmente si pone =1, cioè si dividono tutti le componenti per questa. Però dipende da come hai impostato le cose, potrebbe non essere questo il problema.doktorenko ha scritto:
Io direi che la cosa piu` evidente e` la diversa scala del fondo: bisogna capire se e` reale o e` stata introdotta in qualche modo. A me sembrerebbe comunque esagerata, per un avanzamento di 20 cm della ripresa (lo schermo dovrebbe essere a decine di metri, e non centinaia, come calcola O.).
A questa cosa non avevo pensato: con il metodo della scelta dei punti l`eventuale scala, se presente, verrebbe ad annullarsi.
Altra cosa non chiara è perchè cerchi di stimare la rotazione tra le due foto, se hai a disposizione le due matrici camera K1, K2 relative alle due immagini Apollo, quindi con K1,K2: R^3-->P^2 che ad ogni punto della tua ricostruzione 3D associano il corrispondente punto sulle due immagini Apollo, allora l'omografia H fra l'immagine 1 e la 2 è H12=K2 K1^-1 e non c'è bisogno di stimare la rotazione. Questa se mai può essere ricavata come R=K1^-1 H12 K1. Analogamente l'omografia inversa è H21=K1 K2^-1. Mi pare difficile stimare con precisione quale sia la rotazione R basandosi sugli oggetti vicini, anche perchè essendo vicini risentono molto dello spostamento fra i due scatti.
Venendo alla tua immagine, al netto di eventuali imprecisioni nella procedura, la cosa più evidente secondo me non è l'avvicinamento dello sfondo ma piuttosto che si vedono chiaramente due diversi livelli di profondità che scorrono in senso opposto, questo è quello che ci si aspetterebbe se la parte di scena più vicina all'osservatore fosse in 3D e lo sfondo uno schermo. Resta anche da capire il problema della messa a fuoco, un'immagine è a fuoco e l'altra no, forse modificando leggermente la focale di una delle due si ottengono risultati un po' diversi.
FranZη
Si prega Accesso a partecipare alla conversazione.
- kamiokande
- Offline
- Utente
- Messaggi: 489
- Ringraziamenti ricevuti 158
H =
9.45528763e-01 | -3.02036424e-02 | 1.24849174e+02 |
6.52627845e-03 | 9.28622508e-01 | 2.51654124e+02 |
-6.79407976e-06 | -1.70088592e-05 | 1.00000000e+00 |
I punti usati per il calcolo della matrice sono:
Ed il risultato è questo:
qui di sotto un dettaglio
"La stampa è morta" (Egon Spengler - Ghostbuster)
Si prega Accesso a partecipare alla conversazione.
- doktorenko
- Autore della discussione
- Offline
- Utente
- Messaggi: 169
- Ringraziamenti ricevuti 8
Il sistema che hai usato pero` presuppone che non sia presente (a causa della distanza) nessun tipo di parallasse tra gli sfondi dei due scatti, cambi di scala inclusi: ma l`ipotesi e` appunto che essa sia percepibile (sfondo ravvicinato), e il calcolo della matrice con la scelta dei punti di origine e destinazione annulla l`informazione della traslazione, perche` fa coincidere i punti il piu` possibile: posizionandoli in maniera assoluta e togliendo l`eventuale parallasse su asse z (fattore scala) e gli spostamenti sugli assi x e y.
Premesso che comunque intendo approfondire la questione, per il momento mi sono limitato ad una semplice verifica usando il modello 3d e una matrice H simile (non uguale perche` nel mio modello le camere hanno lo stesso angolo di rollio ay, ma credo che quest`angolo sia quello meno importante da stabilire).
Naturalmente, a differenza dell`omografia su immagine reale, in questa gli angoli di scostamento si conoscono esattamente e le immagini sono perfettamente a fuoco; il risultato:
Le mie osservazioni:
1) si verifica una minore traslazione dello sfondo (per far combaciare lo sfondo dell`omografia e quello del riferimento ho dovuto operare un minor spostamento)
2) c`e` un problema di posizionamento del veicolo lunare (la quota e` sbagliata: pero` se abbasso la camera anche di soli 50 cm alcuni crateri 'tramontano' sotto l`orizzonte)
3) nessun evidente 'scorrimento' dello sfondo, come da particolare:
(la frazione di sollevamento che si nota credo sia dovuta al fatto che la collimazione e` avvenuta per valori interi di pixel)
Curiosita`: la pietra bianca che si intravede nelle due gif ingrandite nel mio modello e` distante 175 m e larga appena 8.5 cm.
Si prega Accesso a partecipare alla conversazione.
Perchè 5 punti? Perchè i tre in alto sono quasi allineati?kamiokande ha scritto:
I punti usati per il calcolo della matrice sono:
FranZη
Si prega Accesso a partecipare alla conversazione.
- kamiokande
- Offline
- Utente
- Messaggi: 489
- Ringraziamenti ricevuti 158
Il punto in alto a sinistra non lo considerare, è una prova che ho fatto per verificare la robustezza dell'algoritmo. La documentazione di OpenCV afferma che l'algoritmo per il calcolo della matrice dell'omomorfismo è sufficientemente robusto ed affidabile da consentire di usare anche più di 4 punti, ed ho effettivamente verificato che anche con un quinto punto praticamente allineato ad i primi due il risultato non cambia.
Ma lo scopo non per l'appunto questo? Verificare che lo sfondo non sia distante dall'osservatore? Io ho solo voluto verificare se effettuando in modo differente la prima analisi riportata da Oleg qui ( www.aulis.com ) si possano ottenere gli stessi risultati, consentendo così di rimuovere eventuali errori di tipo random. Con l'immagine da te generata in CG abbiamo la conferma che se la montagna fosse veramente alla corretta distanza dall'osservatore allora non si avrebbe uno spostamento percepibile della stessa. Ora non resta da verificare che non ci sia qualche bias che produca un falso effetto di spostamento dello sfondo nelle foto delle missioni Apollo.doktorenko ha scritto: Il sistema che hai usato pero` presuppone che non sia presente (a causa della distanza) nessun tipo di parallasse tra gli sfondi dei due scatti, cambi di scala inclusi: ma l`ipotesi e` appunto che essa sia percepibile (sfondo ravvicinato), e il calcolo della matrice con la scelta dei punti di origine e destinazione annulla l`informazione della traslazione, perche` fa coincidere i punti il piu` possibile: posizionandoli in maniera assoluta e togliendo l`eventuale parallasse su asse z (fattore scala) e gli spostamenti sugli assi x e y.
Tra parentesi sul sito Alius ci sono decine di studi dedicati alle missioni Apollo, oltre che all'enigma di Marte, davvero molto interessanti e ben fatti.
"La stampa è morta" (Egon Spengler - Ghostbuster)
Si prega Accesso a partecipare alla conversazione.
- doktorenko
- Autore della discussione
- Offline
- Utente
- Messaggi: 169
- Ringraziamenti ricevuti 8
Qui si nota:
1) una mutazione dello sfondo come quella ottenuta dal metodo O., anche se la mia dovrebbe essere quella realmente percepibile*, e non quella "media" calcolata.
2) una diversa illuminazione (l`omografia e` piu scura, si vede bene questa differenza sul rilievo piu` lontano a dx)
Il punto 1) potrebbe essere dovuto anche ad un errore nel calcolo dello scostamento degli angoli delle camere nei due scatti, il 2) da una diversa esposizione.
Per calcolare gli angoli ho usato come riferimento i crateri piu` vicini al centro immagine; questa tecnica secondo puo` portare a questi problemi:
1) se lo sfondo non e` "fisso", ma si deforma a causa della traslazione della camera, gli angoli calcolati saranno sbagliati, e quindi la dimostrazione del falso avverra` per assurdo, come nel metodo O.
2) ne consegue che e` impossibile ricostruire cio` che si vede realmente da quella inquadratura, e quindi confrontare i due scatti (il riferimento e la sua omografia stereoscopica) per calcolare le eventuali deformazioni rivelatrici del falso.
Per questo intendevo basarmi invece sugli oggetti in primo piano.
Si prega Accesso a partecipare alla conversazione.