7.2.1
Utilizzo della focale
Come accennato poco fa, se posizioniamo un oggetto su un piano diverso da quello del calibratore con il quale calcoliamo il rapporto millimetri pixel risulta impossibile misurare quell’oggetto con il rapporto appena calcolato. Questo non è completamente vero, se il pia- no dell’oggetto è parallelo al piano del calibratore, se si conoscono alcuni parametri della fotocamera e se si conoscono alcune distanze nella realtà, è possibili riportare una misura su piani diversi. Questo è possibile sfruttando i criteri di similitudine dei triangoli: due trian- goli sono simili se hanno una coppia di lati proporzionali e l’angolo tra essi congruente. Lo schema sottostante ci aiuta a descrivere la situazione in modo più chiaro. Vediamo come la realtà (parte sottostante dello schema) venga rappresentata da sensore (parte sopra in grigio) il quale riporta, attraverso la lente focale, i fasci di luce riflessa dagli oggetti su di un piano fotosensibile composto da pixel. Nel dettaglio vediamo come il piano dei binari, che risulta più vicino al sensore, venga riportato su un’area maggiore di pixel mentre il piano del calibratore, essendo più lontano, occupa un’area minore. Tornando al criterio di similitudi- ne vediamo come il triangolo che ha come vertici gli estremi del piano del calibratore e la lente focale, sia simile al triangolo che ha come vertici gli estremi del piano del calibratore riportato sul sensore e la lente focale.
Per questo motivo è possibile esprimere la seguente proporzione:
∆cal_low 2 : f =
Lc 2 : x1
Osservando lo schema possiamo anche definire:
x2 = x1− ∆h
Infine, possiamo esprimere la proporzione che ci serve a ricavare la nostra incognita∆cal_high:
∆cal_high 2 : f =
Lc 2 : x2
Facendo un po’ di chiarezza definiamo tutte le variabili:
• ∆cal_low è la larghezza del calibratore in pixel che abbiamo trovato con il metodo findChessboard().
• f è la lunghezza focale del sensore della camera che stiamo usando, si trova nelle specifiche tecniche della camera.
• Lcè la larghezza del calibratore in millimetri, nota a priori.
• ∆hè l’altezza dei binari, nota a prioiri.
• x1 è la distanza tra la focale e il piano del calibratore, ricavabile dalla prima proporzio-
ne.
• x2 è la distanza tra la focale e il piano dei binari, ricavabile dalla prima equazione.
• ∆cal_highè la larghezza in pixel che il calibratore assumerebbe se fosse collocato sul piano dei binari.
Una volta trovata l’incognita è possibile calcolare un rapporto che ci consente di riportare misure effettuate su un piano su di un altro. Il rapporto sarebbe definito come segue:
R =
Lc 2
∆cal_high
Questo metodo è una soluzione alternativa, ma più complessa, al mettere tutto tutto sullo stesso piano in quanto questa soluzione potrebbe non essere sempre applicabile. Ad esem- pio, se ci trovassimo con un marciapiede, una banchina o anche solo se i binari fossero rialzati rispetto al suolo, utilizzare questi calcoli potrebbe risultare comodo.
7.2.2
Calibrazione della camera
Il processo di calibrazione della camera consente di rimuovere le deformazioni causate dalla camera. Di norma queste distorsioni si notano ai bordi dell’immagine oppure in presenza di linee rette (nella realtà) che attraversano l’intera foto formando una curva. Per effettuare questo tipo di operazione possiamo sfruttare ancora una volta il calibratore: fotografandolo da un numero considerevole di angolazioni diverse (circa 40) OpenCV è in grado di calcolare la matrice che permette di correggere le distorsioni create dalla camera. Il tutto avviene mediante il metodo calibrateCamera(). Tuttavia, questo processo andrebbe fatto ogni volta che si cambia camera. Un possibile sviluppo futuro, ipotizzando che si voglia sviluppare un’applicazione per smartphone, potrebbe essere quello di inserire una sorta di calibrazione guidata da svolgere una sola volta appena installata l’applicazione. Questo procedimento migliorerebbe ulteriormente la precisione delle misure effettuate.
7.2.3
Concatenazione di più fotografie
Il prototipo dell’algoritmo implementato attualmente considera la casistica più semplice, ov- vero quando vi è un solo binario e 4 punti per costruire la passerella. In futuro sarà re- lativamente semplice estenderlo per effettuare misurazioni anche su scene più complesse combinando più foto di più binari della stessa scena. Questo sarà possibile sempre me- diante l’omografia che, come spiegato in fase di analisi, mette in relazione i puti di due piani. Sarà quindi possibile fotografare più binari e costruire dei modelli complessi come quello in figura.
Figura 7.3: Esempio dei risultati che si possono ottenere
7.2.4
Automazione dei test
Durante lo svolgimento del progetto i test sono stati fatti a mano, riportando i dati rilevati sulla scena e nella fotografia in una tablella. In futuro si può aggiungere sulla piattaforma la possibilità di inserire come input un file contenente le misurazioni della scena footgrafata, in questo modo il sistema può produrre automaticamente un report sulle misure effettuate. In questo modo, l’utente può verificare di aver fatto tutto correttamente e che l’algoritmo ha effettuato dei rilevamenti più o meno precisi.
7.2.5
Controllo online della ripresa video
Sempre nell’ottica dello sviluppo di un’applicazione dedicata un possibile sviluppo futuro potrebbe essere quello di riprendere la scena e "in live" vedere la passerella sul video. Questo sfruttando la potenza di elaborazione del server e una connessione molto veloce. Sicuramente potrebbe essere un valido aiuto per l’utente finale in quanto potrebbe avere la possibilità di effettuare più tentativi spostandosi sui binari in modo da scegliere la posizione migliore.