Descrittori

Un altro concetto che ha una collocazione trasversale tra le tematiche di visione artificiale è quello di descrittore (Visual Descriptor). Il descrittore infatti viene usato in diverse tematiche: viene usato per eseguire il confronto tra punti caratteristici o per generare la mappa di disparità nella visione stereoscopia, per fornire una rappresentazione compatta di una porzione dell'immagine per velocizzare la sua individuazione o ricerca, e grazie a questa soluzione compatta che però preserva gran parte dell'informazione, viene usata per generare lo spazio delle caratteristiche negli algoritmi di classificazione.

A seconda della trasformazione che subisce l'immagine da cui si vogliono caratterizzare i punti, il descrittore deve soddisfare alcuni principi di invarianza

traslazione
É quella più facile e viene automaticamente risolta dall'estrattore di punti caratteristici;
scala
É un'altra trasformazione che normalmente viene risolta dall'estrattore di punti caratteristici;
luminosità
Le immagini possono subire una variazione di luminosità;
rotazione
Le immagini possono rappresentare la stessa scena ruotata;
prospettiva
I cambi di prospettiva deformano in maniera complessa la porzione di mondo osservata.

Prima che venisse introdotto il concetto di descrittore compatto, il modo universalmente diffuso per confrontare due punti caratteristici era la correlazione tra le aree intorno al punto:

\begin{displaymath}
d(\mathbf{p}_1,\mathbf{p}_2)=\sum_{\boldsymbol\delta \in \...
...bar {I_1})(I_2(\mathbf{p}_2 + \boldsymbol\delta) - \bar{I_2})
\end{displaymath} (6.1)

con $\Omega$ una finestra di dimensione fissa centrata nel punto delle due immagini e $\bar{I}_n$ il valor medio dell'immagine all'interno della finestra $\Omega$. $w_{\delta}$ è un peso opzionale (ad esempio una gaussiana) per assegnare contributi diversi ai pixel vicini e lontani dal punto. La correlazione è invariante ai cambiamenti di luminosità ma richiede un elevato peso computazionale. In questo caso il descrittore è esattamente la porzione di immagine intorno al punto individuato (Mor80).

Un approccio simile alla correlazione, non invariante alla luminosità ma più performante dal punto di vista computazionale, è la SAD (Sum of Absolute Differences):

\begin{displaymath}
d(\mathbf{p}_1,\mathbf{p}_2)=\sum_{\boldsymbol\delta \in \...
...ldsymbol\delta) - I_2(\mathbf{p}_2 + \boldsymbol\delta) \vert
\end{displaymath} (6.2)

Per rendere la SAD invariante alla luminosità vengono normalmente eseguiti i confronti non sull'immagine originale, ma sulle immagini derivata orizzontale e derivata verticale. Questo ragionamento sembra molto semplice ma può essere ulteriormente generalizzato nel concetto di eseguire il confronto non sull'immagine originale, ma tra una o più immagini estratte attraverso l'ausilio di differenti kernel, kernel che provvedono a fornire al descrittore alcuni livelli di invarianza.

É altresı da notare che il confronto tra i pixel tra le immagini è comunque un algoritmo di tipo $O(n^2)$: eseguire questi confronti per punto richiede comunque un elevato peso computazionale e molteplici accessi in memoria. Soluzioni moderne vogliono superare questo limite prevedendo l'estrazione di un descrittore dall'intorno del punto di dimensione inferiore alla quantità di pixel rappresentati che però massimizzi l'informazione contenuta in essa.

Sia SIFT (sezione 5.3) che SURF (sezione 5.4) estraggono i loro descrittori sfruttando le informazioni sulla scala e sulla rotazione estratti dall'immagine (é possibile estrarre queste informazioni in maniera comunque indipendete e pertanto si possono applicare a qualunque classe di descrittori per renderli invarianti a scala e rotazione). I descrittori ottenuti da SIFT e SURF, sono differenti versioni del medesimo concetto, ovvero dell'istogramma dell'orientazione del gradiente (sezione 6.2), esempio di come comprimere in uno spazio di dimensioni ridotte la variabilità intorno al punto.

Tutti i descrittori usati attualmente non usano direttamente i punti dell'immagine come descrittore, ma è facile vedere che basta un sottoinsieme abbastanza ben distribuito dei punti per realizzare comunque una descrizione accurata del punto. In (RD05) viene creato un descrittore con i 16 pixel presenti lungo la circonferenza discreta di raggio 3. Tale descrizione può essere resa ancora più compatta passando alla forma binaria dei Local Binary Pattern descritti in seguito o non vincolata alla circonferenza, come in Census o in BRIEF. Un altro approccio è campionare in maniera opportuna lo spazio dei kernel (GZS11), estraendo da $m$ coordinate intorno al punto chiave, i valori che assumono convoluzioni dell'immagine originale (Sobel orizzontale e verticale), in modo da creare un descrittore di appena $2m$ valori.

É da notare che, per motivi prettamente computazionali di riutilizzo di risorse, spesso ad ogni particolare estrattore di punti caratteristici viene associato uno specifico estrattore di descrittori.

Da questa introduzione si capisce che descrivere un punto chiave con un insieme di dati inferiore ma allo stesso tempo sufficientemente descrittivo è un discorso che torna utile anche quando si parla di classificazione. Il concetto di descrittore nasce nel tentativo di estrarre informazioni locali dell'immagine che ne permettano di conservare buona parte dell'informazione. In questo modo è possibile eseguire confronti (relativamente) veloci tra punti tra immagini, o usare tali descrittori come caratteristiche su cui addestrare classificatori.



Subsections
Paolo medici
2025-03-12