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

Utilizzo punti di controllo e distanze

 

Benvenuti alla serie di tutorial dedicati a 3DF Zephyr.
In questo tutorial, imparerai ad utilizzare i punti di controllo e le distanze di controllo in 3DF Zephyr.
 
Questo tutorial non può essere completato con la versione Free o Lite 3DF Zephyr,e non è dedicato alla ricostruzione 3D chi non è interessato alle misurazioni geografiche o ad ambiti di rilevazione, può saltare questo tutorial.

 

  • Introduzione

I punti di controllo permettono di definire una specifica coordinata. Tale coordinata può essere successivamente utilizzata per calcolare delle distanze di controllo tra altri punti o camere, così come vincoli per l’allineamento del mondo.
 
Ricorda che ogni ricostruzione è soggetta ad un fattore arbitrario per scala, traslazione e rotazione!.
 

Nella seguente guida verrà spiegato come definire un fattore globale di scala per rilevare delle distanze e orientare la posizione del mondo, scalarlo e ruotarlo utilizzando dei punti di controllo definiti. Punti di controllo, allineamento e scalatura del modello con punti di controllo noti (o distanze note) possono essere gestiti dal pannello sulla destra “GCP” (Ground Control Points).

 

Per completare questo tutorial, potete utilizzare un vostro dataset, creare la ricostruzione utilizzata in questo tutorial partendo dal nostro dataset oppure scaricare direttamente il progetto .zep utilizzato in questo tutorial. Si ringrazia airmap per aver condiviso con noi questo dataset!

download datasetScarica Dataset – Università di Udine Zip (77.3MB)
downloadScarica Dataset – Università di Udine .Zep (487MB)

 
 

  • Aggiunta di punti di controllo tramite scelta diretta

Il modo più semplice (ma il meno accurato) per inserire un nuovo punto di controllo è di selezionarlo direttamente dalla ricostruzione 3D (su una nuvola di punti o su una mesh, ma non su una mesh testurizzata).

Dal pannello “GCP” (Ground Control Point) clicca il bottone “Scegli” (1). Il cursore del mouse presenterà l’icona di un mirino: porta il cursore sulla scena (2) ed esegui click sinistro sulla posizione desiderata. Un nuovo punto di controllo sarà inserito nella Lista dei punti di controllo (3).

Tutto qua, non serve altro per scegliere direttamente un punto di controllo!

 
 

  • Aggiunta di punti di controllo tramite selezione da foto

Un modo molto più accurato di definire dei punti di controllo è di selezionarli direttamente dalle immagini. E’ necessario selezionare la stessa coordinata da almeno due immagini in modo da poter triangolare le coordinate 3D e fare in modo che Zephyr calcoli i punti di controllo.

Cancelliamo il punto di controllo creato precendemente cliccando con il tasto destro sulla Lista dei punti di controllo (3) e successivamente cliccando su “Rimuovi Tutto”. Clicca “Si” per confermare.

Adesso, dal pannello “GCP” clicca “Aggiungi punto di controllo da immagini” (4): comparirà la “finestra di selezione di punto di controllo”.(5)

Dalla “lista delle camere” (6) clicca su una delle immagini per vederla nel “Selettore del punto di controllo” (7). Fai click sinistro dove desidrei il punto di controllo e comparirà un punto rosso (8). Il bottone “Ok” (9) non sarà ancora selezionabile: ricorda, abbiamo bisogno di definire il punto di controllo in almeno due immagini.

Strumenti Avanzati
Le seguenti funzionalità aiuteranno a posizionare i punti di controllo sulle immagini nella finestra di modifica 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.

 

Clicca su un’altra immagine nella “lista delle camere” (6): questa volta vedrai anche una linea epipolare (11) che ti aiuterà nella selezione della seconda coordinata (11) che potrai posizionare sempre con il click sinistro come per la prima. Il pulsante “Ok” (10) sarà ora selezionabile – inserisci quante coordinate desideri (più coordinate inserisci, maggiore sarà l’accuratezza del punto di controllo) e clicca “OK” per completare l’aggiunta del punto di controllo.
Quando si cambia la posizione 2D della coordinata sull’immagine, si può vedere in tempo reale l’errore di riproiezione globale e l’errore di riproiezione locale.

*TIP* Visibilità delle Camere (Clicca qui)
Puoi cambiare la “Visibilità” delle camere selezionando l’opzione “Mostra fotocamere riproiettate” dal menu a discesa nell’angolo in basso a sinistra della finestra di “selezione di punto di controllo”. Questo ti permette di posizionare i punti di controllo anche sulle “camere lontane” (cornici giallo scuro). In alcuni casi, questo metodo potrebbe migliorare la precisione dell’orientamento, specialmente quando alcune camere hanno un alto errore di riproiezione. L’opzione “Mostra le fotocamere selezionate” mostra le camere (riquadri verdi) dove il punto di controllo è già posizionato.
 
 

  • Importazione di punti di controllo da file di testo

Importazione di punti di controllo 2D da file di testo

Le coordinate 2D sono le coordinate X e Y di un punto in un’immagine.

Le coordinate 2D hanno lo scopo di velocizzare l’importazione dei punti di controllo in un certo progetto (ad esempio, se state eseguendo un secondo test su un set di dati che avete già elaborato, potete facilmente esportare le coordinate 2D dal progetto precedente e caricarle istantaneamente in quello attuale): cliccate con il tasto destro [QUESTO LINK] e “salva come” questo file di testo di esempio come 3DF_Zephyr_Tutorial_02_2D_coords.txt

Per importare le coordinate 2D da un file di testo, basta cliccare sul pulsante “Importa 2D”(12) pulsante, “Sfoglia (13) pulsante, e selezionare il file di testo di esempio “3DF_Zephyr_Tutorial_02_2D_coords.txt” (14) e clicca ““Apri” (15). Infine, confermate premendo il pulsante “Importa coordinate 2D” (16).

Apparirà una schermata di dialogo: questo avviso dovrebbe dirvi che la fase di importazione è stata fatta correttamente. Clicca su “OK”.

*TIP* Formati del file di coordinate 2D (Clicca qui)
Per ogni punto di controllo da importare, è necessario specificare almeno due coordinate 2D. Per esempio, per importare un punto di controllo chiamato “Punto1” che è visto dalla fotocamera generata dall’immagine chiamata “PictureA.JPG” alle coordinate x,y (100,600) e da una seconda fotocamera, generata dall’immagine denominata “PictureB.JPG” alle coordinate (200,660) il tuo file da importare dovrebbe essere formattato in questo modo:
Point1 PictureA.JPG 100 600
Point1 PictureB.JPG 200 660
 

Importazione di punti di controllo 3D da file di testo

Una coordinata 3D è una coordinata X;Y;Z situata nello spazio 3D, come la finestra di rendering 3DF Zephyr.

Per importare punti di controllo 3D da un file, clicca sul pulsante “Importa 3D” (12a).
Cerca e seleziona il file dei punti di controllo 3D cliccando sul pulsante “Sfoglia” (13a), e clicca sul pulsante “OK” (14a).
I punti di controllo 3D saranno aggiunti nella finestra di rendering e nel pannello GCP sulla destra.
 
 

  • Scalare il modello con i vincoli 3D

Dato che la ricostruzione è soggetta arbitrariamente a scala, rotazione e traslazione, è possibile impostare dei valori di restrizione al mondo rappresentati da coordinate reali, detti “vincoli”. Questo può essere eseguito semplicemente cliccando il pulsante “Allinea il modello con i vincoli 3D”.

· utilizzare 1 punto di controllo traslerà il mondo
· utilizzare 2 punto di controllo trasleranno il mondo e imposteranno la scala globale
· utilizzare 3 o più punto di controllo imposteranno una trasformazione completa che scalerà, traslerà e ruoterà il mondo.

Si può sia impostare i vincoli, importando le coordinate da un file esterno, tramite il pulsante “Importa vincoli da file” (17) o potete impostarli manualmente cliccando sul riquadro di ogni punto. Si noti che ogni punto può essere selezionato come Punto di controllo, Vincolo, o anche come entrambi, selezionando la checkbox appropriata nel “selettore vincolo/controllo”(18).

In genere, è una buona idea includere anche punti di controllo che non siano anche vincoli.

*TIP* Differenza tra Vincoli and Punti di controllo (Clicca qui)
Vincoli sono i punti di cui si è più sicuri in termini di livello di precisione, e su cui 3DF Zephyr si basa per guidare il processo di scalatura.
Punti di controllo sono riferimenti che il software considera solo durante il scalatura per mantenere il valore di errore monitorato.
 

Puoi sperimentare un po’ con l’importazione e le impostazioni manuali, cliccando col tasto destro del mouse [QUESTO LINK] e “salva3DF_Zephyr_Tutorial_02_3D_coords. txt (19) (analogamente al passo precedente), fare clic sul pulsante “Importa Vincoli da file” (17) , sfogliare e selezionare 3DF_Zephyr_Tutorial_02_3D_coords.txt e quindi fare clic su “Apri”.

*TIP* Formato del file di importazione dei punti di controllo (Clicca qui)
Il formato del file dei punti di controllo (coordinate), richiede che ogni riga sia formattata come segue: nome etichetta x y z o nome etichetta, x, y, z.
Se dai un’occhiata più da vicino al file che hai appena scaricato, noterai una stella (*) prima di alcuni vincoli. Se provate ad importarli, vedrete che quei punti saranno ignorati in quanto le coordinate che state importando e i GCP che avete definito nell’area di lavoro 3DF Zephyr devono avere gli stessi nomi/etichette. E’ anche possibile impostare i vincoli della camera cliccando con il tasto destro del mouse e selezionando “aggiungi vincolo camera”.
Esempio:
Point4 361856.6827 5104563.954 117.631000
*Point5 361858.8289 5104620.249 117.501400

Semplicemente clicca “Trasforma e verifica errori” (20) quando siete pronti a procedere.

 

Nota: Si può anche eseguire un algoritmo di compensazione a stelle proiettive selezionando la casella “Esegui compensazione stelle proiettive” .

La regola l’orientamento e la posizione delle fotocamere minimizzando l’errore di riproiezione dei punti di controllo posizionati.

Per maggiori dettagli vedere il tutorial dedicato alla Compensazione a stelle proiettive.
 
 

  • Scalare usando le distanze

Le distanze di controllo possono essere definite come la distanza tra due punti di controllo, la distanza tra un punto di controllo e una fotocamera, o la distanza tra due fotocamere. Con 3DF Zephyr è possibile definire facilmente le distanze di controllo e persino scalare l’intero progetto tramite esse.

Clicca sul pulsante “Distanze” (21), nel pannello “Misure”. Si aprirà la “finestra di selezione dei punti di controllo” (22). Da questa finestra, scegli i due punti di controllo necessari dal menu di selezione Punto di controllo #1 (23) e Punto di controllo #2 (24). Questo esempio mostra due punti di controllo (Punto 1 and Punto 3), ma possono essere anche fotocamere. Una volta cliccato “OK” (25), la distanza sarà disegnata come una linea verde (26) e resa sullo schermo (in questo caso, 31.0013). I punti di controllo usati e la distanza appariranno anche nella Lista delle distanze di controllo (27).

 

Per Scalare il mondo usando le distanze di controllo; basta cliccare sul pulsante “Scala il mondo usando le distanze di controllo” (28) nel pannello “Misure”, e la finestra “Scala con distanza nota” (29) apparirà.

È possibile contrassegnare le distanze di controllo create in precedenza come Vincolo e Controllo (30) come fatto in precedenza con i Punti di controllo. Attivando le chebox sarà possibile impostare il “valore metrico di distanza” (31) per scalare la nuvola di punti o la mesh. Potete impostarlo a 20.000 metri per esempio, e cliccare sul pulsante “OK” (32). Avete finito! L’intera mesh sarà scalata sul nuovo valore inserito, come nell’immagine

 
 

  • Note finali

Vale la pena imparare a importare i punti di controllo e i vincoli da file perchè possono migliorare notevolmente la velocità del vostro processo di lavoro.

Il prossimo tutorial riguarda la generazione di ortofoto. Clicca qui per procedere al tutorial #3.