Tutorial #A01 : Gestione dei punti di controllo e delle distanze in 3DF Zephyr

 

Utilizzare di punti di controllo e distanze

 

Benvenuto alla serie di tutorial di 3DF Zephyr.
Questo tutorial ti illustrerà come utilizzare i punti di controllo a terra (GCP), vincoli e le distanze di controllo con 3DF Zephyr.
Il tutorial non può essere completato con le versioni 3DF Zephyr Free o Lite.

 

 

Sommario

 

 

    Step 1 – Aggiungere punti di controllo

     

    Opzionale: utilizzare i vincoli per migliorare l’orientamento delle immagini durante il processo SFM
     

    Step 2 – Scalare e georeferenziare il progetto

     
     

    • Introduzione

    Ritorna al sommario
     

    Questo tutorial è organizzato in due sezioni:

     
    Sezione A: scalare e georeferenziare durante la creazione di un nuovo progetto
    Questa procedura illustrerà come utilizzare le coordinate di posizione delle camere durante il flusso di lavoro di creazione di un nuovo progetto. Infatti, 3DF Zephyr può rilevare automaticamente le immagini scattate da UAV, sfruttando le loro coordinate GPS o RTK, per scalare e georeferenziare nuvole di punti e mesh create.
     
    Nota: Vale sempre la pena utilizzare almeno un Punto di Controllo a Terra (GCP), anche quando si lavora con immagini RTK, al fine di garantire l’accuratezza sul terreno.
     

    Sezione B: scalare e georeferenziare dopo la creazione di un nuovo progetto
    Dopo aver creato un nuovo progetto, è possibile utilizzare i Punti di Controllo a Terra (GCP) per la scalatura e la georeferenziazione del progetto in Zephyr, collegandoli a distanze e coordinate GNSS raccolte sul campo. I GCP possono anche essere utilizzati per ottimizzare le posizioni delle camere, sfruttando l’ algoritmo di Bundle adjustment, riducendo così l’errore di riproiezione delle immagini. I punti di controllo a terra, l’allineamento e la scalatura del modello con punti di controllo noti (o distanze note) possono essere gestiti dal pannello sulla destra denominato GCP.
     

    Ricorda che qualsiasi ricostruzione dipende da un fattore di scala arbitrario, da una traslazione e da una rotazione!
     

    Per completare questo tutorial, puoi utilizzare il tuo dataset o scaricare il progetto di esempio .zep che troverai di seguito.

    download dataset Download Dataset del Tutorial – 3DF_Zephyr_A01_Control_Points (1 GB)
     
     

    • Sezione A: scalare e georeferenziare durante la creazione di un nuovo progetto

    Ritorna al sommario
     


     

    Importare coordinate delle immagini durante la creazione di un progetto

    Ritorna al sommario
     

    Per impostare i vincoli importando posizioni geografiche dalle immagini come parte del flusso di lavoro per la creazione di un nuovo progetto, è necessario attivare la casella di controllo “Punti di controllo e vincoli fotocamere” nella prima pagina della Wizard di Nuovo Progetto.
     
    Nota: Se le immagini includono coordinate RTK, 3DF Zephyr le rileverà automaticamente dai dati Exif, impostando automaticamente l’accuratezza della posizione delle camere.
     

     
    La pagina Importa Vincoli seguirà la pagina di Calibrazione delle camere.


     

    Nella sezione centrale della finestra, si possono visualizzare tutte le immagini caricate in Zephyr (1), insieme alle coordinate geografiche corrispondenti. A meno che non ci siano esigenze specifiche, è sufficiente mantenere le impostazioni predefinite.
     

    In altri casi, è possibile premere “CTRL+A” per selezionare tutte le righe e fare clic con il tasto destro. Questa azione aprirà un menu contestuale in cui è possibile scegliere tra varie opzioni, come ad esempio:

      – Impostare le immagini selezionate come Vincoli (CS) o Checkpoint (CK).
      – Cambiare il Sistema di riferimento, riferito al sistema di coordinate utilizzato per il progetto.
      – Regolare l’Accuratezza di ciascuna camera.

     

    Il software selezionerà anche il Sistema di riferimento in uscita (2) corrispondente alle coordinate inserite. Tuttavia, è possibile cliccare sul menu a discesa del Sistema di riferimento e selezionare il sistema di coordinate desiderato dall’opzione “Seleziona sistema di riferimento” per aprire la finestra del Sistema di proiezione coordinate (3). È possibile selezionare il nuovo sistema di riferimento delle coordinate dal database di 3DF Zephyr o importarne uno nuovo da una fonte esterna cliccando il pulsante “Importa” e poi su “OK”.
     

    Nella parte inferiore della finestra è possibile caricare un Modello di Geode in relazione al Sistema di Riferimento delle Coordinate in uso. Al seguente link, è possibile scaricare alcuni dei Geodi più comunemente utilizzati: https://www.3dflow.net/geoids/.
     

    Quando tutto sarà impostato, cliccare sul pulsante “Successivo” per procedere alla pagina seguente del wizard del progetto. Concluso il processo di orientamento delle camere, il risultato sarà una nuvola di punti sparsi scalata e georeferenziata.

     
     

    • Sezione B: scalare e georeferenziare dopo la creazione di un nuovo progetto

    Ritorna al sommario
     


     

    Step 1 – Aggiungere punti di controllo

    Ritorna al sommario
     

    Metodo 1: selezione diretta

    Torna al riassunto
     
    Il modo più semplice (ma meno preciso) per aggiungere un punto di controllo è selezionarlo direttamente dalla ricostruzione 3D (su una nuvola di punti o una mesh, ma non su una mesh texturizzata).


     

    Nel pannello “GCP”, cliccare sul pulsante “Scegli” (1). Il cursore del mouse diventerà una croce: da spostare sulla scena (2) e quindi fai clic sinistro sulla posizione desiderata. Un nuovo punto di controllo apparirà nell’Elenco dei punti di controllo (3).
    Ovviamente, non si può posizionare con precisione i punti di controllo selezionandoli direttamente su una nuvola di punti sparsa. Si può usare questo metodo se si è creata almeno una nuvola di punti densa.
     
     

    Metodo 2: aggiunta di punti di controllo dalle immagini

    Ritorna al sommario
     

    Un metodo più accurato per aggiungere punti di controllo è selezionarli direttamente dalle foto. È necessario posizionare ogni punto di controllo su almeno tre immagini per il processo di scalatura.
    Se si ha intenzione di utilizzare i punti di controllo per migliorare le posizioni delle fotocamere utilizzando l’algoritmo di ottimizzazione dell’Bundle Adjustment , è consigliabile posizionarli su il maggior numero possibile di immagini.
    Questo metodo è adatto per gestire un numero piccolo/medio di GCP o immagini. Per comodità, se lavori con set di dati più grandi (circa 2000 immagini o più), è meglio fare affidamento sul Metodo 3: importazione dei punti di controllo da un file di testo descritto di seguito.
     

    Cliccare sul pulsante “Da immagini” (1) nel Pannello GCP per selezionare i punti di Controllo. Verrà visualizzato il “Editor di Punti di Controllo” (2).


     

    Da notare che è possibile cliccare su una fotocamera nello spazio di lavoro 3D (3) per selezionarla nella scheda di navigazione “Fotocamere”. Cliccare con il tasto destro del mouse sulla fotocamera in miniatura (4) per selezionare l’opzione “Aggiungi punti di controllo dalle immagini” (5) e posizionare il punto di controllo dell’immagine scelta nell’Editor Punti di Controllo (6).

     

    Nella lista delle fotocamere (7), fare clic-sinistro su un’immagine per visualizzarla nel Selettore Punti di Controllo (8). Cliccare dove desidera posizionare il punto di controllo, e apparirà un punto rosso (9). Un bordo viola evidenzierà la prima immagine selezionata (10), ma il pulsante “OK” (11) non sarà ancora disponibile: sono necessarie almeno due immagini per definire un punto di controllo nello spazio 3D.


     

    Cliccare nuovamente su un’altra immagine nella “Lista fotocamere” (7). Nel Selettore Punti di Controllo (8) si noterà una Retta epipolare (12) prima di posizionare il punto di controllo, ovvero un ulteriore suggerimento da parte di Zephyr per indicare che il punto di controllo posizionato in precedenza si trova da qualche parte nell’immagine lungo quella linea (13).

     

    Ricorda di individuare i punti di controllo su molte immagini se si ha intenzione di ottimizzare l’orientamento delle fotocamere utilizzando l’ algoritmo diBundle Adjustment. Più immagini sono coinvolte, più accurato sarà il Bundle Adjustment. Cliccare su “OK” (11) per completare l’aggiunta del nuovo punto di controllo.
     

    Si possono vedere i valori di Errore di riproiezione globale e Errore di riproiezione locale (aggiornati in tempo reale) mentre si posizionano i punti di controllo sulle immagini.
     

    Visibilità delle fotocamere

    Una volta che è stato posizionato un punto di controllo sulla prima immagine, l’Editor di Punti di Controllo elenca automaticamente le fotocamere più affidabili, secondo Zephyr. A volte, le fotocamere oblique o troppo lontane (dal punto selezionato) non sono incluse nell’opzione “Mostra fotocamere suggerite”, anche se il punto è visibile su tali camere.
    In base alla raccolta dei dati sul campo (sovrapposizione tra le immagini, cattura nadirale, cattura obliqua o entrambe, ecc.), è consigliabile selezionare l’opzione “Mostra fotocamere riproiettate” per includere ogni immagine pertinente una volta terminato con le “Fotocamere suggerite”. Ciò sarà fondamentale per eseguire con successo il Bundle Adjustment in un secondo momento.


     

    Di seguito sono elencati gli Strumenti Avanzati che aiuteranno a posizionare i punti di controllo sulle immagini:
     

    Adatta alla schermata: ridimensiona l’immagine per adattarla alla vista.
    Ruota 90 gradi in senso orario, antiorario, reimposta rotazione: ruota l’immagine e ripristina la posizione iniziale.
    Mostra lente di ingrandimento: mostra/nascondi la lente d’ingrandimento sul cursore mentre posizioni i punti di controllo sulle immagini.
    Mostra errore di riproiezione: mostra/nascondi gli errori di riproiezione locali e globali del punto di controllo corrente.
    Mostra retta epipolare: mostra/nascondi la retta epipolare.
    Mostra altri punti: mostra/nascondi i punti di controllo precedentemente posizionati.
    Ricerca automatica sull’immagine corrente: trova e posiziona automaticamente un punto di controllo sull’immagine corrente.
    Ricerca automatica su tutte le immagini: trova e posiziona automaticamente un punto di controllo su tutte le immagini.
    Rileva marker: rileva automaticamente il centro di un marker rettangolare posizionato nella scena. Facendo clic sull’icona “Rileva marker” e disegnando un rettangolo al centro del marker che si desidera individuare, 3DF Zephyr posizionerà automaticamente il punto di controllo al centro.

    Nota: L’utilizzo dello strumento con un marker a scacchiera migliorerà il rilevamento automatico.

    Rileva sfera: permette di rilevare il centro di una sfera posizionata nella scena. Facendo clic sull’icona “Rileva sfera” e disegnando un rettangolo sulla sfera che si desidera individuare nell’immagine, 3DF Zephyr posizionerà automaticamente il punto di controllo nel suo centro.

    Nota: Questa funzione è stata progettata espressamente per l’industria forense, cioè per supportare l’analisi della linea di tiro nelle scene del crimine, dove uno scanner laser scansiona le sfere sull’asta della traiettoria.

    Rimuovi punto: rimuovere i punti di controllo posizionati sull’immagine.

     
     

    Metodo 3: importazione dei punti di controllo da un file di testo in Zephyr

    Ritorna al sommario
     
    Se si sta lavorando con dataset enormi e/o un grande numero di punti di controllo, importare i GCP in una sola volta invece di scorrere l’intero dataset di immagini potrebbe risparmiare molto tempo. Tuttavia, è comunque necessario posizionare i punti di controllo sulle immagini poiché ciò che è stato importato non è ancora collegato alle foto. Per utilizzare questo metodo, è necessario tener presente che sia la nuvola di punti sparsi creata che le coordinate da importare devono avere lo stesso sistema di riferimento. Le coordinate da un file .txt o .csv dovrebbero essere definite utilizzando la seguente sintassi:
     
    “Control_Point_1” 8.18880729e-01 -5.14516149e-01 4.54143586e-01
    “Control_Point_2” -5.64690812e-01 -5.65085273e-01 1.09244112e+00
     


     

    Clicca il pulsante “Importa 3D” (1) nel pannello GCP per importare le coordinate 3D da un file esterno (.txt, .csv, .dxf).
    Seleziona il file di testo facendo clic sul pulsante “Sfoglia” (2) e assicurati di scegliere il file A01_control_point_tutorial_GPS_coordinates.txt (3) reperibile nel dataset condiviso all’inizio. Cliccare sul pulsante “OK” (4) per importare le coordinate 3D.
     
    Le coordinate 3D verranno aggiunte allo spazio di lavoro come punti rossi (5) e saranno elencate nel pannello GCP:

     

    Per collegare i punti di controllo importati alle immagini, si può cliccare con il pulsante destro del mouse su ciascun nome del punto di controllo nel pannello GCP e selezionando l’opzione “Modifica” (6). In questo modo si sta comunicando a 3DF Zephyr le coordinate 2D di ogni punto di controllo importato. Una volta che l’editor dei punti di controllo si è aperto, noterai che 3DF Zephyr suggerisce le fotocamere su cui quel punto è visibile nell’elenco delle fotocamere (7). Questo significa che puoi aggiungere facilmente il punto 2D (8), evitando di dover cercare nell’intero dataset.


     
     

    • Opzionale: utilizzare i vincoli per migliorare l’orientamento delle immagini durante il processo SFM

    Ritorna al sommario

     

    Questo flusso di lavoro opzionale è consigliato per situazioni particolari, in cui è possibile utilizzare le fotocamere già orientate e i relativi punti di controllo di una prima sessione di Zephyr, per fornire maggiori informazioni all’algoritmo di Structure For Motion (SFM) durante la creazione di un nuovo progetto in una seconda sessione. Di conseguenza, questo flusso di lavoro migliorerà il posizionamento delle camere e la nuvola sparsa risultante.
     

    Dopo aver importato le coordinate 3D e averle aggiunte come coordinate 2D nelle immagini, cliccare sul pulsante “Salva tutti” (1) nel pannello GCP. Questa azione aprirà la finestra Esporta punti di controllo e distanze. Assicurarsi di selezionare le caselle per esportare coordinate 2D e 3D. Quindi, selezionare la directory desiderata, fornendo un nome al file e infine cliccare sul pulsante “Salva” (2).
     

    Successivamente, nel menu Workflow, selezionare l’opzione “Nuovo progetto” (3) per avviare il Wizard per il nuovo progetto. Assicurati che la casella di controllo “Vincoli fotocamera punti di controllo” (4) sia attivata nella prima pagina prima di procedere.
     

    Nella pagina Importa vincoli, cambia filtro Tipo vincolo su “Punto di controllo” (5). Quindi, premi il pulsante “Importa punti di controllo da file” (6) per importare il file delle coordinate 2D esportate in precedenza. Infine, cliccare sul pulsante “Importa vincoli da file” (7) per importare il file esportato con le coordinate spaziali 3D.

     

    Tutti i punti di controllo GPS con le relative coordinate 3D (8) saranno elencati al centro della finestra di importazione vincoli. A questo punto, è possibile cambiare il Sistema di riferimento in uscita e assegnare lo stato di Vincolo o Punto di controllo a ciascun punto. Una volta pronto, clicca su “Avanti” per procedere e avviare la ricostruzione.


     
     

    • Step 2 – Scalare e georeferenziare il progetto

    Ritorna al sommario
     

    Scalare e georeferenziare il modello con vincoli 3D

    Ritorna al sommario

    La ricostruzione 3D è soggetta a una scala, rotazione e traslazione arbitrarie in 3DF Zephyr. Sia che si abbia aggiunto manualmente punti di controllo al progetto di Zephyr o importato punti di controllo da un file esterno, è possibile associarli alle coordinate spaziali del mondo per scalare e georeferenziare il progetto.
     

    Come regola generale:

      – Utilizzando 1 punto di controllo verrà eseguita solo una traslazione del mondo;
      – Utilizzando 2 punti di controllo verrà eseguita una traslazione del mondo e verrà impostata una scala globale;
      – Utilizzando 3 o più punti di controllo verrà eseguita una trasformazione completa che scalera, traslerà e ruoterà il mondo (processo di georeferenziazione).

     
    Nota: le coordinate che stai importando e i punti di controllo che hai aggiunto al progetto devono avere lo stesso nome.
     


     

    Cliccare il pulsante “Allinea modello con vincoli 3D” (1) nel pannello di punti di controllo. Nella finestra Allinea usando vincoli, clicca il pulsante “Importa vincoli da file (2)” per cercare il file esterno nel dataset collegato sopra e chiamato A01_control_point_tutorial_GPS_coordinates.txt (3) e clicca il pulsante “Apri”. Si possono saltare i punti (2) e (3) se si è seguito il Metodo 3: importazione dei punti di controllo da un file di testo in Zephyr descritto sopra.
     

    Entrambe le colonne Vincolo e Controllo saranno abilitate per ogni punto di controllo per impostazione predefinita, e se si sta lavorando con dati RTK, queste colonne saranno abilitate per ogni posizione delle camere.
     

    SUGGERIMENTO Differenza tra Vincoli e Controllo (Clicca qui)

    Vincoli sono i punti più affidabili in termini di livello di precisione, 3DF Zephyr si baserà su di essi per guidare il processo di scalatura.

    Controllo sono riferimenti che il software considera solo durante la scalatura per monitorare il valore dell’errore.
     

    Esempio:
    Si pensi ad un rilievo aereo in cui hai sia coordinate prese utilizzando il sistema GPS del drone che coordinate prese a terra con una stazione totale. Una volta che hai posizionato i punti in 3DF Zephyr, si può scegliere quali punti devono essere i Vincoli, ovvero i punti di cui sei più sicuro (della loro precisione), e quali punti saranno presi in considerazione come semplici riferimenti per monitorare il valore dell’errore (Controllo).

     
    Una volta selezionati Vincoli e Controllo (4), è possibile gestire le impostazioni del sistema di riferimento in uscita (5).
     

    Il Sistema di riferimento in uscita e il Modello di Geoide possono essere modificati cliccando sull’opzione “Seleziona Sistema di Riferimento” per aprire il database dei Sistemi di Coordinate.


     

    Si aprirà la finestra Sistema di Coordinate di Proiezione:
     

    Selezionare un Sistema di Coordinate dalla lista del database, digitando il suo nome o il codice EPSG, o importa un nuovo sistema da una fonte esterna cliccando il pulsante “Importa”.
     

    Durante questo passaggio è possibile scaricare e caricare un Modello di Geoide in relazione al Sistema di Riferimento delle Coordinate. Seguendo questo link, è possibile scaricare alcuni dei Modelli di Geoide più comunemente utilizzati: https://www.3dflow.net/geoids/. Clicca il pulsante “Ok” quando si è conclusa questa fase.
     

    Infine, puoi attivare/disattivare l’opzione “Usa Bundle Adjustment” (6) per ottimizzare le posizioni delle camere minimizzando l’errore di riproiezione dei punti di controllo aggiunti al progetto. Per ulteriori dettagli, consultare il tutorial dedicato al Bundle Adjustment.
     

    Una volta impostati tutti i paramentri, cliccare sul pulsante “OK” (7) per avviare il processo di scalatura/georeferenziazione. Un report di errore apparirà al termine del processo, e possibile richiamarlo in qualsiasi momento cliccando su Strumenti > Punti di controllo > Mostra informazioni sull’ allineamento modello.
     
     

    Scalare utilizzando le distanze

    Ritorna al sommario
     

    In 3DF Zephyr è possibile utilizzare un metodo alternativo per scalare il progetto utilizzando distanze note.
    Le distanze di controllo possono essere definite come la distanza tra due punti di controllo, tra un punto di controllo e una camera o tra due camere.


     

    Clicca sul pulsante “Distanza” (1) nella scheda Misure, e si aprirà la finestra di selezione del punto di controllo (2). Scegli i due punti di controllo da questa finestra, selezionandoli dal menu Punto di controllo #1 (3) e il menu Punto di controllo #2 (4).
    Questo esempio mostra due punti di controllo (GCP 5 e GCP 6), che possono essere anche camere. Una volta cliccato “OK” (5), i punti di controllo e la distanza appariranno anche nell’Elenco delle Distanze di Controllo (6), e la distanza sarà rappresentata come una linea colorata (7) e renderizzata sullo schermo (la distanza in questo esempio è di 23.808 metri).


     

    Per scalare il mondo 3D utilizzando le Distanze di Controllo, basterà cliccare sul pulsante “Allinea modello con Vincolo 3D” (8) nel pannello dei Punti di Controllo, e si aprirà la finestra Allineamento con Vincoli.
    Cliccare sul menu Tipo di Vincolo e selezionare “Distanza” (9) per visualizzare la misura creata in precedenza, si può impostare il valore desiderato della “Distanza” (10) cliccando sulla colonna delle distanze; ad esempio, a 30.000 metri.
    Si può selezionare le distanze di controllo create in precedenza come Vincolo e/o Controllo (11) in maniera simile ai Punti di Controllo e quindi cliccare il pulsante “OK”(12).
     

    Fatto! L’intera mesh verrà scalata secondo il nuovo valore inserito (13).