Model Matching
3.3.4 Minimizzazione dell’errore
Al termine del clustering, le stime della posizione sono molto grossolane, in quando sono delle trasformazione di similitudine che si basano sulla corrispon-denza di due soli punti. Nell’applicazione considerata `e invece di fondamentale importanza ottenere una stima quanto pi`u precisa possibile della posizione degli oggetti nella scena. E’ quindi necessario effettuare una procedura di raffinamento che consenta di minimizzare l’errore tra la posa determinata e la posizione dei bordi nell’immagine.
Il primo passo della procedura `e dato dall’ottenimento della posizione precisa dei bordi all’interno dell’immagine. Per fare questo `e possibile utilizzare una va-riante dell’algoritmo di Canny dove venga inclusa la non-maximium suppression per individuare la posizione esatta dei bordi, ma al quale sia stato rimosso il passo successivo di sogliatura con isteresi. Si noti che la sogliatura con isteresi `e stata rimossa per preservare la propriet`a di invarianza ai cambiamenti arbitrari di lumi-nosit`a dell’algoritmo fin qui descritto. Un miglioramento ulteriore al rilevamento dei bordi nell’immagine potrebbe essere ottenuto utilizzando una procedura con precisione sub-pixel, come quella riportata in [59].
Il problema di stima della trasformazione che si desidera affrontare in questa sezione pu`o essere formalizzato nel seguente modo: dato Q l’insieme dei punti qi estratti dall’immagine e E l’insieme delle entit`a geometriche ei di cui `e composto il modello, trovare la trasformazione Θ per cui si abbia:
arg min Θ n X i=1 min j=1,...,md(M (Θ, ej), qi) (3.12) dove, M (Θ, ej) rappresenta l’applicazione della trasformazione Θ alle entit`a di E, e d(·) `e la funzione per il calcolo della distanza punto-entit`a. Nel caso in esame, sono stati individuati due modi equivalenti per esprimere la funzione M . Da un lato `e possibile considerare l’omografia nello spazio bidimensionale dell’immagine, dato che `e noto essa rappresenti la trasformazione dei punti di un piano nello spa-zio 3D ai punti in un altro piano vista dalla telecamera. Essendo il nostro oggetto planare, l’omografia permette di descrivere correttamente la sua posa nello spazio 3D. Alternativamente, `e possibile rappresentare con M direttamente la posa del prodotto nello spazio 3D e quindi proiettare tale posa nello spazio bidimensiona-le per determinare la posizione delbidimensiona-le entit`a del modello nell’immagine. Questa seconda opzione possiede due vantaggi: in primo luogo, lavorando nello spazio tridimensionale si ottiene una stima che `e indipendente dalla posizione e dalle caratteristiche della telecamera utilizzata. Grazie a questo `e possibile integrare nello stesso processo di minimizzazione rilevazioni provenienti da pi`u telecame-re, semplificando quindi l’estensione stereo di cui parleremo nella sezione 3.4.1. In secondo luogo, si ha modo di vincolare semplicemente i valori di rotazione e traslazione nello spazio 3D. In questo modo si evita di raggiungere durante la mi-nimizzazione configurazioni impossibili per il prodotto all’interno del contenitore. Per queste ragioni si `e scelto di operare nello spazio tridimensionale, consideran-do con Θ la trasformazione di roto-traslazione in tale spazio. Per poter calcolare la distanza tra i punti nell’immagini e le entit`a del modello `e necessario che la posa 3D venga proiettata all’interno dell’immagine. Per fare questo ci possiamo avvalere della matrice C contenente i parametri della telecamera ottenuta dalla procedura di calibrazione. Abbiamo che, detti p0(X, Y, Z) i punti nello spazio 3D del modello, corrispondenti ad esempio agli estremi dei segmenti, e detta Θ la posizione del modello nel sistema di riferimento della scena, la posizione dei punti p(X, Y ) nel piano dell’immagine `e data da:
Dall’equazione 3.13 `e semplice ricavare l’espressione analitica dell’entit`a nello spazio bidimensionale.
In fase di inizializzazione dell’algoritmo di minimizzazione `e necessario deter-minare Θ a partire dalla similitudine h fornita dal processo di matching, rappre-sentata da una matrice 3 × 3 in coordinate omogenee. Per vedere come questo sia possibile, consideriamo la proiezione nel piano dell’immagine dei punti del model-lo centrato nel sistema di riferimento della scena. Abbiamo che la posizione del punto nel piano dell’immagine `e dato da x = CX, dove X `e il punto nello spazio 3D, mentre x `e la sua proiezione nel piano dell’immagine. A partire da x, nel passo di matching abbiamo valutato la matrice h per cui x0 = hx, dove x0 sono i punti dell’istanza del modello rilevata nell’immagine. Considerando la roto-traslazione che descrive la posizione del modello abbiamo inoltre che X0 = Θ X. Con semplici passi otteniamo che hCX = CΘ X, da cui, rimuovendo X, abbia-mo hC = CΘ . Per risolvere in Θ dobbiaabbia-mo ricorrere alla pseudo-inversa di C, ovvero alla matrice C+ tale per cui CC+ = I. Si ha che C+ = CT(CCT)−1, da cui otteniamo la seguente relazione:
Θ = CT(CCT)−1 h C (3.14)
Per effettuare la minimizzazione, `e necessario calcolare la distanza tra ogni punto dell’immagine con le entit`a del modello. Il matching viene effettuato in modo da considerare anche la direzione del gradiente, in modo da ottenere implicitamente una procedura che rispecchi la funzione di similarit`a descritta.
La procedura di minimizzazione descritta presenta ancora una problematica: essa non `e robusta alla presenza di outliers, ovvero di quei punti dell’immagine che non appartengono effettivamente all’instanza del modello considerata oppure sono generati a causa di errore. La procedura di minimizzazione tenter`a comun-que di fornire un valor di distanza a comun-questi punti, impattando negativamente nella qualit`a della stima della posa. Per risolvere questo problema, `e possibile riformulare la funzione di minimizzazione riportata nell’equazione 3.12 nel modo seguente: arg min Θ n X i=1 min j=1,...,mρ d(M (Θ, ej), qi) σ (3.15) dove ρ `e una loss function robusta e σ rappresenta la scala dell’errore, ovvero la deviazione standard delle distanze calcolate. Per la definizione della funzione
Figura 3.8: Funzione biweight di Beaton-Tukey in confronto alla stima a minimi quadrati.
ρ, possiamo utilizzare la Beaton-Tukey biweight function, la quale considera so-lo i punti che abbiano una distanza inferiore ad a volte la deviazione standard dell’errore: ρ(u) = a2 6 1 −1 − ua2 3 |u| 6 a a2 6 |u| > a (3.16)
Si noti che ponendo ρ(u) = u2 otteniamo una stima ai minimi quadrati. Si veda la figura 3.8.
Per il calcolo della scala dell’errore, possiamo ricorrere all’algoritmo MUSE (Minimum Unbiased Scale Estimator) [46]. L’algoritmo valuta quale sia la scala dell’errore avendo a disposizione tutte le distanze tra immagine e modello calcola-te. Come passo preliminare, tutte le distanze vengono ordinate in modo crescencalcola-te. L’idea chiave `e di calcolare la deviazione standard considerando solo gli n valori pi`u piccoli. Nel momento in cui si hanno solo inliers, al crescere di n la devia-zione standard sar`a decrescente, in quanto abbiamo delle stime via via migliori considerando pi`u punti. Quando per`o si includeranno gli outliers, la stima della deviazione standard inizier`a a crescere, in quando si stanno inserendo fonti di errore nella valutazione. Prendendo quindi il minimo dei valori ottenuti al varia-re di n si ottiene una stima della deviazione standard robusta alla pvaria-resenza di outliers (si veda figura 3.9).
Figura 3.9: Valutazione della deviazione standard aumentando il numero di campioni. Solo l’80% dei punti considerati sono inliers.
La procedura di minimizzazione `e stata effettuata utilizzando il metodo di Levenberg-Marquardt. Al fine di facilitare la convergenza dell’algoritmo, `e possi-bile considerare che, nel caso in esame, l’inclinazione nel piano X-Y del contenitore `e piccola. Possiamo quindi prima valutare la posa migliore facendo variare so-lamente i parametri di traslazione e di rotazione nell’asse Z. Ottenuta una posa stabile, possiamo quindi raffinare ulteriormente la posizione includendo anche i rimanenti parametri nel processo di minimizzazione.
3.4 Estensioni
Nella sezione corrente valuteremo le variazioni necessarie per l’algoritmo de-scritto nella sezione 3.3 in due situazioni distinte. In primo luogo, nella sezione 3.4.1, valuteremo come sia possibile utilizzare le immagini provenienti da due telecamere per aumentare la precisione nella stima della posizione del prodotto. Nella sezione 3.4.2 valuteremo invece come estendere l’algoritmo per permettere la rilevazione di oggetti non planari.