- Messaggi: 169
- Ringraziamenti ricevuti 8
FranZeta ha scritto: 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.
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.
Accedi al sito per partecipare alle discussioni.
Origine:
5: [-334.0, 591.0]
6: [269.0, 793.0]
10: [-81.0, 956.0]
11: [-985.0, 1084.0]
Destinazione:
5: [-361.0, 598.0]
6: [288.0, 781.0]
10: [-80.0, 947.0]
11: [-1067.0, 1094.0]
Accedi al sito per partecipare alle discussioni.
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.
1) mio clamoroso errore nel posizionamento P_1
2) lo sfondo e` proiettato su di una superficie non perpendicolare rispetto alla camera (angolo alpha)
3) lo sfondo e` una proiezione di una fotografia/ricostruzione che lo inquadra da P_2
2+3) con combinazioni di angoli alpha e P_2
Accedi al sito per partecipare alle discussioni.
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.
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.
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...
Accedi al sito per partecipare alle discussioni.
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.
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
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.
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]
Accedi al sito per partecipare alle discussioni.
Accedi al sito per partecipare alle discussioni.
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?
Accedi al sito per partecipare alle discussioni.
Accedi al sito per partecipare alle discussioni.
H = K * R * K^-1
Pixel/mm=753
focale = 61.1 mm 4600 px
dimensioni immagine: 4106x4106
K=np.array([ [ 4600.0, 0, 4106.0/2 ], [ 0.0, 4600.0, 4106.0/2 ], [ 0.0, 0.0, 1.0 ] ])
ax) 84.5 80.2
ay) ? ?
az) 157.45 156.1
ax = elevazione
ay = rollio
az = orientamento
H = K * R * K^-1
H=[[ 9.88675449e-01 -4.71166363e-02 2.22061100e+02]
[ 1.21560220e-03 9.63980259e-01 4.08364971e+02]
[ -5.33343017e-06 -1.61511600e-05 1.04104231e+00]]
Accedi al sito per partecipare alle discussioni.
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.
Accedi al sito per partecipare alle discussioni.
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 |
Accedi al sito per partecipare alle discussioni.
Accedi al sito per partecipare alle discussioni.
Accedi al sito per partecipare alle discussioni.
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.
Accedi al sito per partecipare alle discussioni.
Accedi al sito per partecipare alle discussioni.
Credo anch'io che a questo punto sarebbe opportuno trarre qualche conclusione e poi se mai porsi nuovi obiettivi, in modo che magari se qualcuno (diverso da noi tre) passa da queste parti può trovare qualcosa di facilmente interpretabile, alla fine di lunghi discorsi tecnici. Per ora direi cha tanto la tua immagine quanto quella di doktorenko sono una conferma della validità del metodo Oleynik e dei suoi risultati. La tua in effetti è praticamente una copia della sua immagine, quella di doktorenko presenta una distorsione differente che sembra mettere più in rilievo la presenza di un fondale al margine di una scena 3D.kamiokande ha scritto: 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.
Accedi al sito per partecipare alle discussioni.
R = 1737400 m (raggio convenzionale lunare usato dalla sonda LRO)
h = quota in m su R
u,v = latitudine e longitudine in rad R
camera C(0,0,0)
(x,y,z) = (u,v,h)
P1: (0,-520) px
P2: (-380,-735) px
P1: (108580,788595.5,-1827.7) m
P2: (108696.5, 787749.5, -1582.7) m
C = (110174, 792432.5, -1923.7) m
pixel/mm = 75.3
focale = 61.1 m, 4600 px
P_i=P_i-C
P1 = (-1594, -3837, 96) m
P2 = (-1477.5, -46830, 341) m
delta = atan( P1_y/F ) = 6.448 gradi
az = atan( P1_x / P1_y ) = 157.441 gradi
ax = atan( P1_z / sqrt ( P1_y² + P1_x²) ) - delta = 1.324 - 6.488 = - 5.125 gradi
ax = 90 - ax = 84.875 gradi
ay = 0
P_i=R^-1*P_i
P1 = (0, 466.76, -4129.74) m
P2 = (-432.15, 776.57, -4841.48) m
P1 = (0, -0.113, 1)
P2 = (0.0892, -0.160, 1)
x = 0.0892 * -F = -410 px
y = -0.160 * -F = 736 px
x = -380 px
y= -735 px
Accedi al sito per partecipare alle discussioni.
Qui c'è un errore nelle coordinate cartesiane di P2, la seconda non può essere -735 perchè a occhio si vede che è quasi 0, ed è sicuramente maggiore della coordinata di P1, -520.doktorenko ha scritto: Procedura:
1) per orientare la camera individuo sulla foto originale (A15-11602) il riferimento (cratere o altra caratteristica orografica) in posizione piu` centrale (punto P1).
2) per la verifica della correttezza del modello individuo un altro riferimento (punto P2)
2) segno la posizione di P_i rispetto al centro immagine, in coordinate cartesiane:
P1: (0,-520) px P2: (-380,-735) px
Qui c'è un altro problema con la seconda coordinata di P2, credo uno zero di troppo, almeno io in quanto segue lo interpreto così e la pongo =-46835) trasformo in coordinate omogenee ponendo la camera all`origine:
a) traslazione dei punti:
P_i=P_i-C P1 = (-1594, -3837, 96) m P2 = (-1477.5, -46830, 341) m
E qui invece inizia una parte un po' confusa, innanzitutto per via del metodo con cui trovi la rotazione, può anche dipendere da che programma usi, però per come hai scelto P1 dovendo fare le cose a mano è preferibile scomporre in due fasi la rotazione: prima fai coincidere l'asse y del tuo sistema di coordinate con la proiezione del vettore P1 nel piano xy, in sostanza fai una rotazione attorno all'asse z di:b) rotazione dei punti:
.......
risultato:P1 = (0, 466.76, -4129.74) m P2 = (-432.15, 776.57, -4841.48) m
Queste dovrebbero essere gia` c. omogenee, nella forma z(x,y,w); per la forma (x,y,w) con w=1, divido P_i per Pi_z:
P1 = (0, -0.113, 1) P2 = (0.0892, -0.160, 1)
alfa=pi-atan(1594/3837)=2.748 rad
P1=(0,4154.93,96)
P2=(-432.15,4891.5,341)
beta=delta+atan(96/4154)=0.1356 rad
P1=(0,4129.75,-466.73)
P2=(-432.15,4892.68,-323.58)
P1=(0:4600:-519.87)--->(0,-520)
P2=(-406.3:4600:-304.22)--->(-406,-304)
...e ciò mi lascia perplesso perchè ad esempio non capisco questo ribaltamento, visto che l'immagine è in positivo e quindi non va ribaltata, e se anche andasse ribaltata dovrebbe valere per entrambi i punti.6) per ottenere il valore in pixel moltiplico per -F (immagine ribaltata dalla proiezione)
No, le coordinate sferiche non funzionano, anche perchè sono già praticamente coordinate omogenee, la sfera si può considerare come un piano proiettivo "raddoppiato". Nella forma (R lon, R lan, R) puoi usarle fintantochè, trascurando la curvatura, le usi come coordinate cartesiane, ma se vuoi fare una proiezione considerando anche la curvatura devi convertire le coordinate sferiche in cartesiane, anche perchè il centro delle coordinate sferiche non potrà mai essere il centro della tua proiezione.p.s. matematico:
si possono considerare anche le coordinate (u,v,h) come omogenee, nella forma (R lon, R lan, R) con R = h + raggio della sfera di riferimento? nel senso che ogni punto (R lon, R lan, R) con R a piacere, ha le stesse coordinate, se proiettato sulla superficie di una sfera di raggio unitario.
Accedi al sito per partecipare alle discussioni.
1) la camera guarda verso l`asse x positivo
2) x = profondita`; y = altezza; z = larghezza
3) ax = rollio; ay = orientamento; az = elevazione
4) i gradi sono sempre positivi
5) il piano cartesiano sulla foto ha il quadrante positivo (x+ y+) in alto a sx.
Camera: (0,0,0)
P1: xyz(-1594, 96, -3837) m;
P2: xyz(-1477.5, 341, -4683) m;
P1: uv( 0,520) px
P2: uv(380,735) px
ay = atan2(P1_z,P1_x) = 247.441°
delta = atan2(P1_v,F) = 6.448°
az = atan2(P1_y,sqrt(P1_z² + P1_x²)) - delta = 1.324° - 6.488° = 354.875°
x = P1_x cos(-ay) - P1_z sin(-ay)
y = y
z = P1_x sin(-ay) + P1_z cos(-ay)
P1 = (4154.9, 96, 0)
x = P1_x cos(-az) - P1_y sin(-az)
y = P1_x sin(-az) + P1_y cos(-az)
z = z
P1 = (4129.7, 466.7, 0)
P1_uv= (0, 520)
P2 = (4891.5, 341, 432.15)
P2 = (4841.5, 776.6, 432.15)
P2_uv = (410.6, 738)
Accedi al sito per partecipare alle discussioni.
....doktorenko ha scritto: 5) il piano cartesiano sulla foto ha il quadrante positivo (x+ y+) in alto a sx.
....ma perchè???(736 diventa -736 perche` ho usato la convenzione informatica con y positivo in basso)
Il (primo) problema stava qui, come ti avevo segnalato, i tuoi punti nel riferimento cartesiano sono questi:2) segno la posizione di P_i rispetto al centro immagine, in coordinate cartesiane:
P1: (0,-520) px P2: (-380,-735) px
P1 = (-1594, -3837, 96)
P2 = (-1477.5, -4683, 341)
P1=(0,-520)
P2=(-406,-304)
Accedi al sito per partecipare alle discussioni.
FranZeta ha scritto: ...è chiaro che le coordinate di P2 non vanno bene. Ho ricontrollato i conti che avevo fatto e sono giusti, i due punti di coordinate:
a_x=rollio
a_y=alzo
a_z=orientamento
x=profondita`
y=larghezza
z=altezza
ay=354.857
az=-247.441
(angoli gia` cambiati di segno per la rotazione della scena)
R_x={{1, 0, 0}, {0, cos(α_x), -sin(α_x)}, {0, sin(α_x), cos(α_x)}}
R_y={{cos(α_y), 0, sin(α_y)}, {0, 1, 0}, {-sin(α_y), 0, cos(α_y)}}
R_z={{cos(α_z), -sin(α_z), 0}, {sin(α_z), cos(α_z), 0}, {0, 0, 1}}
R_x = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}
R_y = {{0.996, 0, -0.089}, {0, 1, 0}, {0.089, 0, 0.996}}
R_z = {{-0.384, -0.923, 0}, {0.923, -0.384, 0}, {0, 0, 1}}
R=R_x*R_y*R_z
R = {{-0.382, -0.92, -0.089}, {0.923, -0.384, 0}, {-0.034, -0.082, 0.996}}
P1=(-1594, -3837, 96)
P2=(-1477.5, -4683, 341)
P1'=(4129.741, 0, 466.756)
P2'=(4841.484, 432.146, 776.571)
P1"=(4600.83, 0, 520)
P2"=(4600.83, 410.665, 737.97)
Accedi al sito per partecipare alle discussioni.
D'accordo, dunque stavi usando già dall'inizio un riferimento con l'asse y verso il basso, scelta assai infelice tra l'altro visto che il riferimento tridimensionale è orientato in modo opposto, magari un'altra volta segnalalo all'inizio della procedura...doktorenko ha scritto: Tu intendi che le coordinate sulla foto non vanno bene, cioe` (-380, -735) ?
Io ho ricontrollato, in termini assoluti sono:
Centro: (2053,2079)
P2 (1672,1344)
-381,-735
Puo` variare qualche pixel per la scelta del centro del cratere e bisognerebbe pure tener conto del fatto che la scansione e` leggermente ruotata (0.4 gradi); ma sostanzialmente direi che sono quelle. La crocetta che si vede e` quella posizionata a 10 mm, cioe` 753 pixel.
P1=(0,520)
P2=(-411,738)
Accedi al sito per partecipare alle discussioni.
Accedi al sito per partecipare alle discussioni.
Accedi al sito per partecipare alle discussioni.
Accedi al sito per partecipare alle discussioni.
Sì avevo visto anche io le immagini di google moon associate ai siti Apollo, però direi che abbiamo già abbastanza da fare con le proiezioni normali per dedicarci alle panoramiche a 360°...kamiokande ha scritto: una curiosità che centra di sfuggita ma l'immagine qui di sotto mostra come Google Moon proietta le panoramiche a 360° delle missioni Apollo
In questo caso però vorrebbe dire che i dati altimetrici sono aggiustati per combaciare esattamente con la ricostruzione in studio, perchè a parte un piccolo stiramento lo sfondo delle immagini è esattamente uguale a quello del modello 3D, mi sembra impossibile ricostruire tanto esattamente un vero paesaggio lunare in scala.charliemike ha scritto: Non credo sia necessario utilizzare sfondi per simulare paesaggi lunari. É sufficiente realizzare le montagne con altezza decrescente a seconda della distanza dall'obiettivo, a simulazione della prospettiva.
Accedi al sito per partecipare alle discussioni.
Che io sappia, esistevano schermi circolari a 360° (ad esempio, a disneyland proiettavano un documentario a 360° filmato con 9 cineprese sincronizzate), ma erano piatti, non erano nè concavi nè convessi. Però non vedo perchè non avrebbero dovuto esistere, se solo fosse stato necessario averne uno.Domanda tecnica (per fotografi/registi): gli schermi per proiettare un fondale hanno, o meglio avevano prima dell'era della computer grafica, una sagoma standard o ce n'erano di vari tipi? Intendo se erano concavi, convessi, sferici, parabolici...ecc.In particolare ne esistevano con forma di questo tipo?
Accedi al sito per partecipare alle discussioni.
Redazione ha scritto: Visto che avete affrontato la questione di Oleynik, siete in grado di dirmi se il suo sia un metodo valido/dimostrabile? Io avevo provato a leggere quelle pagine, ma non ci avevo capito un cazzo.
Accedi al sito per partecipare alle discussioni.
1.17289591e+00 | -6.79238375e-02 | -3.07902210e+02 |
6.25574703e-02 | 1.06224556e+00 | -5.16579189e+01 |
1.19327425e-04 | -7.65282462e-05 | 1.00000000e+00 [ |
Accedi al sito per partecipare alle discussioni.
Accedi al sito per partecipare alle discussioni.