• Non ci sono risultati.

Model Matching

3.2.1 Template matching

L’approccio pi`u semplice per il rilevamento di un oggetto nella scena `e dato dal Template Matching. Il template matching utilizza una maschera di convoluzione basata sul modello che vogliamo trovare all’interno dell’immagine. L’output della convoluzione sar`a massimo quando la struttura dell’immagine sar`a simile alla struttura del template utilizzato.

Figura 3.1: Piramide di immagini.

Per la creazione del template si parte dal modello e si crea un’immagine binaria dove i pixel con valore 1 indicano la presenta del modello in quel punto. Otteniamo quindi l’immagine IT(xt, yt). L’immagine di ingresso viene a sua volta binarizzata, ad esempio identificando i bordi presenti nell’immagine e in seguito eseguendo un operazione di sogliatura, ottenendo in questo modo l’immagine IS(xs, ys). Utilizzando come metrica la somma dei valori assoluti delle differenze (SAD, Sum of absolute differences) di ogni singolo pixel otteniamo:

SAD(x, y) = Tcol X i=0 Trow X j=0 |IS(xs+ i, ys+ j) − IT(i, j)| (3.1)

dove Trow × Tcol `e la dimensione del template. Otteniamo in questo modo una matrice di dimensione pari all’immagine dal quale `e possibile determinare il punto di maggiore affinit`a con il modello, il quale corrisponde alla presunta posizione del prodotto nell’immagine.

Si noti che il template matching `e in grado di determinare solo la traslazione a cui `e soggetto il modello. Per includere trasformazioni pi`u complesse `e necessario

agire sul template in modo da includere l’effetto di queste trasformazioni. Ad esempio, volendo individuare la similitudine nello spazio 2D, `e necessario con-siderare diversi template per tutte le possibili combinazioni di rotazioni e scala del modello. Per ogni template viene quindi valutata la risposta separatamente. I risultati possono essere successivamente raggruppati in una matrice a quattro dimensione, dove ogni dimensione rappresenta un parametro della trasformazio-ne. Per trovare il candidato migliore `e infine necessario eseguire un processo di clustering.

Grazie alla sua semplicit`a, il template matching offre diversi vantaggi imple-mentativi. Da un lato `e semplice definire una procedura efficiente per il suo calcolo, da eseguire eventualmente su hardware dedicato. Dall’altro, `e possibile definire dei criteri di terminazione dell’algoritmo che rendono il tempo di elabo-razione nel caso medio molto ridotto. Ad esempio `e possibile scartare un ipotesi di posizione quando la somma parziale dopo la valutazione di n punti `e inferiore ad una soglia determinata. Inoltre, l’intero algoritmo pu`o terminare nel momen-to in cui si ottiene un valore maggiore di un determinamomen-to limite impostamomen-to per il quale il riconoscimento `e ritenuto concluso con successo. Un altro modo per ridurre il tempo di elaborazione `e quello di eseguire l’algoritmo su una piramide di immagini, dove ogni immagine viene dimezzata in dimensioni rispetto al livello precedente (si veda figura 3.1). Si parte quindi dal livello superiore e, per ogni ipotesi individuata, si effettua una ricerca limitata ad un intorno del valore tro-vato nell’immagine precedente, fino ad arrivare al livello inferiore della piramide contenente l’immagine originale.

La misura di similarit`a data dalla somma dei valori assoluti delle differenze eseguita su immagini binarizzate, nonostante la sua semplicit`a, presenta svan-taggi sia per quanto riguarda la tolleranza al rumore presente nell’immagine che riguardo alle variazioni delle condizioni di illuminazione della scena. In [60] `e stato introdotto un metodo di ricerca basato sul template matching che consente di su-perare queste limitazioni. L’algoritmo base viene esteso su due fronti distinti: in primo luogo viene considerata l’immagine in scala di grigi data dall’applicazione di un algoritmo di edge detection senza sogliatura (come ad esempio l’operatore di Sobel oppure il metodo di Canny interrotto prima della non-maximum sup-pression). Questo consente di incrementare il valore della similitudine anche in caso che il template non sia precisamente sovrapposto con il prodotto presente

nell’immagine. In secondo luogo viene introdotta una nuova misura per la valu-tazione della similitudine tra il template e l’immagine, la quale `e stata studiata per essere robusta alle variazioni di luminosit`a ambientale.

Per vedere i dettagli del metodo, `e necessario riformulare il problema del template matching. Il modello, invece di essere riportato nell’immagine, viene dato da un insieme di punti pi = (xi, yi)T ai quali sono associati i rispettivi vettori di direzione di = (ti, ui), i = 1, ..., n. L’immagine in ingresso viene quindi elaborata per determinare quale sia la direzione del gradiente in ogni suo punto, ex,y = (vx,y, wx,y). Al fine di valutare la similarit`a tra l’immagine e il modello posizionato nel punto q = (x, y)T, viene calcolata la somma su tutti i punti del modello del prodotto vettoriale tra la direzione del gradiente nel modello e la direzione del gradiente nell’immagine:

s = 1 n n X i=0 hdi, eq+pii (3.2)

Se una parte del modello `e mancante in quanto occlusa, non vi sono bordi nella corrispondente posizione dell’immagine, quindi i vettori di direzione avranno una lunghezza limitata influendo poco nella somma. Allo stesso modo, se ci sono punti di bordi rilevati erroneamente nell’immagine, `e probabile che non vi sia il rispettivo punto del modello in quella posizione. La misura appena introdotta non `e per`o realmente invariante ai cambiamenti di luminosit`a, in quanto la lunghezza dei vettori del gradiente sar`a maggiore dove la variazione di luminosit`a `e pi`u accentuata. La soluzione `e quella di normalizzare i vettori in modo che abbiamo lunghezza unitaria, ottenendo:

s = 1 n n X i=0 hdi, eq+pii kdikkeq+pik (3.3)

Questa misura `e inoltre pi`u tollerante al rumore nell’immagine, in quanto que-st’ultimo introdurr`a dei risultati che, mediamente, verranno eliminati tra loro. L’equazione 3.3 restituisce un valore pi`u elevato quando le direzioni dei vettori nel modello e nell’immagine coincidono. In alcune applicazioni `e importante otte-nere un alto valore di similarit`a anche se il contrasto `e invertito. Questo pu`o essere ottenuto applicando il valore assoluto di s. In altre circostanze non si dispone di informazioni sul contrasto per il modello. Questo `e particolarmente importante nei casi in cui il modello sia stato costruito utilizzando una descrizione analitica,

come quella fornita da un disegno CAD. Avendo solo queste informazioni, non `

e possibile determinare il verso del gradiente. Possiamo quindi ignorare il verso applicando il valore assoluto ad ogni elemento della sommatoria:

s = 1 n n X i=0 hdi, eq+pii kdikkeq+pik (3.4)

Si noti che, a causa della normalizzazione dei vettori del gradiente, anche i vet-tori di piccola entit`a, dovuti ad esempio a rumore, influiscono nella sommatoria. Al fine di migliorare la qualit`a della rilevazione in presenza di rumore all’inter-no dell’immagine, `e importante effettuare una sogliatura dei vettori di direzione rilevati.