Jumping Jack Flash weblog

360 test

Posted in 360 by jumpjack on 11 ottobre 2019

WordPress dispone di una specifica “tag” per pubblicarer foto panoramiche a 360°:

Senza questa tag, l’immagine a 360 appare semplicemente “spianata” in formato equirettangolare:


Projection: Equirectangular (2)
FOV: 360 x 180
Ev: 6,54

Usando invece l’apposita tag:

Il visualizzatore è un po’ rudimentale perchè non consente di zoomare.

Se si ha una fotocamera in grado di scattare solo una foto singola fisheye, che non copre 360°x360° ma qualcosa in meno (tipo 360°x200° o 360°x235°), per incollare insieme due foto emisferiche scattate in direzioni opposte si può usare il SW “Hugin”, seguendo questa procedura:

  1. Go into the View → Advanced (or Expert) mode.
  2. Click the Add Images… button to load the stitched panorama.
  3. Set the Lens type to Equirectangular and the HFOV to 360.

    This will load your 360×180 as a 360×180.

  4. Go into the GL preview window.
  5. Use the Move/Drag tab to change the viewpoint.

    Dragging horizontally changes yaw, dragging vertically changes pitch, right-dragging changes roll.

  6. Use the Projection tab to select a different projection.

    Watch your FoV setting, since not all projections play nice with 360.

  7. Use the Crop tab to set the crop.
  8. Once everything looks the way you want it to, save the Hugin project (.pto) file, and go to the Stitcher tab, select the file output format and size you want, and click the Stitch! button to create your new panorama.
Tagged with: , , ,

Studi su immagini a 360°

Posted in 360 by jumpjack on 5 Mag 2019

MPREMAP” (“Moving Panoramas REMAPper”) è un tool a linea di comando di Helmut Dersch che si appoggia alle librerie “Panorama Tools” o Panotools, dello stesso autore, ed è usato dal programma dome2rect per convertire sia immagini che video da formato fisheye (o sferico) a equirettangolare (o “lat/lon”), per visione su visori VR.

MANUALE: Link (versione Java)

Tipi di proiezioni “fisheye” (in base a quanto riportato nelle istruzioni degli script per MPREMAP); tra parentesi il codice con cui sono identificate in MPREMAP:

  • equidistant (F3/org)
  • fullframe (F3/dest)
  • circular (F5)
  • equisolid (F10)

“Circular” e “fullframe” sono esattamente la stessa proiezione, ma nella seconda viene presa solo una parte dell’immagine risultante, in modo che non ci siano zone nere nell’immagine finale:

circular risheye fullframe fishey (=cropping)

In sostanza il fullframe è un semplice “cropping” (ritaglio) di un’immagine fisheye completa.

Secondo questo sito (che elenca le formule trigonometriche delle varie proiezioni), i tipi possibili di proiezioni fisheye sono: (evidenziate quelle presenti anche in MPREMAP)

  • equidistant
  • stereographic
  • orthographic
  • equisolid
  • Rectilinear lens : R = f . tan (𝛩)   (proiezione “standard” delle macchine fotografiche)
  • Equidistant fisheye lens : R = f . 𝛩
  • Stereographic lens: R = 2f . tan ( 𝛩 / 2 )
  • Orthographic fisheye lens : R = f . sin (𝛩)
  • Equisolid fisheye lens : R = 2f . sin ( 𝛩 / 2 )
  • R = Radial position of a point on the image sensor
  • f = Focal length of the lens
  • 𝛩 = The angle between an object and the optical axis, expressed in radians

Le immagini qui sotto mostrano, tramite una griglia, qual è la distorsione prodotta dai vari tipi di fisheye, a partire da un’immagine equirettangolare totale, che cioè copre 360°x360°; il FOV di queste immagini è invece di 220°:

equirettangolare

Equirettangolare / lat-lon

 

equidistante

Equidistante

 

stereografica

Stereografico

 

ortografica

Ortografico

 

Equisolido

Equisolido

Sembrano a prima vista tutte identiche, ma in realtà la distorsione differisce leggermente dall’una all’altra; la più evidente è la distorsione ortografica, in cui i poli appaiono completamente schiacciati e quindi perpendicolari al piano dell’immagine, mentre nelle altre proiezioni i poli sono “spalmati” sul piano visuale, come evidenziato in questo esempio:

confronto
Questo vuol dire che in proiezione ortografica non si possono coprire più di 180°.

Questo grafico (fonte) mostra l’andamento del rapporto R/f al variare dell’angolo teta, evidenziando l’entità delle distorsioni ottiche nei vari casi:

grafico confronto proiezioni fisheye

Quest’immagine mostra chi sono R, f e teta:

fisheye schema

 

Paul Bourke distingue due famiglie di fisheye:  Hemispherical e Angular, facendo riferimento a come la sfera viene proiettata sul piano: se parallelamente, quindi con compressione crescente delle distanze man mano che si arriva a 90° rispetto allo zenith della camera, si hal’Hemispherical; se invece nell’immagine piatta la distanza tra due punti è sempre “uguale” all’angolo tra i due punti nell’immagine sferica, si parla di “angular”; nel primo caso il FOV massimo è 180°, nel secondo può arrivare a 360°.

Hemispherical fisheye (squeezed) Angular fisheye (constant distance)

 

Le proiezioni non-fisheye supportate da MPREMAP sono invece:

  • rectilinear (F0)
  • cylindrical (F1)
  • equirectagular/latlong (F2)
  • equirectagular (F4)

La proiezione usata dai visori VR è la equirectagular/latlong vista sopra, che riporto per comodità:

equirettangolare

Da notare che un’equirettangolare come questa rappresenta l’intera sfera 360°x360°; una foto scattata puntando la  telecamera verso l’alto con un FOV di 180° l’immagine apparirebbe così:

Manca cioè la semisfera che si trova sotto la telecamera. Notare che ogni quadratino è di 10°x10° di lato.

 


Dimensioni standard frame 35mm: 36mm x 24mm

Se il sensore è più piccolo di uno standard frame, inquadrerà una parte più piccola dell’immagine; questa parte più piccola verrebbe inquadrata in un fullframe, posta la camera alla stessa distanza dall’oggetto, se la lunghezza focale fosse più grande; il rapporto tra questa lunghezza focale più grande (Lf, full frame) e la lunghezza focale effettiva della macchina (Lr, ridotta) è il cosiddetto “moltiplicatore di lunghezza focale” (focal length multiplier):

FLM = Lf/Lr


 

Il fattore di ingrandimento m (magnification) è dato da:

m = (dimensioni immagine)÷(dimensioni oggetto)

Le dimensioni dell’immagine sono anche le dimensioni del sensore


La lunghezza focale si può calcolare come:

1/f = 1/u + 1/v

oppure

f = u÷(1+1/m)


Questo schema mostra come varia il FOV (angolo visuale) al variare della lunghezza focale, ma solo fino a FOV di 180°:

tabella-focal-length-angolo

 

Quest’altro schema (fonte – brevetto n.  3737214 by Mr. Shimizu, 5 giugno 1973) mostra lo spaccato di una lente fisheye con FOV di 220° (110×2), ottenuto tramite rifrazioni multiple:

Figure-22

La lunghezza focale indicata è di 6.3 mm

E’ possibile raggiungere addirittura i 270° (fonte – brevetto 3524697) :

fisheye270.jpg

La lunghezza focale in questo  caso è di 5.4 mm

 

Graficando le tre figure si può provare a ricavare per interpolazione la lunghezza focale per 235°:

grafico-LF-FOV.png

Conversione da immagini sferiche a equirettangolari per telecamere 360

Posted in VR360 by jumpjack on 1 gennaio 2017

In attesa che arrivi il regalo di Natale che mi sono fatto, cioè una telecamera a 360°x220°, sto investigando sui software disponibili per trasformare il suo output in qualcosa di utilizzabile col mio visore VR-3d, un VRBox di marca imprecisata.

vrbox camera360

Un “visore” come il VRbox in realtà non è altro che una versione più sofisticata del “Google Cardboard”.

googlecardboard-chiuso google-cardboard-aperto

Si tratta di un semplice pezzo di cartone che, opportunamente ripiegato permette di accogliere al suo interno un cellulare che, grazie ai suoi sensori interni (accelerometro e – indispensabile – giroscopio), è in grado di dare l’illusione di “immergersi dentro un’immagine”, perchè è possibile vedere l’immagine “tutta intorno”, come quando si va in un planetario a osservare le stelle proiettate sulla cupola.

vr-oooh

Nel caso del Google Cardboard, del VRbox o di altri visori,  la “cupola” è virtuale, ricreata digitalmente dal cellulare a partire da un’immagine in proiezione equirettangolare (cioè, in termini meno tecnici, una “sfera spianata”).

Il risultato è il seguente:

http://www.dichitoarchitetto.it/rendering-navigabili/#piazza_polignano

In questo caso l’immagine è navigabile col mouse; nel caso del VRbox, è navigabile muovendo la testa di qua e di là.

Per realizzare in modo completo questo effetto servirebbe una fotocamera in grado di riprendere l’intera sfera di 4pigreco steradianti, ma si possono anche usare due fotocamere contrapposte con campo visivo di 360°x180°; rimando però all’altra mia pagina per i dettagli. Qui voglio invece riportare un elenco di siti e software trovati per realizzare le cosiddette “foto a 360°” o “foto immersive” (idem dicasi per i video).

E il 3d?

E’ anche possibile aggiungere la terza dimensione a queste immagini e video. Servono però due fotocamere…

E non devono essere montate contrapposte, ma affiancate, guardanti nella stessa direzione. Il video risultante dovrà essere composto da due video, uno che occupa la metà superiore e uno quella inferiore dello schermo; entrambi i video dovranno essere in proiezione equirettangolare; caricandoli su youtube, e poi visualizzandoli su un cellulare, dovrebbero mandare automaticamente il cellulare in “modalità cardboard”, se è dotato di giroscopio; questo tipo di video però non offrirà una panoramica completa di 360° orizzontali, ma solo di 220°; considerando che il campo visivo di ogni occhio è di circa 90° contando anche la visione periferica, dovrebbe dare una certa possibilità di muovere la testa a destra e a sinistra.

Sto ancora investigando la cosa…

Teoria

Software

Forum

Librerie per programmatori

 

 

Download software XDV360 per Windows per visualizzare sul PC le foto a 360°: LINK

La rivoluzione delle telecamere economiche a 360°

Posted in Uncategorized by jumpjack on 22 dicembre 2016

Quest’anno (2016) stanno comparendo sul mercato molte telecamere “a 360°”, anche economiche, che possono essere divise in tre famiglie: quelle a obiettivo singolo,  quelle a obiettivo doppio, e quelle a obiettivo multiplo.

Quelle a obiettivo doppio permettono di effettuare foto che coprono 360° sia in orizzontale che in verticale, arrivando di fatto a “4 pigreco steradianti“, cioè una sfera completa; ne è un esempio la Samsung Gear 360:

Quelle a obiettivo multiplo riescono anch’ esse a coprire l’intera sfera, ma lo fanno in modo più raffinato, perchè ogni telecamera deve coprire uno spicchio più piccolo, quindi ai bordi dell’immagine c’è meno distorsione, e al momento di incollarle tutte insieme si nota meno la “cucitura”:

Sia quelle che a obiettivo doppio che multiplo sono molto costose, ma stanno ora uscendo anche quelle a obiettivo singolo:

Per forza di cose non possono coprire 360 gradi sia in orizzontale che in verticale; le migliori arrivano a 230° su uno dei due assi, ma le più arrivano a 220°, e alcune solo a 190°.

L’utilizzo di questi dispositivi non è molto chiaro agli utenti, a giudicare dai video dimostrativi su youtube, che mostrano video ripresi facendo puntare queste telecamere ORIZZONTALMENTE; l’assurdo risultato è ovviamente una inutile foto (o video) enormemente distorta!

Il vero utilizzo per cui sono pensate queste telecamere è sui droni; o meglio, SOTTO i droni: montata sotto a un drone che vola a qualche metro di altezza, una di queste telecamere riprenderà tutto ciò che c’è sotto al drone e intorno al drone, fino a un’altezza di 15-25°sopra l’orizzonte (230-180 diviso 2); al di sopra di quest’altezza…. beh, ci sono solo cielo ed eliche! Quindi è del tutto inutile andare oltre!

Il problema è che, quando si vanno a rivedere queste immagini e filmati, NON si guarda la versione “raw”, che sarebbe sferica e distorta, ma si osserva solo un piccolo spicchio, e si sposta la visuale usando un dito o l’accelerometro di un visore o di un cellulare.

Questo spicchio è alto forse 1/2 o addirittura 1/4 dell’intera immagine; se  è 1/2 (verifiche in corso…) 1/3 dell’immagine intera,  quindi affinchè l’immagine risultante sia FullHD (1080 linee) , l’immagine 360° totale deve avere almeno 3240 linee, cioè essere più di una 4k! Se però lo spicchio occupa solo 1/4 dell’immagine, servirà addirittura un 8k!

Alcune di queste telecamere economiche si “spacciano” per HD…. ma se ad essere HD1080 è il filmato grezzo, significa che lo spicchio avrà una risoluzione MASSIMA di 1080/3=360 linee 540 linee (se 1/2), o addirittura 270! (se 1/4)

Quindi occhio alle specifiche!

Per info su 2k, 4k e 8k:

https://jumpjack.wordpress.com/2015/03/03/ultrahd-4k-8k-qual-e-la-distanza-minima-a-cui-vanno-osservate-queste-supertv/

Tabella delle risoluzioni:

  • 2MP =  1920 x 1080 = FullHD
  • 2.3MP = 2048 x 1150 = 2K
  • 5 MP = 2560 x 1920
  • 6MP = 3032 x 2008
  • 8MP =  3840 x 2160 = 4K
  • 10MP = 3888 × 2592
  • 12MP = 4256 × 2848
  • 12.8MP = 4368 × 2912
  • 14MP = 4536 × 3024
  • 16.7MP = 4992 × 3328
  • 32MP = 7680 x 4320 = 8K

Dividendo per 3 si ottiene la risoluzione dell’immagine sul visore:

  • 2MP = 360 linee
  • 2.3MP = 2K = 383 linee
    • 576 linee = TV SD
  • 5MP = 640 linee
  • 6MP = 670 linee
    • 720 linee = HD Ready
  • 8 MP = 4K = 816  linee
  • 10 MP = 864 linee
  • 12 MP = 949 linee
  • 12.8 MP = 970 linee
  • 14 MP = 1008 linee
    • 1080 linee = FullHD
  • 16.7 MP = 1109 linee
  • 32 MP = 8K = 1440 linee

Bisogna poi considerare che il visore sta a 5-6 cm dal naso se usato in modalità VR, quindi la risoluzione deve essere “molto alta”: serve almeno un HD-Ready per non vedere troppo i pixel, ma ovviamente un FullHD è meglio.

Diciamo quindi che queste telecamere economiche con solo 220° verticali e una risoluzione di 8MP sono validissime per filmati 360° da osservare tenendo il cell in mano e girandosi intorno; più che sufficienti se si vuole usare il cell come visore VR.

La figura qui sotto mostra il campo visivo di una videocamera a “360° parziali” puntata verso il basso:

campo-visivo-360

cam360.png

Questa pagina illustra egregiamente e con quantità di dettagli tecnici come un’immagine grandangolare (“fisheye”) viene convertita in un’immagine piatta: http://paulbourke.net/dome/fish2/

Ad esempio, una videocamera in grado di riprendere un angolo di soli 180°, cioè solo metà sfera, proiettata in piano darà solo mezzo panorama:

spherical0

Proiettata:

spherical1

Le due bande nere laterali costituiscono i 180° mancanti. Se la telecamera è puntata orizzontalmente, tutta la metà di paesaggio dietro alla telecamera mancherà; se è puntata verso l’alto, la copertura orizzontale sarà a 360°, cioè completa, ma non scenderà sotto l’orizzonte:

fisheyesample3.jpg

fishpano3

Se però la telecamera copre un angolo superiore a 180°, è puntata verso il basso ed è montata sotto a un drone, riprenderà tutto il paesaggio utile, escludendo solo cielo ed eliche. Purtroppo sul sito non è disponibile una foto del genere..

Quest’altra figura mostra che porzione di un video 360° è effettivamente osservabile con un visore, che può essere ruotato in modo da “scorrere” l’intera immagine o fotogramma, che è una proiezine equirettangolare:

video360

Il rettangolo giallo grande evidenzia il campo visivo dello schermo del cellulare utilizzato come visore VR; i rettangolini gialli mostrano che l’altezza del rettangolo grande entra 3 volte in quella del video completo, che è visibile qui: https://www.youtube.com/watch?v=cURLeVE9SiU ; è realizzato con una CAM360 della LG, che ha copertura completa della sfera (360×360,  o 4pigreco steradianti), ma anche le telecamere “parziali” creano video di una sfera totale, solo che lasciano una striscia nera nella sezione mancante.


Modelli disponibili su Amazon.it (in ordine casuale):

Flylinktech – 64,00 euro

Consegnabile in punto di ritiro

  • 180° o 220°, non chiaro
  • CMOS (=no vibrazioni “jello” su drone)
  • Foto 12 MP –> 949 linee in VR
  • Video 1920 * 1080 –> 360 linee in VR

Boblov – 96,00 euro

No punto di ritiro

  • 220°
  • Foto = ??
  • Video 4k –> 816 linee in VR
  • 481 grammi

Boblov 4k – 133,00 euro

No punto di ritiro

  • 220°
  • CMOS (=no vibrazioni “jello” su drone)
  • Foto 16Mpixel –> 1100 linee
  • 499 grammi

niceEshop – 83,00 euro

No punto di ritiro

  • 220°
  • CMOS = ??
  • Foto  16MP –> 1100 linee
  • Video 2.7 k, interpolato a 4k (?!?) –> 400 linee, 816 interpolate?
  • Peso = ? grammi

Campark – 130,00 euro

No punto di ritiro

  • 235°
  • CMOS (=no vibrazioni “jello” su drone)
  • Foto 16MP –> 1100 linee
  • Video 3k 2448 linee –> 816 linee in VR
  • 100 grammi

Andoer V1 – 90,00 euro

Consegnabile in punto di ritiro

  • 220°
  • CMOS = ??
  • Foto 16MP –> 1100 linee in VR
  • Video =??
  • 481 grammi

Topjoy – 94,00 euro

No punto di ritiro

  • 220°
  • CMOS (=no vibrazioni “jello” su drone)
  • Foto 16MP –> 1100 linee in VR
  • Video =4k –>816 linee in VR
  • 499 grammi

Lente fisheye 198° per cellulare  – 24,00 euro

Ovviamente serve un cellulare in grado di registrare almeno in 2K.

 


Download software XDV360 per Windows per visualizzare sul PC le foto a 360°: LINK

 

Tagged with: , , , , , , ,