Local Binary Pattern (LBP)

Figura 6.5: Pixel considerati durante l'estrazione di un descrittore LBP a 8 bit, al variare del raggio della circonferenza.
Image fig_lbp

Nella prima versione di LBP (OPM02), il descrittore risultava indistinguibile alla trasformata di Census su una finestra $3 \times 3$: per ogni punto immagine vengono esaminati gli 8 pixel nel vicinato, sogliati attraverso il pixel centrale e in questo modo viene generata una stringa di 8 bit, equivalente pertanto a un descrittore intero compreso tra 0 e 255.

Questo concetto originale è stato in seguito esteso a $n$ punti lungo una circonferenza di raggio $\rho$ centrata nel pixel di cui si vuole calcolare la caratteristica (figura 6.5). Siccome il punto del raggio normalmente non cade esattamente su un pixel, si può eseguire una interpolazione bilineare per stimare il valore da sogliare per costruire la stringa binaria.

L'operatore LBP produce $2^n$ possibili valori per ogni punto dell'immagine. Nel caso in cui l'immagine venga ruotata, i valori dei pixel si muovono lungo la circonferenza e come conseguenza ruotano anche i bit all'interno della stringa binaria. È possibile ottenere un operatore LBP invariante alla rotazione, normalizzando la stringa attraverso una qualche trasformazione. Una di queste trasformazioni è, per esempio, eseguire $n$ rotazioni sulla stringa binaria e prendere, tra tutte le risultati, quella di valore minimo:

\begin{displaymath}
\text{LBP}_{r.i.} = \min_i \text{ROR}_i ( \text{LBP} ) \quad i \in [0, n-1]
\end{displaymath} (6.4)

Paolo medici
2025-03-12