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

Utilizzo dei punti di controllo e distanze

 

Benvenuti alla serie di tutorial dedicati a 3DF Zephyr.
In questo tutorial, imparerai ad utilizzare i Punti di controllo (GCP), Vincoli le Distanze di controllo in 3DF Zephyr
Questa esercitazione non può essere completata con le versioni 3DF Zephyr Free o Lite.

 

  • Introduzione

I punti di controllo a terra (GCP) consentono di scalare e georeferenziare i modelli 3D in 3DF Zephyr associandoli a distanze o coordinate GNSS raccolte in situ.

I GCP possono essere utilizzati anche per ottimizzare le posizioni della fotocamere sfruttando l’algoritmo di Compensazione a stelle proiettive, riducendo così l’errore di riproiezione delle immagini.

Poiché questa procedura cancella qualsiasi nuvola di punti o mesh densa, si consiglia vivamente di verificare prima l’accuratezza dell’orientamento della camere e di scalare i modelli 3D una volta generata la nuvola di punti sparsa, prima di eseguire altre fasi di ricostruzione 3D.

I punti di controllo a terra, l’allineamento e la scalatura dei modelli con punti di controllo noti (o distanze note) possono essere gestiti dal pannello a destra GCP.

 
Ricorda che ogni ricostruzione è soggetta ad un fattore arbitrario per scala, traslazione e rotazione!
 

Il primo step si concentra su come aggiungere punti di controllo al progetto 3DF Zephyr, mentre il secondo step mostra il processo di scalatura in 3DF Zephyr.
 

 
Per completare questa esercitazione, potete utilizzare il vostro dataset o scaricare il progetto .zep di esempio che troverete di seguito.

download datasetScarica Dataset Tutorial – 3DF Zephyr A01 Control Points (1 GB)
 
 

  • Step 1 – Aggiungere punti di controllo

 

  • Metodo 1: scelta diretta

Il modo più semplice (ma meno accurato) per aggiungere un punto di controllo è quello di prenderlo direttamente dalla ricostruzione 3D (su una nuvola di punti o una mesh, ma non su una mesh texturizzata).
 

Nel Pannello GCP, fare clic sul pulsante “Scegli punto di controllo” (1). Il cursore del mouse si trasformerà in un’icona a forma di crocetta: spostare la croce sulla scena (2) e quindi fare clic con il tasto sinistro del mouse sulla posizione desiderata. Un nuovo punto di controllo apparirà nell’Elenco dei punti di controllo (3).

Naturalmente, non è possibile posizionare con precisione i GCP con il metodo della Scelta diretta su una nuvola di punti sparsa. Si può utilizzare questo metodo se si è precedentemente creata almeno una nuvola di punti densa.
 
 

  • Metodo 2: aggiungere punti di controllo da immagini

Un modo più accurato per aggiungere i punti di controllo è quello di selezionarli direttamente dalle foto. È necessario posizionare ogni punto di controllo su almeno tre immagini per utilizzarlo nel processo di scalatura. È consigliabile posizionarli sul maggior numero possibile di immagini se si intende sfruttare i punti di controllo per regolare le posizioni della fotocamere utilizzando la Compensazione a stelle proiettive.

Il metodo #2 è adatto per gestire un numero medio-bassso di GCP o di immagini. Per comodità, se si lavora con dataset più grandi (da circa 2000 immagini in su), è meglio affidarsi al metodo #3 descritto di seguito.

Dal pannello GCP, fare clic sul pulsante “Da immagini” (1) per selezionare i punti di controllo. Apparirà l’“Editor dei punti di controllo” (2).
 


 

Si noti che è anche possibile fare clic su una camera nell’area di lavoro 3D (3) per selezionarla nella scheda di navigazione camere. Cliccare con il pulsante destro del mouse sulla miniatura della camera (4) per selezionare l’opzione “Aggiungi punti di controllo da immagini” (5) e posizionare il punto di controllo dell’immagine scelta nell’Editor punti di controllo (6).


 

Ogni punto di controllo deve essere posizionato su almeno tre immagini per esssere aggiunto all’area di lavoro!
 

Gli Strumenti Avanzati possono fornire un valido aiuto al posizionamento dei punti di controllo:
 

Adatta alla schermata: ridimensiona l’immagine per adattarla alla schermata.
Ruota di 90 gradi in senso orario, antiorario, reimposta rotazione: ruota l’immagine e resetta la rotazione.
Mostra lente di ingrandimento: mostra/nasconde la lente di ingrandimento sulcursore mentre si posizionano i punti di controllo
Mostra errore di riproiezione: mostra/nasconde gli errori di riproiezione locale e globale del punto di controllo corrente.
Mostra retta epipolare: mostra/nasconde la linea epipolare.
Mostra altri punti: mostra/nasconde gli altri 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: permette di rilevare automaticamente il centro di un marker rettangolare posizionato sulla scena. E’ sufficiente fare click destro sull’icona “Rileva marker” e disegnare un rettangolo sul marker che vuoi trovare nell’immagine, e Zephyr posizionerà automaticamente il punto di controllo nel suo centro.

Nota: L’utilizzo dello strumento con markers aventi un pattern a scacchiera migliorerà significativamente il rilevamento automatico.

Rileva sfera: permette di rilevare automaticamente il centro di una sfera posizionata sulla scena. E’ sufficiente fare click destro sull’icona “Rileva sfera” e disegnare un rettangolo sulla sfera che vuoi trovare nell’immagine, e Zephyr posizionerà automaticamente il punto di controllo nel suo centro.

Nota: Questo strumento è stato pensato espressamente per il settore forense, adesempio durante le attività di ispezione e analisi sulla scena del crimine in cui le sfere poste sull’asta della traiettoria vengono scannerizzate con un laser scanner.

Rimuovi punto: rimuove il punto di controllo posizionato sull’immagine. image.

 

Cliccare nuovamente su un’altra immagine dall’“Elenco fotocamere” (7). Si noterà una retta epipolare (11) prima di posizionare il punto di controllo, ovvero un ulteriore suggerimento da parte di Zephyr che indica la presenza del punto di controllo precedentemente posizionato da qualche parte nell’immagine lungo quella Retta (12).

Si consiglia di individuare i punti di controllo sul maggior numero possibile di immagini se si intende ottimizzare l’orientamento delle fotocamere con la Compensazione a stelle proiettive. Maggiore è il numero di immagini coinvolte, maggiore sarà l’accuratezza della Compensazione a stelle proiettive. Fare clic sul pulsante “OK” (10) per terminare l’aggiunta del nuovo punto di controllo.

È possibile vedere i valori dell’errore di riproiezione globale e dell’errore di riproiezione locale (aggiornati in tempo reale) mentre si posizionano i punti di controllo sulle immagini.
 

Visibilità camere

Una volta posizionato un punto di controllo sulla prima immagine, l’editor dei punti di controllo elenca le camere più affidabili, secondo Zephyr, per impostazione predefinita. A volte le fotocamere oblique o troppo lontane (dal punto selezionato) non vengono incluse se si seleziona l’opzione “Mostra fotocamere consigliate”, anche se il punto è visibile su quelle fotocamere.

A seconda dell’acquisizione dei dati in loco (sovrapposizione tra le immagini, acquisizione nadirale, obliqua o entrambe, ecc.), è consigliabile selezionare l’opzione “Mostra fotocamere riproiettate” per includere ogni immagine pertinente una volta terminata la selezione delle “Fotocamere suggerite”. Questo sarà fondamentale per eseguire senza problemi la Compensazione a stelle proiettive in un secondo momento.
 
 

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

Se si ha a che fare con enormi insiemi di dati e/o con un gran numero di punti di controllo, l’importazione dei GCP in una sola volta, invece di scorrere l’intero set di immagini, può essere molto più rapida. Chiaramente, è ancora necessario posizionare i punti di controllo sulle immagini, poiché ciò che è stato importato non è ancora associato alle immagini. Tuttavia, qui di seguito si illustrano i vantaggi di questo metodo. Per utilizzare questo strumento, si noti che sia la nuvola di punti sparsa creata che le coordinate da importare devono avere lo stesso sistema di riferimento.

Fare clic sul pulsante “Importa 3D” (1) nel pannello GCP per importare le coordinate 3D da un file esterno (.txt, .csv, .dxf).
Selezionare il file di testo facendo clic sul pulsante “Sfoglia” (2) e assicurarsi di scegliere il file A01_control_point_tutorial_GPS_coordinates.txt che si trova nel dataset di esempio condiviso sopra. Fare clic sul pulsante “OK” (4) per importare le coordinate 3D.


 

Le coordinate 3D saranno aggiunte all’area di lavoro (punti rossi) ed elencate nel pannello GCP:


 

È necessario associare i punti di controllo importati alle immagini facendo clic con il tasto destro del mouse sul nome di ciascun punto di controllo nel pannello GCP e selezionando l’opzione “Modifica”. In altre parole, in questo modo si indicano a 3DF Zephyr le coordinate 2D di ogni punto di controllo.

Una volta aperto l’editor dei punti di controllo, si noterà che 3DF Zephyr suggerisce immediatamente le camere su cui quel punto è visibile.

Ciò significa che è possibile aggiungerlo facilmente, evitando di sfogliare l’intero dataset.


 
 

  • Step 2 – Scalare e georeferenziare il progetto

  • Scalare e georeferenziare il modello con i vincoli 3D

La ricostruzione 3D può essere scalata, ruotata e traslata arbitrariamente in 3DF Zephyr. Per scalare e georeferenziare utilizzando i punti di controllo, aprire la finestra “Allinea il modello con i vincoli 3D” nel pannello GCP. Una volta terminato il posizionamento dei GCP.
Come regola generale:

  • utilizzando 1 punto di controllo si trasla il mondo;
  • utilizzando 2 punti di controllo si trasla il mondo e si imposta una scala globale;
  • utilizzando 3 o più punti di controllo si imposta una trasformazione completa che scala, trasla e ruota il mondo (processo di georeferenziazione).

 

Sia che abbiate aggiunto manualmente i GCP al progetto di Zephyr sia che abbiate importato i punti di controllo da un file esterno, sarete ora in grado di scalare e georeferenziare il progetto.


Nota: le coordinate importate e i GCP aggiunti al progetto devono avere lo stesso nome/etichetta.

Aprire la finestra “Allinea modello con vincoli 3D” (1).

Fare clic sul pulsante “Importa vincoli da file” (2) per cercare il file esterno contenuto nel dataset di esempio collegato in precedenza e denominato A01_control_point_tutorial_GPS_coordinates.txt (3).

È possibile saltare i punti (2) e (3) se si è seguito il metodo #3 descritto sopra.

Si noterà che entrambe le colonne “Vincolo” e “Controllo” saranno abilitate per default per ogni punto di controllo.
 

Nota: se si lavora con dati RTK, queste colonne saranno abilitate per ogni posizione della camere.
 

*TIP* Differenza tra vincoli e vincoli di controllo (Clicca qui)

Vincoli: sono i punti più affidabili in termini di livello di precisione e 3DF Zephyr si basa su di essi per regolare il processo di scalatura.
 
Vincoli di controllo: sono riferimenti che il software considera solo durante la scalatura per tenere sotto controllo il valore dell’errore.

 

Dopo aver selezionato i vincoli e i vincoli di controllo (4), si può procedere con le impostazioni del sistema di riferimento di input e di destinazione (5).
 

Modificare del sistema di riferimento e modello di geoide

 

Nella sezione Sistema di riferimento è possibile impostare sia il sistema di riferimento di input/destinazione, sia il modello di geoide. Fare clic sull’opzione “Seleziona sistema di proiezione” per aprire il database del sistema di proiezione coordinate:


 

Si aprirà la finestra Sistema di proiezione coordinate:

Selezionare un sistema di coordinate dall’elenco del database, digitando il nome o il codice EPSG, oppure importarne uno nuovo da una fonte esterna facendo clic sul pulsante “Importa”. Fare clic sul pulsante “Ok” quando si è pronti.
 
 

Infine, è possibile attivare/disattivare l’opzione “Compensazione a stelle proiettive” (6) per ottimizzare le posizioni della camere riducendo al minimo l’errore di riproiezione dei punti di controllo aggiunti al progetto. Per maggiori dettagli, consultare il tutorial dedicato alla Compensazione a stelle proiettive. Una volta impostato, fare clic sul pulsante “Trasforma e verifica errore” (7) per eseguire il processo di scalatura/georeferenziazione.
 

Al termine del processo verrà visualizzato un report di errore, che si può sempre richiamare facendo clic su Strumenti > Punti di controllo > Mostra informazioni allineamento modello.
 
 

  • Scalare utilizzando le distanze

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

Fare clic sul pulsante “Distanze” (1) nella scheda Misurazioni. Si aprirà la finestra di Selezione dei punti di controllo (2). Da questa finestra, scegliere i due punti di controllo necessari dal menu di selezione del Punto di controllo #1 (3) e dal menu di selezione del Punto di controllo #2 (4).
Questo esempio mostra due punti di controllo (GCP 6 e GCP 7), ma possono essere anche camere. Una volta fatto clic su “OK” (5), la distanza verrà tracciata come linea verde (6) e la misura resa sullo schermo (in questo caso, 23,8157).
I punti di controllo e la distanza appariranno anche nell’Elenco distanze di controllo (7).
 

Per scalare il mondo utilizzando le distanze di controllo, è sufficiente fare clic sul pulsante “Scala il mondo con le distanze di controllo” (8) nel pannello Misurazioni e apparirà la finestra “Scala con distanze note” (9).

È possibile contrassegnare le distanze di controllo create in precedenza come “Vincoli” e/o “Controlli” (10) come in precedenza con i punti di controllo. Attivando i flag si potrà impostare il “Valore della distanza” (11) desiderato per scalare la nuvola di punti o la mesh. Ad esempio, è possibile impostarlo a 30.000 metri e fare clic sul pulsante “OK”(12).

Il ecco fatto! L’intera mesh verrà scalata in base al valore appena inserito.

 
 

  • Note Finali

In questa esercitazione, impariamo a creare e utilizzare punti di controllo e distanze per scalare e georeferenziare in 3DF Zephyr.
Possiamo utilizzare i dati RTK per scalare e georeferenziare i nostri progetti attraverso un flusso di lavoro simile,
seguendo il tutorial:A13 – ELABORAZIONE DATI RTK