In questo articolo si parla di fotogrammetria con Photoscan e delle operazioni preliminari al processing delle immagini.
Questa è la seconda parte della serie curata da Paolo Rossi (del laboratorio di Geomatica della facoltà di Ingegneria dell’Università di Modena e Reggio Emilia) sulla fotogrammetria moderna e sul software Agisoft Photoscan.
Trovi il primo articolo a questo link.
OPERAZIONI PRELIMINARI AL PROCESSING DELLE IMMAGINI
Iniziamo affrontando le questioni preliminari al processing delle immagini: dalla creazione del progetto, al caricamento delle fotografie digitali ed alle operazioni che ci si possono fare sopra, prima dell’allineamento.
Commenteremo la gestione delle immagini: chunks e grouped cameras e l’applicazione di maschere.
Come leggerai, per l’esecuzione delle operazioni rimanderò molto al manuale.
Preferisco infatti dare un idea di quello che si può fare con gli strumenti che il software offre, dirne il perché e provare a delineare un percorso da seguire nel processing delle immagini.
Il manuale è molto completo e chiaro, spiega tutte le funzioni ed i menu ma, a mio avviso, manca della definizione di una procedura e della descrizione dei legami tra le varie funzioni.
Condivido quello che ho imparato e capito in questi anni di attività e quello che, a mio avviso, sono un workflow completo ed aspetti importanti da considerare.
Mi farebbe piacere se anche tu condividessi le tue esperienze ed idee per poterne discutere ed imparare tutti delle cose nuove.
CREAZIONE DEL FILE DI PROGETTO
Alla realizzazione di un nuovo progetto, PhotoScan salva due cartelle nello spazio di lavoro:
- una con estensione .PSZ, che sarà aperta dal software;
- una con estensione .FILES, con i file essenziali per visualizzare e lavorare sul progetto. Navigando qui dentro trovi il quality report e sottocartelle legate alle operazioni eseguite nel progetto (nuvola di punti sparsa, nuvola di punti densa, modello, ortomosaico, …).
GESTIONE DELLE IMMAGINI
Per aggiungere delle foto ad un progetto si usa l’apposita voce “Add Photos“, nel menu Worflow.
Si cerca la cartella e si selezionano le immagini.
PhotoScan supporta tutti i principali formati immagine: jpg, tif, png, bmp, …
Un’immagine caricata può essere disabilitata o eliminata in un qualsiasi momento.
L’estrazione di fotogrammi (frame) da un video è un’opzione non supportata da PhotoScan fino alle versione 1.3.
Dalla versione 1.4 è stato implementato come già accade per altri software, come Pix4D e 3DF Zephir (grazie a Marco Picciau per la segnalazione nei commenti!).
Il video offre una successione di frame caratterizzati da un’elevata sovrapposizione, ma, tuttavia, con una qualità spesso inferiore rispetto alle immagini ferme (still images).
Può essere comunque utile usare il supporto video nel rilievo di oggetti complessi, dove è difficile garantire un’adeguata ridondanza (ad esempio le pareti di un edificio).
GRUPPI DI IMMAGINI
Una volta caricate le immagini si possono creare dei gruppi: grouped cameras.
Nel workspace panel si clicca col tasto destro sull’immagine, si crea un nuovo camera group (Add Camera Group) e se ne sceglie la tipologia (informazioni più dettagliate si trovano sul manuale).
Ad un gruppo di immagini puoi associare una definizione specifica.
Crea il gruppo, poi fai tasto destro su di esso, scegli “Set Group Type” e metti la spunta su Folder o Station.
- Il gruppo definito Type Folder serve per catalogare i diversi set di immagini: dividere i voli, distinguere datasets nadirali o obliqui.
- Il gruppo definito Type Station è una catalogazione che agisce sul processing delle immagini.
Il gruppo deve raccogliere tutte le immagini che sono state scattate dalla stessa posizione.
A questo proposito il manuale specifica che le variazioni tra i centri di presa sono molto piccole se paragonate alla distanza camera-oggetto.
Questa divisione è importante perché in fase di allineamento il software eviterà la ricerca di corrispondenze tra queste immagini (acquisite con una geometria sfavorevole) e permetterà l’estrazione di una panoramica della scena vista da questo punto di stazionamento.
I CHUNK
All’interno del progetto di PhotoScan si possono creare i chunk.
Il chunk identifica una porzione del progetto di PhotoScan e se ne possono creare vari all’interno dello stesso file PSZ.
Può essere utile dividere un progetto in più chunk quando, per esempio, si vogliono effettuare test di processamento su un set di immagini o quando la ricostruzione dell’oggetto in un’unica volta sia computazionalmente troppo onerosa in termini di risorse di calcolo.
Se ad esempio abbiamo un dataset con molte immagini, può essere utile dividerlo in chunk, elaborarli separatamente e ricombinare i risultati ottenuti. In questo caso usare i chunk permette di elaborare anche dataset con molte immagini e di farlo in modo veloce.
La fase critica è quella definita “merge chunks”: l’allineamento e la fusione dei risultati ottenuti nei diversi chunk.
L’allineamento si basa su alcuni metodi:
- Point based: alcune matching photos fanno da “ponte” tra i chunk permettendone l’allineamento grazie all’identificazione di punti omologhi.
- Marker based: marker posizionati dall’utente e comuni ai chunk sono usati per l’allineamento.
- Camera based: la posizione e l’orientamento di alcune immagini sono usati per l’allineamento; le immagini devono avere lo stesso nome per poter essere riconosciute nei chunk.
E’ possibile settare l’accuratezza desiderata: higher per un allineamento più accurato, lower per uno veloce.
N.B.: se i chunk sono georeferenziati, si trovano nello stesso sistema di riferimento e non ne è necessario l’allineamento.
PROPRIETÀ DELLE IMMAGINI
Le immagini caricate nel progetto sono a disposizione per essere visualizzate ed analizzate.
Nel workspace panel c’è la suddivisione nei vari chunk, e per ciascuno di essi la cartella cameras, con le immagini caricate ed opportunamente raggruppate.
A fianco del nome dell’immagine si trova la dicitura:
- NC, camera non calibrata (Not Calibrated) ossia non sono disponibili i parametri di calibrazione per l’immagine (si vedrà più avanti);
- NA, non allineata (Not Aligned – è un aspetto da valutare dopo l’esecuzione dell’allineamento).
Nel Photo Panel si può avere una visualizzazione delle anteprime delle immagini oppure un elenco con tutti i dettagli.
Per ogni immagine sono indicati: nome, dimensioni, focale, modello della fotocamera, informazioni relative all’acquisizione (ISO, tempo di scatto, apertura del diaframma…), image quality e path dell’immagine.
L’image quality è un valore che indica la qualità dell’immagine e varia tra 0 ed 1.
Immagini sfuocate o povere in contenuto (ad esempio uno sfondo omogeneo) possono peggiorare i risultati della successiva fase di allineamento.
PhotoScan offre un modo automatico per il calcolo di questo indice di qualità, nel manuale trovi come lanciare il calcolo (richiede alcuni minuti) e l’indicazione di disabilitare le immagini con valori inferiori a 0.5, in modo da escluderle dalle elaborazioni successive.
Io di solito seguo questa indicazione dello 0.5, ma valuto comunque che l’esclusione di alcune immagini non vada a compromettere la ridondanza di dato.
Se il dataset non è troppo grande, può essere utile “ perdere un po’ di tempo” per scorrere le immagini a monitor valutarne la qualità, eliminare quelle sfuocate, le sbilanciate, luminose o buie, quelle al di fuori dell’area di interesse e dopo aver fatto ciò eseguire la procedura automatizzata.
Il path dell’immagine invece è il percorso che il software segue per trovarla sul computer.
Un progetto di PhotoScan non contiene al suo interno le immagini ma solo una loro preview a bassa risoluzione.
Ti accorgerai che se devi spostare un progetto PSZ, rinominarlo o rinominare la cartella in cui sono contenute le immagini otterrai un progetto che si apre e in cui puoi visualizzare i prodotti già generati, ma non puoi vedere le immagini a piena risoluzione o lanciare nuove elaborazioni. La procedura di aggiornamento del path è velocissima e il manuale fornisce tutte le informazioni a riguardo.
LE MASCHERE
Un’ulteriore operazione che si può effettuare sulle immagini caricate sono le maschere.
L’applicazione di maschere consiste nell’identificare e selezionare una porzione dell’immagine escludendo il resto dalle successive fasi di processing.
La maschera può essere applicata in diversi momenti del workflow di elaborazione delle immagini, a seconda delle necessità:
- Allineamento – l’area mascherata è esclusa dalla ricerca di punti di legame tra le immagini e quindi non compete alla stima delle posizioni delle prese.
E’ utile quando si rilevano oggetti posizionati su supporti rotanti e quando l’oggetto di interesse occupa una piccola porzione della scena.
Sono casi in cui lo sfondo dell’oggetto non è di interesse e potrebbe peggiorare la qualità dell’orientamento. - Dense point cloud – l’applicazione di una maschera in questa fase è utile se si vogliono ridurre la complessità nella risultante nuvola di punti, aumentando la qualità nelle aree di interesse ed eliminando il resto.
- Texture – anche in questa fase serve a migliorare la qualità del prodotto.
Le maschere possono essere create direttamente sulle immagine all’interno di PhotoScan (il manuale spiega in dettaglio la procedura da seguire) grazie ai metodi di selezione di aree, alcuni dei quali semi-automatici in grado di rilevare differenze cromatiche.
Le maschere si possono però anche caricare anche da fonti esterne, modificare e successivamente salvarle.
Nel prossimo articolo si parlerà di un altro processo preliminare sulle immagini: la calibrazione della fotocamera.
PhotoScan usa come input i parametri contenuti nell’exif file delle immagini (i metadati).
Questi costituiscono una sorta di prima approssimazione che serve al software per applicare il modello di calibrazione opportuno e ricalcolare i parametri durante la fase di allineamento.
Alla prossima puntata!
Paolo Rossi
Bene, spero che questo secondo articolo sulla fotogrammetria con Photoscan sia stato utile ed interessante.
Se hai dubbi o domande non esitare a scriverle nei commenti qui sotto.
A presto!
Paolo Corradeghini
Paolo Rossi, ingegnere e PhD in Ingegneria Industriale e del Territorio presso l’Ateneo di Modena e Reggio Emilia, attualmente lavora presso il Laboratorio di Geomatica del Dipartimento di Ingegneria “Enzo Ferrari”, dove si occupa di ricostruzione 3D da immagini.
Laboratorio di Geomatica
Dipartimento di ingegneria Enzo Ferrari, Università degli studi di Modena e Reggio Emilia
Via Pietro Vivarelli 10, Modena
Tel: 059 2056297
Cell: 3457054511
Email: paolo.rossi at unimore.it
Profilo Linkedin
Ho pubblicato un video sul canale You Tube dove si parla proprio di immagini in Metashape (Ex Photoscan)
Lasciami un commento!
13 Comments
Scusate Se Mi Permetto Di Segnalarvelo ma Probabilmente il vostro articolo sulla gestione immagini è precedente alla versione 1.4, di Agisoft che consente di importare immagini dai formati video.
Ciao Marco, grazie mille della segnalazione!
Sì, l’articolo sulla gestione delle immagini era precedente l’ultima versione 1.4
L’ho aggiornato con il tuo contributo, grazie di nuovo!
Paolo
Buongiorno,
molte volte mi succede che una volta caricate le foto nel chunk e aver iniziato con il workflow, il software non tiene conto di tutte le foto. Infatti di molte fotografie non mi viene fuori la camera corrispondente ( il rettangolo rosso, per intederci). Da cosa dipende? Grazie
Ciao Donato,
quello che scrivi potrebbe essere dovuto al fatto che vengono caricate immagini georeferenziate ed immagini prive di geotagging.
Vedi comunque tutte le foto importate all’interno della finestra corrispondente?
Che cosa succede dopo che fai l’allineamento delle immagini?
Risultano allineate le foto che non vedevi, oppure non sono allineate?
Forse queste domande aiutano meglio a capire l’eventuale problema.
A presto!
Paolo
Buona sera paolo ho provato Metashape, eseguendo l’allineamento, il posizionamento dei marker point, la creazione della nuvola densa, il dem, e le curve di livello.
ho notato che esportando sia le curve che i marker point in dxf, il file è sformato e le quote in altezza sono differenti da quelle sull’asse x-y, ovvero l’altezza delle curve è corretta mentre le curve sono più piccole in pianta di c.a. 100000 volte, il tutto scalato e deformato,
da cosa può dipendere?
Ciao Dante, probabilmente il problema è legato ai sistemi di coordinate.
Se in Metashape hai un progetto in coordinate geografiche (Latitudine e Longitudine) e lo porti in un CAD senza cambiare niente questo subisce delle deformazioni.
Ciò è legato al fatto che il CAD ha un sistema di riferimento cartesiano e si aspetta di ricevere lunghezze metriche, non angoli.
Ricevendo invece coppie di angoli prova a fare del suo meglio ma inevitabilmente deforma le curve di livello.
Prova a generare un DEM in coordinate piane e poi ad esportare le curve relative in questo modo.
Dovresti riuscire a risolvere il problema della deformazione.
La scalatura potrebbe essere associata ad errori di scala sulle coordinate dei marker.
Le hai verificate in tal senso?
Spero di averti aiutato.
Ciao Dante!
Paolo
Ciao Paolo,
Io ho riscontrato un problemino nel caricamento delle foto, ovvero le foto le carico tranquillamente ma sono tutte rosa ed il modello che poi viene fuori è rosa anch’esso, sapresti dirmi qual è il Problema?
Grazie
Ciao Tiziano,
purtroppo non so aiutarti nella soluzione del tuo problema.
È un caso che non mi è mai capitato di riscontrare…
Credo che ci possa essere un problema nel file delle immagini ma ignoro quale possa essere.
Se hai scattato anche immagini in formato RAW ti posso consigliare di confrontarle con i JPG per capire se può esserci stato un errore di scrittura del JPG.
A presto!
Paolo
Buonasera, dopo aver creato il mio modello 3d Con photoscan, quando provo ad esportare l’ortomosaico mi dà sempre la vista dall’alto, anche se ruoto la vista corrente. Come posso esportare le viste dei prospetti? Grazie
Ciao Roberta,
dovresti cambiare la vista nelle impostazioni di generazione dell’ortomosaico passando a “vista corrente” e non più a “geografica”.
Spero di aver risposto.
Ciao!
Paolo
Salve sono un non professionista che si occupa di orienteering (rif. http://www.fiso.it) uno sport che si svolge solitamente nei boschi con carte topografiche molto dettagliate realizzate appositamente per questo sport derivanti da un rilievo in situ metro per metro da parte di un cartografo.
Il cartografo parte solitamente da una carta-base la cui qualità incide fortemente sui tempi e la qualità dei rilievi. Le maggiori problematiche richieste da risolvere sono le curve di livello (equidistanza 5 metri ma con dettagli con equidistanza 2,5 metri) e la densità della vegetazione.
Stiamo esplorando diverse possibilità di realizzare buone carte base con diverse metodologie.
Una ipotesi è quella di poter sfruttare gli algoritmi di ricostruzione 3D partendo da fotogrammetria, di cui il programma zephir sembra gestire in modo eccellente.
Volevo saper da voi se sia potenzialmente possibile realizzare questo utilizzando una videocamera 360° installata sopra la testa di un operatore (circa 2 mt dal livello del terreno) che cammina nel bosco secondo una maglia preordinata (grezza) di tragitto. La videocamera potrebbe essere il modello Garmin Virb 360 (5.7K/30Fps, 4K/30fps con stitching on camera, con GPS, Sensori ABC).
Ciao Roberto,
grazie del messaggio (e della pazienza nell’aspettare la mia risposta!).
Il tema di creazione di modello 3D da fotografie sferiche è abbastanza attuale ed interessante.
Molti software specialistici (Zephyr è uno di questi) permettono di implementare foto sferiche ed usarle come sorgente per l’elaborazione.
Il potenziale problema in un bosco sono i diversi piani di profondità della vegetazione.
Mi immagino che ci siano alberi vicini, a media distanza e lontani.
Questo mette un po’ in difficoltà l’algoritmo del software perchè i pixel dell’immagine sono tutti sul piano 2D.
Mentre in una galleria è più “semplice” lavorare in questo modo, in un bosco i risultati potrebbero essere molto meno buoni…
Spero di averti risposto.
A presto!
Paolo
buonasera, avrei una domanda in riferimento all’acquisizione delle fotografie di un oggetto tipo un vaso: per una migliore riuscita del modello 3d è possibile scattare le foto su uno sfondo a tinta unita come il green key ?