Parte II — Feature hand-crafted · Capitolo 4

Feature di colore e di tessitura

~45 min di lettura5 widget interattivi4 tavole

In questo capitolo

  1. Feature invarianti: il dilemma progettuale
  2. Hand-crafted features e representation learning
  3. Color histograms
  4. Metriche di similarità tra istogrammi
  5. Color moments
  6. Tessiture: che cosa sono e come si misurano
  7. Matrici di co-occorrenza dei livelli di grigio
  8. Banchi di filtri e filtri di Gabor
  9. Local Binary Pattern e BSIF
  10. Haar-like features e immagine integrale
  11. Verifica le tue conoscenze

1. Feature invarianti: il dilemma progettuale

Con il termine feature invarianti si denotano caratteristiche estratte dai pattern che siano costanti (il più possibile) rispetto alle possibili variazioni intra-classe. Due semplici feature invarianti rispetto a trasformazioni affini sono l'area e il perimetro di un oggetto.

Uno dei maggiori dilemmi nelle applicazioni di PR è se l'invarianza dei pattern debba essere gestita a livello di feature (attraverso la scelta e l'estrazione di feature invarianti) oppure a livello di classificazione (attraverso la scelta e il progetto di metodi in grado di sopportare feature non invarianti).

Feature invarianti        →   Classificazione triviale
Feature non invarianti    →   Classificazione più complessa

Nessuno dei due metodi è preferibile in assoluto, e molto spesso gli approcci scelti sono ibridi: gestiscono l'invarianza a livello di feature solo per alcuni tipi di variabilità. Due considerazioni guidano la scelta:

Idea chiave

Questo dilemma attraversa tutto il corso. SIFT (capitolo 6) è l'esempio più puro di invarianza nella feature: il descrittore è costruito per essere invariante a scala, rotazione e illuminazione, così che il matching sia una banale distanza euclidea. Le CNN (capitolo 9) stanno all'estremo opposto: le feature grezze non sono invarianti e l'invarianza emerge dall'architettura (pesi condivisi, pooling) e dai dati (data augmentation).

Le applicazioni tipiche delle feature invarianti mostrate a lezione sono tre: ricerche di similarità, classificazione e localizzazione.

2. Hand-crafted features e representation learning

ApproccioDefinizione
Hand-crafted features Rappresentazione numerica ottenuta attraverso processi di feature extraction definiti dal progettista, allo scopo di codificare al meglio le caratteristiche salienti delle immagini: colore, forma, tessitura.
Representation learning Apprendimento automatico di feature salienti attraverso tecniche di deep learning. Le reti ricevono in input pattern "grezzi" (es. immagini) e in modo autonomo apprendono la rilevanza delle feature a diversi livelli di astrazione.

Le tecniche basate su deep learning cercano di apprendere rappresentazioni gerarchiche significative automaticamente, attraverso un processo di apprendimento costituito da più livelli: low-level features → mid-level features → high-level features → classificatore → output. Ogni livello opera una sorta di trasformazione non lineare di feature, i cui parametri possono essere appresi automaticamente. Il riferimento classico per la visualizzazione di queste feature è il lavoro di Zeiler e Fergus (2013) su una rete convoluzionale addestrata su ImageNet.

La gerarchia ha un'interpretazione semantica sorprendentemente uniforme tra domini diversi:

riconoscimento di immagini:  pixel → edge → texton → motif → part → object
riconoscimento di testi:     character → word → word group → clause → sentence → story

Quale approccio scegliere?

Non esiste una tecnica universalmente migliore dell'altra; applicazioni diverse richiedono tecniche diverse.

Hand-craftedDeep learning
  • Possono essere applicate anche in domini in cui sono disponibili quantità di dati limitate.
  • Sono più facilmente interpretabili.
  • Non è sempre facile esplicitare il contenuto informativo di un'immagine attraverso feature di basso livello specifiche per il problema.
  • Hanno un carattere più generale, adattandosi talvolta a problemi differenti.
  • L'addestramento richiede tipicamente grandi quantità di dati (spesso è possibile usare reti pre-addestrate).
  • Difficilmente interpretabili: serve raggiungere una maggiore comprensione dei processi che guidano l'apprendimento.

I capitoli 4-8 percorrono la prima colonna, i capitoli 9-12 la seconda.

3. Color histograms

Un color histogram è una rappresentazione della distribuzione dei colori in un'immagine. Nel caso di immagini digitali l'istogramma si ottiene:

  1. quantizzando ciascun canale dello spazio colore in un numero prefissato di bin;
  2. contando quanti sono i pixel dell'immagine che presentano un determinato colore.

Se indichiamo con b_i il numero di bin in cui è stato discretizzato il canale i dello spazio colore (RGB o altro), il numero totale di bin dell'istogramma 3D è il prodotto:

N = Π b_i        (istogramma 3D, congiunto)
    i

La scelta del numero di bin deve essere valutata attentamente, perché influenza notevolmente le prestazioni sia in termini di efficacia (ciascun bin dovrebbe contenere colori effettivamente simili) sia in termini di efficienza (aumentando il numero di bin aumenta la complessità computazionale).

Istogramma 3D o tre istogrammi 1D?

Istogramma 3D congiuntoTre istogrammi 1D separati
Numero di bin elevato: N = Π b_i. Rappresentazione più ricca: conserva la correlazione tra i canali, quindi distingue "rosso e blu in parti diverse dell'immagine" da "viola ovunque". Numero di bin ridotto: N = Σ b_i. Rappresentazione più sintetica: perde la correlazione tra canali, ma è molto più compatta ed economica.

Con 16 bin per canale, per esempio, la differenza è tra 16³ = 4096 bin e 16·3 = 48 bin: due ordini di grandezza.

immagine quantizza istogramma (bin di colore) l'istogramma non sa DOVE sono i colori: è invariante a permutazioni dei pixel
Tavola 4.1 — Dall'immagine all'istogramma: ogni pixel vota in un bin di colore. La forza del descrittore è l'invarianza a rotazioni, traslazioni e deformazioni; il suo limite è che due immagini completamente diverse con gli stessi colori hanno lo stesso istogramma.
Attenzione — "Color histograms?"

Una slide del corso è composta da un solo punto interrogativo, e la domanda implicita è questa: l'istogramma colore butta via completamente l'informazione spaziale. Due immagini che nulla hanno a che vedere possono avere lo stesso istogramma. È il motivo per cui, nella sezione 5, si introducono i color moments locali, e nel capitolo 7 i BoW con suddivisione in sottoregioni.

4. Metriche di similarità tra istogrammi

Ai fini del confronto tra immagini sulla base degli istogrammi colore è necessario definire una metrica che ne esprima la similarità (o dissimilarità). Le due più usate viste a lezione:

Correlazione (similarità)

              Σ_I ( H₁(I) − H̄₁ ) · ( H₂(I) − H̄₂ )
d(H₁, H₂) = ───────────────────────────────────────────
            sqrt( Σ_I (H₁(I) − H̄₁)² · Σ_I (H₂(I) − H̄₂)² )

dove   H̄_k = (1/N) · Σ_J H_k(J)

È il coefficiente di correlazione tra i due vettori-istogramma: vale 1 per istogrammi identici e decresce al divergere delle distribuzioni.

Intersezione (similarità)

d(H₁, H₂) = Σ_I  min( H₁(I), H₂(I) )

Somma, bin per bin, il minimo tra i due conteggi: misura letteralmente "quanti pixel i due istogrammi hanno in comune". Con istogrammi normalizzati vale 1 per istogrammi identici e 0 per istogrammi con supporti disgiunti.

Confronto di istogrammi: correlazione e intersezione

Sposta e allarga il secondo istogramma rispetto al primo e osserva come rispondono le due metriche. Nota che l'intersezione crolla appena i supporti si separano, mentre la correlazione resta sensibile alla forma delle distribuzioni.

5. Color moments

I color moments sono descrittori del colore molto utilizzati per la loro semplicità ed efficacia. Si basano sull'assunzione che la distribuzione dei colori in un'immagine possa essere interpretata come una distribuzione di probabilità, caratterizzata da un certo numero di momenti che possono essere sfruttati per descrivere l'immagine stessa.

Data un'immagine I di N pixel, definiamo p_ij il canale i del pixel j. I tre momenti più utilizzati sono:

              N
Media:   E_i = Σ (1/N) · p_ij                     colore medio nell'immagine
             j=1

                        N
Dev. std: σ_i = sqrt( (1/N) · Σ (p_ij − E_i)² )   radice della varianza
                       j=1

                          N
Skewness: s_i = cbrt( (1/N) · Σ (p_ij − E_i)³ )   asimmetria della distribuzione
                         j=1

Il descrittore dell'immagine è costituito dai momenti calcolati per i diversi canali (RGB o altro spazio): con 3 canali e 3 momenti si ottiene un vettore di soli 9 valori — molto più compatto di un istogramma. Per il confronto tra descrittori solitamente si usa la distanza euclidea, eventualmente pesata.

Momenti globali e locali

I color moments, se calcolati sull'intera immagine, non mantengono informazioni di tipo spaziale — esattamente come gli istogrammi. Per arricchire il descrittore con informazioni locali è possibile dividere l'immagine in regioni e calcolare per ciascuna i relativi color moments. Due varianti:

La stessa strategia può essere usata con altri descrittori globali: è un pattern di progetto ricorrente, non una tecnica specifica dei momenti.

A che cosa servono: i sistemi CBIR

L'applicazione tipica sono i Content Based Image Retrieval Systems (CBIR): sistemi che consentono di reperire immagini sulla base del loro contenuto, senza utilizzare informazioni (keyword, metadati) associate all'immagine stessa. Sfruttano spesso il paradigma query by example e possono implementare meccanismi di relevance feedback per il miglioramento progressivo del risultato sulla base dell'interazione con l'utente.

L'architettura è semplice: il database di immagini passa per l'image feature extraction e popola il feature space; la query image viene proiettata nello stesso spazio; una distance measure produce le retrieved images. Il capitolo 5 riprende i CBIR in dettaglio.

6. Tessiture: che cosa sono e come si misurano

In diverse applicazioni di PR (per esempio nel telerilevamento) i pattern presentano superfici non omogenee caratterizzate da trame più o meno regolari, dette texture, che possono essere sfruttate per la loro classificazione o riconoscimento.

Le texture sono generalmente caratterizzate da primitive che si ripetono secondo alcune regole che ne descrivono la trama. Dal punto di vista percettivo si distinguono tre aspetti:

Per la discriminazione di texture sono stati introdotti diversi metodi: matrici di co-occorrenza, gray-level difference, autocorrelazione, morfologia, frattali, banchi di filtri. Le sezioni seguenti approfondiscono i tre trattati a lezione: co-occorrenza, filtri di Gabor e Local Binary Pattern.

7. Matrici di co-occorrenza dei livelli di grigio

Le matrici di co-occorrenza sono istogrammi bidimensionali che descrivono le co-occorrenze di coppie di livelli di grigio secondo specificate direzioni.

Una matrice M_dx,dy è generata da una distanza e una direzione, specificate sotto forma di un vettore spostamento [dx, dy]. L'elemento M_dx,dy[i, j] rappresenta la probabilità che il pixel [x,y] abbia intensità i e il pixel [x+dx, y+dy] abbia intensità j.

Vengono generalmente calcolate le 4 matrici fondamentali: M₋₁,₀, M₋₁,₋₁, M₀,₋₁, M₊₁,₋₁, corrispondenti alle quattro direzioni a 0°, 45°, 90° e 135°.

Esempio svolto a mano

Immagine 6×6 a 2 livelli di grigio, vettore spostamento d = (−1, −1):

0  1  0  0  1  0
1  1  0  1  1  0
0  1  0  0  1  0            d = (−1, −1)
1  1  0  1  1  0
0  1  0  0  1  0
1  1  0  1  1  0

Con questo spostamento le coppie valide sono quelle con x ≥ 1 e y ≥ 1, cioè 5 × 5 = 25 coppie. Contandole una per una si ottiene:

                    j=0   j=1
              i=0 ⎡  2    10 ⎤
    M₋₁,₋₁ =      ⎢          ⎥ × 1/25
              i=1 ⎣  9     4 ⎦

Verifica: 2 + 10 + 9 + 4 = 25. La lettura è istruttiva: gli elementi fuori diagonale (10 e 9) dominano, cioè lungo la diagonale a 45° i livelli tendono a cambiare. È esattamente ciò che ci si aspetta da una texture a righe verticali osservata in diagonale.

Calcolo di una matrice di co-occorrenza

Clicca le celle per modificare l'immagine binaria e cambia il vettore spostamento. Con l'immagine di default e d = (−1,−1) ritrovi esattamente la matrice delle slide.

immagine (clicca)
matrice di co-occorrenza
(x, y) M₋₁,₀ M₋₁,₋₁ M₀,₋₁ M₊₁,₋₁ le 4 matrici fondamentali (0°, 45°, 90°, 135°)
Tavola 4.2 — A sinistra la texture di prova; a destra i quattro vettori di spostamento fondamentali. Ogni direzione produce una matrice diversa: una texture direzionale si riconosce proprio dalla differenza tra le quattro matrici.

Le misure riassuntive

Dalle 4 matrici — o dalla loro media, la cosiddetta matrice non orientata — possono essere estratte numerose caratteristiche riassuntive. Sono queste, non le matrici, a entrare nel vettore di feature:

MisuraFormulaInterpretazione
Energia Σ_{i,j} M(i,j)² Raggiunge valori alti quando la distribuzione dei livelli di grigio dell'immagine è uniforme o periodica.
Contrasto Σ_{i,j} (i − j)² · M(i,j) Misura l'entità delle variazioni locali di luminosità: pesa le co-occorrenze in base a quanto i due livelli differiscono.
Entropia − Σ_{i,j} M(i,j) · log M(i,j) Ha valori elevati in immagini con texture non uniforme (la matrice ha molti valori bassi). Misura il grado di disordine.
Omogeneità Σ_{i,j} M(i,j) / (1 + |i − j|) Attribuisce peso massimo (1) agli elementi della diagonale e peso decrescente agli elementi extra-diagonali.

8. Banchi di filtri e filtri di Gabor

L'approccio a banchi di filtri consiste nell'eseguire la convoluzione dell'immagine con una serie di filtri (il banco) e nell'estrarre dalle immagini ottenute alcuni indicatori di sintesi (media, varianza, momenti, ...).

Un insieme di filtri molto utilizzati sono i filtri di Gabor (Daugman, 1988), per i quali sono state trovate forti analogie con alcuni meccanismi del sistema visivo umano. Ogni filtro è costituito da una funzione sinusoidale attenuata progressivamente da una gaussiana. Il filtro, costituito da una parte reale e una immaginaria, è regolato da 3 parametri:

Il filtro di Gabor simmetrico bidimensionale ha la forma:

g(x, y : θ, f) = exp( −(1/2) · [ x_θ²/σ_x² + y_θ²/σ_y² ] ) · cos( 2π f x_θ )

dove θ è l'orientazione del filtro, f la frequenza della sinusoide, σ_x e σ_y le deviazioni standard della gaussiana sugli assi x e y, e [x_θ, y_θ] le coordinate di [x, y] dopo una rotazione in senso orario degli assi cartesiani di un angolo pari a (90° − θ):

⎡ x_θ ⎤   ⎡  cos(90° − θ)   sin(90° − θ) ⎤ ⎡ x ⎤
⎢     ⎥ = ⎢                               ⎥ ⎢   ⎥
⎣ y_θ ⎦   ⎣ −sin(90° − θ)   cos(90° − θ) ⎦ ⎣ y ⎦

Il banco

Per la generazione del banco di filtri, una volta definiti i range di interesse, si esegue una discretizzazione (in uno dei tanti modi possibili) dei 3 parametri fondamentali. L'esempio mostrato a lezione copre il dominio delle frequenze con 6 orientazioni e 4 scale, per un totale di 24 filtri.

Dove applicare la convoluzione

Una questione pratica decisiva: su quali punti si calcola la risposta? Le tre strategie viste a lezione:

StrategiaCaratteristiche
Su tutti i pixel dell'immagineMassima informazione, ma il vettore di feature risultante ha dimensione molto (troppo) elevata.
Sui nodi di una griglia uniforme sovrapposta all'immagineCompromesso standard: campionamento regolare e dimensione controllata.
In corrispondenza dei punti salienti (es. del volto)Si calcola una saliency image e la relativa saliency map, e si applicano i filtri solo dove l'informazione è più densa.

In tutti i casi, il feature vector finale si ottiene concatenando la risposta (modulo o parte reale) ai diversi filtri nei punti di applicazione della convoluzione.

Nota del redattore

Vale la pena notare l'analogia strutturale: un banco di Gabor è una collezione di filtri a diverse orientazioni e scale, le cui risposte vengono concatenate in un vettore. Il primo layer convoluzionale di una CNN è esattamente la stessa cosa — con la differenza che i filtri sono appresi. Non a caso, visualizzando i filtri del primo layer di AlexNet si ottengono strutture molto simili ai filtri di Gabor.

9. Local Binary Pattern e BSIF

Il Local Binary Pattern (LBP) è un operatore introdotto da Ojala per l'analisi della tessitura delle immagini. L'operatore assegna ai pixel di un'immagine, in un intorno di dimensione 3×3, un valore binario (0 o 1): il valore è assegnato confrontando il valore del pixel con quello del pixel centrale dell'intorno. Se il pixel ha un valore superiore o uguale a quello del pixel centrale gli è assegnato il valore 1, 0 in caso contrario. Concatenando gli 8 bit si ottiene una stringa come 11101001.

soglia intorno 3×3 confronto col centro → 11101001 P=8, R=1.0 P=12, R=2.5 P=16, R=4.0 intorni circolari: punti per interpolazione
Tavola 4.3 — LBP: ogni vicino diventa un bit confrontandolo con il pixel centrale; la concatenazione dei bit è il codice della texture locale. A destra le estensioni a intorni circolari con P punti campione e raggio R.

L'estensione a intorni circolari

L'operatore LBP di base è stato esteso per gestire intorni di dimensione variabile. In questo caso si usa il concetto di intorno circolare di un pixel e i punti campione sono individuati tramite interpolazione. L'operatore è definito da due parametri:

Le configurazioni tipiche mostrate a lezione: P=8, R=1.0; P=12, R=2.5; P=16, R=4.0.

Pattern uniformi

I pattern binari più interessanti sono quelli uniformi, in quanto rappresentano le strutture locali più rilevanti (edge, spot, ecc.). Un pattern è detto uniforme quando, considerato in modo circolare, contiene al massimo due transizioni 0-1 o 1-0. Per esempio i pattern 10000011, 11110000, 00000000 sono uniformi.

Considerare solo i pattern uniformi permette di risparmiare memoria: i pattern totali sono 2^P, mentre gli uniformi sono solo P·(P−1) + 2. Con P = 8: 256 pattern totali contro 58 uniformi.

Calcolatore LBP

Modifica i valori dell'intorno 3×3 (il centro è la soglia) e osserva codice binario, valore decimale e verifica di uniformità. Prova 10000011 (uniforme, 2 transizioni) e 10101010 (non uniforme, 8 transizioni).

intorno 3×3
bit

Il feature vector LBP

Il vettore di feature associato a un'immagine è un istogramma (eventualmente normalizzato) calcolato come segue:

  1. l'immagine è partizionata in sottofinestre;
  2. per ogni sottofinestra è costruito un istogramma in cui ciascun bin è associato a uno specifico pattern; i bin sono in totale P·(P−1) + 3: P·(P−1) bin per i pattern con 2 transizioni, 2 bin per i pattern con 0 transizioni (tutti zeri e tutti uni), 1 bin per tutti i pattern non uniformi messi insieme;
  3. il vettore di feature si ottiene concatenando gli istogrammi calcolati per tutte le sottofinestre.

È di nuovo la strategia "globale + griglia" già vista per i color moments: l'istogramma per sottofinestra reintroduce l'informazione spaziale che il singolo istogramma perderebbe.

BSIF: quando i filtri si imparano

Il metodo Binarized Statistical Image Features (BSIF) è stato proposto per l'analisi di tessiture ed è utilizzato per varie applicazioni nell'ambito del riconoscimento del volto (per esempio la presentation attack detection). Analogamente a LBP, rappresenta un'immagine come un istogramma di occorrenze di pattern binari, dove ciascun pattern binario codifica il contenuto visivo di una patch dell'immagine.

La differenza sostanziale è che i singoli pattern binari sono calcolati binarizzando la risposta a un insieme di filtri lineari, e i filtri utilizzati non sono pre-definiti ma appresi attraverso un opportuno addestramento (tipicamente a partire da immagini naturali). I filtri sono stimati in fase di training con l'obiettivo di massimizzare l'indipendenza statistica delle stringhe binarie risultanti dalla loro applicazione, tramite ICA.

Per ciascuna patch X (l × l) e per ciascun filtro W_i:

s_i = Σ_{u,v} W_i(u,v) · X(u,v)             risposta al filtro i

       ⎧ 1   se s_i > 0
b_i =  ⎨                                    binarizzazione
       ⎩ 0   altrimenti

b = concatenazione dei b_i                  stringa binaria della patch

L'intera immagine è rappresentata dall'istogramma delle occorrenze delle possibili stringhe binarie b.

Idea chiave

BSIF è il ponte concettuale tra le due metà del corso: la struttura è quella hand-crafted (patch, risposta a filtri, binarizzazione, istogramma), ma i filtri sono appresi dai dati. Un passo ancora e si arriva alle CNN, dove sono apprese anche la combinazione dei filtri e la classificazione finale.

10. Haar-like features e immagine integrale

La texture che caratterizza un'immagine può essere codificata applicando all'immagine stessa delle maschere binarie che evidenziano particolari variazioni di intensità luminosa: sono le Haar-like features. Ogni valore del vettore di feature è ottenuto posizionando una maschera in una sottoregione dell'immagine; le feature sono applicate modificandone dimensione, forma e posizione.

Il numero che ne risulta è impressionante: usando una sottofinestra di dimensione 24×24, con tutte le possibili combinazioni di posizione (orizzontale e verticale) e scala, si ottengono in totale 49396 feature.

Queste feature sono utilizzate per due ragioni: sono efficaci per molte applicazioni (in particolare la localizzazione del volto) e possono essere calcolate in modo efficiente usando l'immagine integrale.

L'immagine integrale

L'immagine integrale in posizione (r,c) è la somma del valore dei pixel sopra e a sinistra di (r,c):

II(r, c) = Σ  I(r', c')        con  r' ≤ r,  c' ≤ c

Può essere calcolata con una sola scansione dell'immagine originale usando le seguenti formule ricorsive:

S(r, c)  = S(r, c−1) + I(r, c)          somma cumulativa per righe
II(r, c) = II(r−1, c) + S(r, c)

con  S(r, −1) = 0  e  II(−1, c) = 0

Usando l'immagine integrale è possibile calcolare la somma del valore dei pixel in qualsiasi rettangolo con quattro soli accessi. Con riferimento allo schema classico a quattro punti, la somma all'interno del rettangolo D è data da:

somma(D) = II(4) + II(1) − II(2) − II(3)

Le feature caratterizzate da 2, 3 o 4 rettangoli possono essere calcolate usando rispettivamente 6, 8 e 9 valori di riferimento. Il costo di ogni feature è dunque costante, indipendente dalle dimensioni del rettangolo: è ciò che rende praticabile la valutazione di decine di migliaia di feature in tempo reale.

12 34 D somma(D) = II(4) + II(1) − II(2) − II(3) immagine integrale maschere di Haar A B C D
Tavola 4.4 — L'immagine integrale rende costante il costo di una somma rettangolare: bastano 4 accessi qualunque sia l'area. Le maschere di Haar (A: bordo verticale, B: bordo orizzontale, C: linea, D: diagonale) misurano differenze tra somme rettangolari.

Immagine integrale e somme rettangolari

A sinistra i valori dei pixel, a destra l'immagine integrale calcolata con le formule ricorsive. Clicca due celle nella griglia di sinistra per definire gli angoli di un rettangolo: verrà calcolata la somma per forza bruta e con i 4 riferimenti.

I — immagine
II — immagine integrale
Clicca due celle per definire un rettangolo.

Un'applicazione: il localizzatore di Viola e Jones

Il localizzatore di Viola e Jones combina tre ingredienti:

  1. Estrazione e valutazione di Haar-like feature (efficiente grazie all'immagine integrale).
  2. Classificazione mediante boosting: costruzione di un classificatore robusto come combinazione di molteplici classificatori semplici.
  3. Multiscale detection.

Lo schema di funzionamento è x → features → classify → F(x) → y, con y = +1 (face) o y = −1 (non face). La localizzazione è effettuata facendo scorrere una finestra di ricerca (le cui dimensioni possono variare) sull'immagine, estraendo le feature presenti nella finestra e classificando la finestra come volto o non volto. Il capitolo 7 riprende Viola-Jones nel contesto più generale del template matching e della localizzazione.

Verifica le tue conoscenze

Che cosa sono le feature invarianti e qual è il dilemma progettuale associato?

Sono caratteristiche estratte dai pattern che siano costanti (il più possibile) rispetto alle variazioni intra-classe (esempi affini: area e perimetro). Il dilemma è se gestire l'invarianza a livello di feature (classificazione poi triviale, molto più veloce, adatta a molte classi) o a livello di classificazione (feature non invarianti + classificatore robusto: spesso più accurato e affidabile). Nessuno dei due è preferibile in assoluto; gli approcci reali sono spesso ibridi.

Confrontate hand-crafted features e representation learning.

Hand-crafted: la rappresentazione numerica è ottenuta con processi definiti dal progettista per codificare colore, forma e tessitura; applicabili con pochi dati, più interpretabili, ma non è sempre facile esplicitare il contenuto informativo con feature di basso livello. Representation learning: le feature salienti sono apprese automaticamente da pattern grezzi, a livelli di astrazione crescenti; più generale e trasferibile, ma richiede grandi quantità di dati ed è difficilmente interpretabile.

Come si costruisce un color histogram e come si sceglie il numero di bin?

Si quantizza ciascun canale dello spazio colore in un numero prefissato di bin e si contano i pixel che presentano un determinato colore. Con b_i bin per canale, l'istogramma 3D ha N = Π b_i bin. La scelta va valutata attentamente: pochi bin riducono l'efficacia (bin che mescolano colori diversi), molti bin aumentano la complessità computazionale.

Istogramma 3D o tre istogrammi 1D?

L'istogramma 3D ha N = Π b_i bin: rappresentazione più ricca perché conserva la correlazione tra canali. I tre 1D hanno N = Σ b_i bin: rappresentazione più sintetica ma che perde la correlazione. Con 16 bin/canale: 4096 contro 48 valori.

Scrivete le due metriche di similarità tra istogrammi viste a lezione.

Correlazione: d(H₁,H₂) = Σ_I (H₁(I)−H̄₁)(H₂(I)−H̄₂) / sqrt(Σ_I (H₁(I)−H̄₁)² · (H₂(I)−H̄₂)²), con H̄_k = (1/N)Σ_J H_k(J). Intersezione: d(H₁,H₂) = Σ_I min(H₁(I), H₂(I)). Entrambe sono misure di similarità: crescono al crescere della somiglianza.

Definite i tre color moments e dite quanto è lungo il descrittore.

Media E_i = (1/N)Σ_j p_ij (colore medio), deviazione standard σ_i = sqrt((1/N)Σ_j (p_ij − E_i)²), skewness s_i = cbrt((1/N)Σ_j (p_ij − E_i)³) (asimmetria). Calcolati sui 3 canali danno un descrittore di 9 valori, confrontato tipicamente con distanza euclidea, eventualmente pesata.

Perché si calcolano color moments locali e che cosa sono le fuzzy regions?

Perché i momenti globali non mantengono informazioni spaziali. Si divide allora l'immagine in regioni e si calcolano i momenti per ciascuna. Il partizionamento può essere in regioni disgiunte (una griglia) oppure in fuzzy regions, cioè regioni parzialmente sovrapposte, più robuste ai piccoli spostamenti dell'oggetto. La stessa strategia si applica a qualunque descrittore globale.

Che cos'è una matrice di co-occorrenza e quali sono le 4 matrici fondamentali?

È un istogramma bidimensionale che descrive le co-occorrenze di coppie di livelli di grigio secondo direzioni specificate. L'elemento M_dx,dy[i,j] è la probabilità che il pixel [x,y] abbia intensità i e il pixel [x+dx, y+dy] abbia intensità j. Le 4 fondamentali sono M₋₁,₀, M₋₁,₋₁, M₀,₋₁, M₊₁,₋₁.

Elencate le quattro misure estraibili dalle matrici di co-occorrenza.

Energia Σ M(i,j)²: alta con distribuzione uniforme o periodica. Contrasto Σ (i−j)² M(i,j): entità delle variazioni locali di luminosità. Entropia −Σ M(i,j) log M(i,j): alta con texture non uniforme, misura il disordine. Omogeneità Σ M(i,j)/(1+|i−j|): peso massimo agli elementi diagonali e decrescente agli extra-diagonali. Si calcolano dalle 4 matrici o dalla loro media (matrice non orientata).

Da quali parametri è regolato un filtro di Gabor e come si costruisce il banco?

Ogni filtro è una sinusoide modulata da una gaussiana, regolata da tre parametri: la frequenza della sinusoide, la sua orientazione θ rispetto al piano x,y e l'ampiezza σ della gaussiana. Il banco si genera discretizzando i tre parametri sui range di interesse; l'esempio a lezione copre il dominio delle frequenze con 6 orientazioni e 4 scale. Il feature vector si ottiene concatenando le risposte (modulo o parte reale) nei punti di applicazione.

Come si calcola un codice LBP e quando un pattern è uniforme?

Si confronta ogni pixel dell'intorno 3×3 con il pixel centrale: 1 se il valore è superiore o uguale, 0 altrimenti; concatenando i bit si ottiene il codice (es. 11101001). Un pattern è uniforme se, considerato circolarmente, contiene al massimo due transizioni 0-1 o 1-0 (es. 10000011, 11110000, 00000000). I pattern totali sono 2^P, gli uniformi P·(P−1)+2.

Come è fatto il feature vector LBP di un'immagine?

L'immagine è partizionata in sottofinestre; per ognuna si costruisce un istogramma con P·(P−1)+3 bin: P·(P−1) per i pattern a 2 transizioni, 2 per quelli a 0 transizioni, 1 per tutti i non uniformi insieme. Il vettore finale è la concatenazione degli istogrammi di tutte le sottofinestre.

In che cosa BSIF differisce da LBP?

Entrambi rappresentano l'immagine come istogramma di occorrenze di pattern binari calcolati su patch. In BSIF però i bit derivano dalla binarizzazione della risposta a filtri lineari (b_i = 1 se s_i > 0, con s_i = Σ W_i(u,v)·X(u,v)) e soprattutto i filtri non sono predefiniti ma appresi in fase di training (tipicamente da immagini naturali) massimizzando l'indipendenza statistica delle stringhe binarie tramite ICA.

Definite l'immagine integrale e le sue formule ricorsive.

II(r,c) = Σ I(r',c') con r' ≤ r, c' ≤ c: la somma dei pixel sopra e a sinistra. Si calcola con una sola scansione: S(r,c) = S(r,c−1) + I(r,c) e II(r,c) = II(r−1,c) + S(r,c), con S(r,−1)=0 e II(−1,c)=0. La somma di un rettangolo è II(4)+II(1)−II(2)−II(3); feature a 2, 3 o 4 rettangoli costano rispettivamente 6, 8 e 9 riferimenti.

Quante Haar-like feature genera una finestra 24×24 e quali sono i tre ingredienti di Viola-Jones?

Con tutte le combinazioni di posizione e scala si ottengono 49396 feature. I tre ingredienti del localizzatore di Viola e Jones sono: estrazione e valutazione di Haar-like feature, classificazione mediante boosting (classificatore robusto come combinazione di molti classificatori semplici) e multiscale detection, con una finestra di ricerca di dimensioni variabili fatta scorrere sull'immagine.