Impiego di classificatori nell’analisi di immagini

Davide Devescovi

1

La classificazione

Con il termine classificazione si intende una procedura statistica che permette di associare ciascun oggetto (che sia un’immagine, un pattern, un dato numerico. . . ), appartenente a un generico spazio multidimensionale, a una o pi` etichette, corrispondenti alle possibili u classi di cui pu` far parte un oggetto; si parla di classificazione esclusiva quando ciascun o oggetto pu` appartenere a una sola classe, o di classificazione continua o fuzzy se un o oggetto pu` appartenere, con un certo grado di probabilit`, a pi` classi. o a u Per ottenere una classificazione si usano le informazioni riguardanti alcuni tratti salienti (feature, caratteristiche) degli oggetti in esame, e li si confronta, in un apposito spazio multidimensionale, con quelli di un training set: se questo training set ` etichettato, e e quindi le possibili classi sono note e ogni campione nel set ` gi` associato alla classe di e a appartenenza, si parla di apprendimento supervisionato; in caso contrario, cio` quando e le possibili classi vanno direttamente ricavate dai dati stessi, abbiamo a che fare con apprendimento non supervisionato. Una formalizzazione del problema di classificazione pu` essere la seguente: partendo da o una serie di dati di addestramento {(x1 ,y), (x2 ,y), . . . , (xn ,y) } si deve produrre un classificatore h: X → Y che realizzi il mappaggio di nuovi elementi x ∈ X sulle etichette y ∈ Y.

2

Tipologie di classificatori

I metodi di classificazione sono decisamente numerosi, anche a causa del fatto che pi` u classificatori possono essere combinati tra loro (vedi paragrafo 2.6), ma in generale possiamo identificare due tipi principali di approcci: quello statistico e quello sintattico. Il primo approccio cerca in genere di massimizzare la probabilit` a posteriori (cio` la a e probabilit` che un campione appartenga a una data classe, che sar` quindi quella scelta), a a ad esempio a partire dalle stime (ottenute dal trainig set) delle probabilit` a priori delle a classi e delle probabilit` condizionali (qual ` la probabilit` che il prossimo pattern ossera e a vato sia x se la sua classe di appartenenza ` W), come nel caso dei classificatori Bayesiani, e (paragrafo 2.1); oppure minimizzando iterativamente l’errore di predizione, come fanno le reti neurali (paragrafo 2.2). Il secondo approccio, invece, ` molto pi` pragmatico, dato che si concentra sull’analisi di e u caratteristiche distintive degli oggetti o pattern da classificare: trattando queste feature in uno spazio multidimensionale appositamente costruito, la classificazione comporta il confronto tra le caratteristiche strutturali delle feature del campione da testare e di quelle del training set, sia con apprendimento supervisionato (ad esempio l’algoritmo Nearest Neighbor, paragrafo 2.3) che non supervisionato (come nel caso del Clustering, paragrafo 2.4). 1

Segue quindi una lista (tutt’altro che esaustiva) dei pi` comuni tipi di classificatori u utilizzati.

2.1

Classificatori Bayesiani

Come si intuisce dal nome, i classificatori Bayesiani fanno uso del teorema di Bayes per calcolare le probabilit` a posteriori, stimando i dati statistici necessari a partire dal a training set (addestramento supervisionato). Supponiamo di avere un insieme di possibili classi C e una serie di attributi (o feature) A1 , A2 , . . . , Ak usati per discriminare tra le classi, e indichiamo con lettere minuscole (c, a 1 . . . ) particolari valori assunti dalle variabili. La classificazione ottimale sar` allora a quella per cui la probabilit` di una certa classe, data una serie di valori assunti dagli a attributi, ` massima: e max P r(C = c | A1 = a1 ∧ A2 = a2 ∧ . . . ∧ Ak = ak ) Per il teorema di Bayes si ha che questa probabilit` ` uguale a: ae max P r(A1 = a1 ∧ A2 = a2 ∧ . . . ∧ Ak = ak | C = c) P r(C = c) P r(A1 = a1 ∧ A2 = a2 ∧ . . . ∧ Ak = ak )

La probabilit` a priori di avere una data classe c si pu` stimare facilmente dal training set a o (a patto che sia composto in maniera da essere rappresentativo), mentre il denominatore dell’equazione ` irrilevante, dato che ` lo stesso per tutte le classi dell’insieme C in quanto e e da esse indipendente. Si tratta quindi di riuscire a stimare la probabilit` condizionale a numeratore per ciascuno a degli attributi; fatto questo, si otterrebbe un classificatore Bayesiano ottimo, in grado di fornire la classificazione migliore in assoluto. Il problema ` che tale stima ` molto e e complicata a causa delle dipendenze tra attributi, e anche con poche feature rischia di diventare computazionalmente irrealizzabile. Per ovviare al problema si pu` usare un Naive Bayes Classifier che, come dice il nome, o fa un’ipotesi piuttosto naive sulle feature, ovvero che siano completamente indipendenti. Se questo ` il caso, si ha che e P r(A1 = a1 | A2 = a2 ∧ . . . ∧ Ak = ak ∧ C = c) = P r(A1 = a1 | C = c) e quindi che P r(A1 = a1 ∧ A2 = a2 ∧ . . . ∧ Ak = ak | C = c) equivale a P r(A1 = a1 | C = c)P r(A2 = a2 | C = c) . . . P r(Ak = ak | C = c) A questo punto si pu` ricavare tutto il necessario dal training set, ad esempio cos` o ı: P r(Aj = aj | C = c) = count(Aj = aj ∧ C = c) count(C = c)

grazie a cui si hanno a disposizione tutti i dati per calcolare le probabilit` a posteriori a P r(C = c | A1 = a1 . . .) e scegliere quindi la classe che ha probabilit` maggiore. a I classificatori naive sono piuttosto semplici da realizzare e non richiedono un grande carico computazionale; le assunzioni sull’indipendenza delle feature sono il pi` delle volte u irrealistiche, ma ciononostante le prestazioni di questi classificatori sono piuttosto buone se ben addestrati. 2

Per trovare una via di mezzo tra questi due estremi (dipendenza totale tra tutte le feature / indipendenza totale) si pu` usare l’approccio delle Reti Bayesiane, un particolare tipo o di grafi diretti aciclici che consentono di rappresentare relazioni di causalit` tra feature, a riuscendo a tenere in considerazione solo le dipendenze effettive tra attributi alleggerendo notevolmente il calcolo rispetto al caso di classificatore ottimale. Per approfondimenti sulle reti bayesiane e sulle ipotesi di indipendenza e causalit` si pu` a o leggere questo articolo[1] dal taglio divulgativo. Qualche dettaglio in pi` sul Naive Bayesian Learning si trova invece in questo paper[2]. u

2.2

Neural Networks

Una rete neurale ` un insieme di elementi (neue roni) interconnessi tra di loro in modo da ottenere un comportamento globale complesso, che ` dee terminato appunto dalle connessioni (e dai loro pesi) e dai parametri dei neuroni. Il caso pi` semplice di rete neurale ` il percetu e trone (figura 1), di fatto un singolo neurone che riceve una serie di valori in input e, in base a una funzione di attivazione, produce un determinato Figura 1: Un percettrone output; un percettrone viene addestrato modificando iterativamente i pesi degli archi di input, fino ad ottenere l’output desiderato. Come ` facile intuire, per`, il percettrone ha potenzialit` piuttosto limitate, tant’` che non riesce e o a e neppure a rappresentare l’operazione di XOR in quanto non linearmente separabile. Si passa quindi all’utilizzo di topologie di rete pi` complesse, che prevedono uno strato u di neuroni di input, uno strato di output e uno o pi` strati nascosti (figura 2); sono poi u presenti varianti ricorsive, in cui cio` gli output vengono reindirizzati verso lo strato di e input o gli strati nascosti. Ciascun neurone ` caratterizzato e da una funzione di attivazione, che pu` essere scelta in base alle esigeno ze (step, tangente iperbolica, sigmoide. . . ); inoltre ciascun collegamento ha un peso che moltiplica il valore di input di quel collegamento, e proprio sui pesi si concentra la fase di addestramento della rete. Prendiamo il caso pi` semplice, l’addestramento u supervisionato: in questa situazione possiamo stabilire tutti i valori di input della rete e i rispettivi valori di Figura 2: Un esempio di rete neurale output desiderati: ci` che resta da o determinare sono i vari pesi, in modo da minimizzare l’errore tra l’output ottenuto e quello desiderato. L’algoritmo pi` noto per l’addestramento ` quello della backpropagation: u e si parte dall’errore all’uscita della rete, e si calcola di quanto vanno corretti i pesi in uscita dall’ultimo strato di neuroni per avvicinarsi al risultato ideale, usando una stima di massima verosimiglianza (minimizzare l’errore equivale a massimizzare la “probabilit` a dei dati”). Questa correzione pu` essere vista come l’errore dallo strato precedente, che o 3

quindi ripete la procedura e cerca di aggiustare a sua volta i propri pesi per avvicinarsi all’output richiesto: in sostanza l’errore si “propaga” per tutta la rete. Il procedimento viene ripetuto iterativamente, finch´ non viene raggiunto un errore finale ritenuto tole lerabile. A questo proposito ` importante notare che ottenere un errore eccessivamente e piccolo non ` un risultato positivo, perch´ in questo caso significa che la rete ha “imparato e e a memoria” i valori del training set, e se le verranno presentati nuovi dati difficilmente riuscir` a lavorare con successo perch´ ha perso in generalit` nel corso dell’addestramena e a to. Questo problema ` noto con il termine di overfitting, ed esistono alcuni metodi per e ridurne l’impatto, tra cui i pi` comuni sono l’early stopping e il weight decay. u L’early stopping prevede che una parte del training set non venga passata alla rete per l’addestramento, ma venga mantenuta “nascosta” per essere usata come set di validazione; dopo ogni passo di backpropagation si misura l’errore sia sui dati usati nel training che sui dati “nascosti”: quando l’overfitting entrer` in gioco si noter` che l’errore sui dati di a a training tender` a 0, mentre (dopo essere sceso nelle prime fasi di addestramento) quello a sui dati di confronto tender` ad aumentare nuovamente. Appena si nota un aumento a dell’errore sul set di validazione si deve interrompere l’apprendimento, perch´ da quel e punto in avanti la rete perderebbe in generalit` e non apprenderebbe, ma si limiterebbe a ad “imparare a memoria”. Il weight decay invece prevede un termine di penalizzazione, durante la backpropagation, per i pesi che assumono valori assoluti grandi; senza entrare nel dettaglio, basti sapere che pesi molto grandi tendono a ridurre la generalit` della rete (in sostanza causano una a varianza eccessiva, per cui al minimo discostarsi dai valori che la rete ha imparato l’output tende a diventare imprevedibile e poco attendibile), per cui penalizzando i grandi valori assoluti si riescono a ridurre gli effetti dell’overfitting. ` E evidente che le reti neurali possono avere una grande variet` di applicazioni: dall’analisi a di trend, approssimazione di funzioni, filtraggio e compressione di dati. . . Naturalmente uno dei loro possibili usi ` la classificazione: in particolare dato un training set etichettato e si pu` realizzare apprendimento supervisionato come spiegato in precedenza, impostando o ` gli input (valori delle feature) e gli output desiderati (le etichette). E per` anche possibile o addestrare le reti in maniera non supervisionata, senza cio` fornire output desiderati: in e questi casi la rete si dovr` adattare in base ai risultati ottenuti nei vari passi di addea stramento; in questo modo si possono realizzare operazioni di clustering (di cui parleremo nella sezione 2.4).

2.3

Nearest Neighbor

L’algoritmo Nearest Neighbor ` un metodo di classificazione supervisionato basato su e feature riconoscibili: a ciascuna feature viene assegnata una dimensione, in modo che si formi uno spazio multidimensionale di feature. All’interno di questo spazio vengono disegnate le feature estratte da un training set etichettato, in cui le classi sono note a priori. Completata questa fase di apprendimento, si analizzano i campioni da classificare: anche da questi si estraggono le feature scelte, che vengono quindi confrontate con quelle del training set nello spazio multidimensionale; un campione sar` assegnata alla classe del a “vicino pi` vicino”, appunto il nearest neighbor, solitamente usando la metrica di distanza u euclidea (ma altre scelte sono possibili). ` E chiaro che l’algoritmo sar` tanto pi` oneroso quanto pi` grande ` il training set e a u u e quanto maggiore ` il numero di feature considerate: si ha a che fare evidentemente con un e 4

trade-off, perch´ un training set pi` ampio ` tendenzialmente pi` rappresentativo, e un e u e u alto numero di feature permette di discriminare meglio tra le possibili classi, ma a fronte di questi vantaggi la complessit` dei calcoli aumenta. Sono state quindi elaborate alcune a varianti dell’algoritmo, principalmente per ridurre il numero di distanze da calcolare: ad esempio ` possibile partizionare lo spazio di feature e misurare la distanza solo rispetto e ad alcuni dei volumi cos` ottenuti. ı K-nearest neighbor ` una variante che determina i k elementi pi` vicini: ognuno di questi e u “vota” per la classe cui appartiene, e il campione in esame verr` assegnato alla classe pi` a u votata.

2.4

Clustering

Con il termine clustering si denota un famiglia di metodi non supervisionati in grado di individuare raggruppamenti intrinseci (cluster ) tra i dati nello spazio multidimensonale, e di creare in corrispondenza di tali raggruppamenti le classi. Queste classi sono inizialmente incognite, e non ` noto nemmeno il loro numero, cosa che rende il problema decisamente e complesso. I metodi di clustering possono essere ricondotti a due famiglie: • Clustering gerarchico: attraverso operazioni di tipo bottom-up o top-down organizza i dati in una sequenza innestata di gruppi che possono essere visualizzati come un albero. • Clustering partizionale: individua (solitamente attraverso algoritmi euristici iterativi) delle partizioni che minimizzano un dato criterio di clustering, ad esempio la somma dei quadrati degli errori. Comuni a entrambe le famiglie sono i criteri di clustering che si possono scegliere per specificare il grado di ottimalit` di ogni soluzione ammissibile; a seconda del criterio scelto a esistono poi vari algoritmi di clustering che forniscono una procedura per determinare le soluzioni che lo ottimizzano. La maggior parte dei criteri di clustering sono definiti sulla base delle due osservazioni seguenti: i pattern all’interno dello stesso cluster devono essere tra loro pi` simili rispetto a pattern appartenenti a cluster diversi; i cluster sono costituiti u da nuvole di punti a densit` relativamente elevata, separate da zone dove la densit` ` pi` a ae u bassa. Tra i diversi criteri possibili: • somma dei quadrati degli errori: minimizza i quadrati delle distanze dai centri delle classi (detto anche criterio di minima varianza). • altri criteri basati su varianza intraclasse: si tratta di una famiglia di metodi tutti tesi a minimizzare la varianza all’interno delle classi. • criteri basati su scattering: tendono a minimizzare la varianza intraclasse e allo stesso tempo a massimizzare quella inter-classe. 2.4.1 Clustering gerarchico

Il clustering gerarchico opera in maniera simile al modo di eseguire classificazione in tassonomia biologica, dove ad esempio gli insetti vengono gerarchicamente classificati specializzandone le specie a partire da famiglie molto ampie fino a famiglie molto pi` u ridotte. 5

Gli algoritmi possono essere bottom-up (agglomerativi) o top-down (divisivi ). Nel primo caso si parte cercando di aggregare singoli elementi e ad ogni passo (livello) si fondono in un cluster gli elementi o i sotto-cluster che sono tra loro pi` simili rispetto a un determinato u criterio. Nel secondo (pi` complesso e quindi u meno utilizzato) si parte con un singolo cluster e ad ogni livello si suddividono in sotto-cluster Figura 3: Clustering gerarchico gli elementi pi` diversi. In entrambi i casi il u risultato pu` essere rappresentato attraverso un albero. o I metodi gerarchici (tra i pi` noti possiamo citare Single-Link e Complete-Link) sono nelu la pratica utilizzati soprattutto quando i pattern sono discretizzati e non appartengono a uno spazio metrico. In tal caso infatti criteri di somiglianza “ad-hoc” possono essere implementati per controllare l’aggregazione e la divisione. 2.4.2 Clustering partizionale

Gli algoritmi pi` comunemente utilizzati sono K-means (o la sua variante Fuzzy C-means) u e Expectation-Maximization (EM). K-means Si tratta di un metodo molto semplice computazionalmente e altrettanto semplice da implementare, che ottimizza il criterio “somma dei quadrati degli errori”. Nella sua versione base, l’algoritmo pu` essere cos` descritto: o ı - genera K cluster e determinane il centro; oppure genera direttamente K punti da usare come centri dei cluster; - assegna ciascun punto al cluster il cui centro ` pi` vicino, in base al criterio di e u distanza scelto (euclidea, Mahalonobis. . . ); - ricalcola i centri dei cluster come media delle coordinate di tutti i punti che vi appartengono; - ripeti finch´ il criterio di terminazione non ` soddisfatto (in genere il criterio di e e terminazione prevede che i centri rimangano costanti, e che quindi le partizioni non cambino tra due passi successivi). Questo algoritmo tende a convergere piuttosto rapidamente (` raro che occorrano pi` di e u 10 passi) e a fornire risultati piuttosto buoni, a patto di partire da una soluzione iniziale ragionevole. K-means ha alcuni svantaggi: innanzitutto il numero di classi K deve essere noto a priori; inoltre l’ottimizzazione ` iterativa e locale, quindi si pu` avere convergenza e o su un massimo locale della soluzione. La variante fuzzy del K-means consente a un pattern di appartenere con un certo grado di probabilit` a diverse classi; questa variante fornisce a volte una convergenza pi` robusta a u verso la soluzione finale, ma soffre in sostanza degli stessi problemi della versione standard di K-means. Diverse varianti sono state proposte per risolvere questi problemi: ad esempio per minimizzare il rischio di convergenza verso minimi locali l’algoritmo pu` essere eseguito tante o

6

volte a partire da soluzioni iniziali diverse, casuali o magari prodotte da un metodo evoluzionistico (algoritmo genetico). Le tecniche di clustering validation (la determinazione del numero di classi senza che questa informazione sia nota), invece, tendono a valutare a posteriori la bont` delle soluzioni prodotte per diversi valori di K, e a sceglierne una sulla a base di un criterio di validazione che tenga conto sia della bont` della soluzione sia della a sua complessit`. a Expectation-Maximization Il metodo di Expectation-Maximization si basa sull’ipotesi che i dati nello spazio siano stati generati da un mix di distribuzioni, cio` che ogni e classe abbia generato dati in accordo con una specifica distribuzione, ma al termine della generazione i pattern appaiono come prodotti da un’unica distribuzione multi-modale. Obiettivo del clustering attraverso EM ` quello di risalire (a partire dai pattern del traie ning set) ai parametri delle singole distribuzioni che li hanno generati. A tal fine si ipotizza nota la forma delle distribuzioni e si assume, per semplicit`, che esse siano tutte dello stesa so tipo: il caso pi` frequente ` quello di mix di s distribuzioni multinormali (gaussiane) u e di cui si vogliono stimare dai dati i parametri di definizione. EM ` nato per il calcolo della massima verosomiglianza (maximum likelihood) nel caso in e cui i dati a disposizione X={x1 ,x2 ,...xn } siano incompleti a causa della mancanza di alcuni valori Y={y1 ,y2 ,...yn }. Pertanto ogni pattern completo zi =[xi , yi ], i=1..n ` costituito da e due parti di cui solo la prima ` nota. In realt` in alcuni casi, ad esempio quando si devono e a derivare i parametri delle distribuzioni gaussiane, i dati sono completi, ma le potenzialit` a di EM vengono sfruttate per rendere trattabile la complessit` della massimizzazione. a L’algoritmo consiste di due passi, che vengono ripetuti iterativamente fino a convergenza: nel passo di Expectation viene calcolato il valore atteso del log likelihood completo: log L(θ|Z) = log L(θ|X, Y ) = log P r(X, Y |θ) a partire dal training set e da una stima iniziale dei parametri θ; nel passo di Maximization viene calcolato il set di valori di parametri che massimizza il valore atteso ottenuto nel passo di Expectation. Questo set di valori viene usato come stima di parametri nel successivo passo di Expectation. L’algoritmo converge sempre, ma corre il rischio di cadere in un ottimo locale; inoltre, come per k-means, con alcune soluzioni iniziali si possono ottenere cattivi risultati, e non ` semplice determinare il numero ottimale di cluster se non sono noti a priori. e

7

2.5

Altri tipi di classificatori

Esistono molte altre tipologie di classificatori; fra queste vale la pena di citare Support Vector Machines e Discriminant Analysis (DA). SVM ` un algoritmo per la classificazione e supervisionata che cerca di risolvere il problema di individuare l’iperpiano di separazione ottimo tra due classi, ovvero quell’iperpiano che separa, con il massimo margine, gli elementi di una classe da quelli dell’altra, in modo da poter poi applicare questo stesso iperpiano a nuovi campioni che gli vengano sottoposti. Quando si ha Figura 4: SVM ricerca l’iperpiano di a che fare con classi linearmente separabili separazione ottimo non sorgono particolari problemi; se invece si tratta con classi non lineramente separabili bisogna usare una sorta di trucco, modificando l’algoritmo di SVM in modo che cerchi l’iperpiano in spazi di dimensionalit` superiore: a se due classi non sono linearmente separabili nel nostro spazio multidimensionale, ` per` e o probabile che lo siano se aumentiamo la dimensionalit`. Inoltre ` da notare il fatto che a e SVM operi solo nel caso di due classi; esistono per` alcuni sistemi che consentono di oto tenere buoni risultati anche nel caso generico di n classi. DA ` un metodo per trovare la combinazione lineare di feature che meglio divide due o e pi` classi; pu` essere usata come un classificatore lineare, ma pi` spesso per la riduzione u o u di dimensionalit` per una successiva classificazione: in questo caso il suo scopo ` cercaa e re di ottenere un set di feature pi` piccolo rispetto all’originale, ma che sia comunque u altrettanto rappresentativo, in modo da ridurre la complessit` computazionale. a

2.6

Multiclassificatori

Un multiclassificatore ` un sistema in cui diversi classificatori sono utilizzati (normalmente e in parallelo, ma talvolta anche in cascata o in modo gerarchico) per eseguire la classificazione dei pattern; le decisioni dei singoli classificatori sono quindi fuse ad un qualche livello della catena di classificazione. Recentemente ` stato dimostrato (teoricamente ma soprattutto nella pratica) che l’utilize zo di combinazioni di classificatori (in inglese multiclassifier, combination of classifiers, classifier fusion) pu` migliorare, talvolta anche molto marcatamente, le prestazioni di un o singolo classificatore. Pertanto pu` essere opportuno, anzich´ spendere mesi per migliorao e re di un epsilon l’accuratezza del proprio classificatore, affiancare ad esso altri classificatori basati su feature/algoritmi diversi. La combinazione ` comunque efficace solo nel caso in e cui i singoli classificatori siano in qualche modo indipendenti tra loro, ovvero non commettano tutti lo stesso tipo di errori. L’indipendenza (o diversit`) ` normalmente ottenuta a e cercando di: • Utilizzare feature diverse per identificare i pattern • Utilizzare algoritmi diversi per l’estrazione delle feature • Utilizzare diversi algoritmi di classificazione 8

• Addestrare lo stesso algoritmo di classificazione su training set diversi (bagging) • Insistere nell’addestramento di alcuni classificatori con i pattern pi` frequentemente u erroneamente classificati (boosting) La combinazione dei classificatori pu` essere eseguita a livello di decisione o a livello di o confidenza. 2.6.1 Fusione a livello di decisione

Ogni singolo classificatore fornisce in output la propria decisione, che consiste della classe cui ha assegnato il pattern e opzionalmente del livello di affidabilit` della classificazione a eseguita (ovvero di quanto il classificatore si sente sicuro della decisione presa). Le decisioni possono essere tra loro combinate in diversi modi (schemi di voto, schemi basati su ranking, . . . ). Uno dei pi` noti e semplici metodi di fusione ` la cosiddetta majority vote rule: ogni u e classificatore vota per una classe, e il pattern viene assegnato alla classe maggiormente votata; l’affidabilit` del multi-classificatore pu` essere calcolata mediando le singole cona o fidenze. Nel borda count, invece, ogni classificatore produce una classifica o ranking delle classi (dalla prima all’ultima) a seconda della probabilit` che a ciascuna di esse appartenga il a pattern da classificare. I ranking vengono convertiti in punteggi che vengono tra loro sommati, e la classe con il pi` elevato punteggio finale ` quella scelta dal multi-classificatore. u e –prestazioni– 2.6.2 Fusione a livello di confidenza

Ogni singolo classificatore fornisce in output la confidenza di classificazione del pattern rispetto a ciascuna delle classi, ovvero un vettore di dimensionalit` s in cui l’i -esimo a elemento indica la probabilit` di appartenenza del pattern alla classe i -esima. Diversi a metodi di fusione sono possibili, tra cui somma, media, prodotto, max, min. Il metodo della somma ` uno dei pi` noti e utilizzati per la sua robustezza: prevede di e u eseguire la somma vettoriale dei diversi vettori confidenza, e di classificare il pattern sulla base dell’elemento maggiore. Una variante molto efficace ` quella della somma pesata, e dove la somma dei vettori confidenza ` eseguita pesando i diversi classificatori in base e al loro grado di abilit`: i gradi di abilit` possono essere definiti in base alle singole a a prestazioni dei classificatori, ad esempio in maniera inversamente proporzionale all’errore di classificazione.

3

Applicazioni dei classificatori nel campo dell’analisi di immagini

I classificatori possono essere utilizzati in diversi campi dell’analisi di immagini, a partire dal semplice clustering di pixel fino a operazioni avanzate quali il riconoscimento di volti. Tuttavia l’argomento ` ancora campo di ricerca, e non esistono approcci standard o teorie e ben consolidate: ad esempio la scelta sul tipo di classificatore da utilizzare ` pi` che altro e u lasciata all’intuito o all’esperienza. Allo stesso modo scegliere un approccio statistico piuttosto che uno sintattico ha in ogni caso pro e contro: l’approccio statistico pu` essere o pi` preciso e consente di avere un’indicazione probabilistica riguardo all’appartenenza a u 9

una piuttosto che a un altra classe, ma ` raro che la mole di dati coinvolta nell’analisi e di immagini possa essere trattata in tempi ragionevoli da un approccio di questo tipo; viceversa, un approccio sintattico ` pi` rapido, ma meno preciso e senza indicazione di e u probabilit` per l’appartenenza a una classe. a In generale ` quindi possibile risolvere uno stesso problema con diversi tipi di classificatori, e e un certo classificatore pu` essere applicato a pi` operazioni; nei seguenti paragrafi o u vedremo quindi alcune delle applicazioni pi` comuni per i classificatori, tenendo conto u che non sono necessariamente n´ le uniche n´ le migliori. e e

3.1

Classificazione a livello di pixel

Pu` essere utile applicare algoritmi di classificazione a basso livello, lavorando direttao mente sulle caratteristiche (di colore e intensit`) dei pixel che compongono un’immagine: a in questa situazione le dimensionalit` in gioco non sono elevate, e si pu` quindi pensare a o di utilizzare un classificatore Bayesiano. Una possibile applicazione ` il riconoscimento dei pixel che rappresentano la pelle. Utilize zando istogrammi e un training set sufficientemente ampio, ` infatti possibile ricavare le e probabilit` condizionali: la probabilit` che, se abbiamo osservato un pixel di pelle, questo a a sia un generico pixel x si pu` calcolare come la percentuale di pixel di pelle presenti nel o 1 box del pixel x. Le probabilit` a priori delle due classi (pelle/non pelle) sono facilmente a calcolabili come percentuale sul totale del training set, quindi come visto in precedenza si riesce a ottenere la probabilit` a posteriori per ciacsun pixel. a Un’applicazione simile pu` essere quella necessaria nell’analisi di un’immagine satellitao re, per cercare di associare un pixel a un tipo di terreno (boscoso, coltivato, urbano. . . ). Come detto in precedenza, non c’` un unico sistema per un’unico problema: in questo e caso infatti possiamo usare gli istogrammi e un classificatore bayesiano, ma potremmo anche preferire apprendimento non supervisionato addestrando una rete neurale (in grado di rilevare relazioni non lineari), oppure usare direttamente l’algoritmo K-means per clustering partizionale.

3.2

Segmentazione

Il pi` delle volte prendere in considerazione i singoli pixel non ` sufficiente, dato che molti u e tra i pixel presenti nell’immagine saranno potenzialmente inutili (ad esempio i pixel di ` sfondo), e un’analisi completa porta a un forte degrado delle prestazioni. E desiderabile riuscire a raggruppare i pixel correlati in una rappresentazione compatta, in modo da poter lavorare su un’immagine ad alto livello, prendendo in considerazione solo determinati componenti. Le caratteristiche desiderate per queste rappresentazioni tendono a essere sempre le stesse, indipendentemente dal campo specifico di applicazione: il numero di componenti in un’immagine non dovrebbe essere elevato e i componenti dovrebbero essere rappresentativi degli oggetti presenti nella scena. Il processo di ottenere questi componenti ` detto e segmentazione. Il problema della segmentazione si presenta in contesti diversi, e si pu` quindi affrontare o in modi altrettando diversi. Ad esempio si parla di segmentazione quando si vuole “riasRicordiamo che un istogramma divide uno spazio di colori (RGB, grayscale, . . . ) in una serie di box. Ad esempio, per l’intensit` in scala di grigio una possibile divisione in box pu` essere 0-64, 65-128, a o 129-192, 193-256.
1

10

sumere” il contenuto di un video, dividendolo in sequenze di frame simili e scegliendo un frame rappresentativo per ogni sequenza: il video ` cos` riassunto da questi frame. In e ı questo caso si fa uso di algoritmi di Shot Boundary Detection per rilevare il cambiamento di scena; algoritmi di questo tipo sono ad esempio implementati da codec di tipo MPEG-4 (quali DivX, XviD. . . ) per rilevare le posizioni migliori in cui inserire un key frame2 . Un’ulteriore possibile applicazione della segmentazione ` e il cosiddetto Background Subtraction (figura 5): si vuole identificare solo la parte di immagine rilevante, “sottraendo” i pixel che rappresentano lo sfondo, che non contiene informazioni utili, confrontando una serie di fotogrammi successivi della stessa scena, in cui lo sfondo pu` venire parzialmente coo perto da oggetti in movimento. Sempre grazie alla segmentazione si pu` cercare di rilevare la o Figura 5: Background Subtraction presenza di una persona (problema tutt’ora aperto) considerandola come unione di pi` segmenti (braccia, gambe, u torso): nell’immagine questi segmenti corrisponderanno a regioni uniformi (se i vestiti non hanno texture particolari), quindi sar` opportuno segmentare l’immagine cercando a zone dello stesso colore. Per identificare edifici in immagini satellitari si pu` segmentao re l’immagine in regioni poligonali, cos` come per il tracking di automobili in video di ı sorveglianza stradale e di controllo del traffico; e per cercare di rilevare una determinata parte meccanica si pu` cominciare a cercarne le componenti, che il pi` delle volte o u corrisponderanno a linee o cerchi. L’approccio pi` naturale al problema della segmentazione ` quello del clustering, dato che u e il nostro scopo ` rappresentare un’immagine in termini di cluster di pixel che hanno una e relazione tra loro, non solo a livello di caratteristiche intrinseche (colore, intensit`. . . ) ma a anche spaziali (distanze, disposizioni nello spazio. . . ); possiamo quindi usare algoritmi di clustering (gerarchici o partizonali). In particolare vengono spesso utilizzati sia K-means che EM, visto che i metodi gerarchici faticano a gestire il grande numero di pixel presente senza fare uso di qualche tecnica per “riassumere” i dati pi` significativi. u K-means pu` essere applicato scegliendo una determinata misura di distanza, ad esemo pio una che consideri sia il colore che la posizione di un pixel, in modo da suddividere l’immagine nei suoi componenti principali; anche EM si pu` applicare in questo caso, o per ottenere segmentazione di colori o texture, ponendo il problema in termini di dati mancanti. Si pu` ipotizzare che ogni pixel sia generato da una particolare distribuzione o di probabilit` scelta fra N possibili (dove N ` il numero di segmenti che compone l’immaa e gine); ognuna di queste distribuzioni ` una gaussiana con determinati parametri incogniti e
Un key frame ` un fotogramma che viene memorizzato nella sua interezza; i fotogrammi seguenti, e per risparmiare spazio, vengono definiti in funzione del keyframe, specificando quali pixel differiscono e di quanto.
2

11

che vogliamo ricavare, in modo da poter risalire a quale segmento ha generato quale pixel, ovvero ottenere una segmentazione dell’immagine. Un altro modo per realizzare una segmentazione ` tramite il model fitting, ovvero sostee nere che un gruppo di pixel deve essere considerato un segmento in quanto appartiene a un determinato modello, ad esempio una linea o una circonferenza. In questo caso il modello ` esplicito, e il livello di astrazione si alza: per esempio non ` possibile cercare e e gruppi di punti che formano una linea guardando solo alle relazioni tra coppie di punti, come avviene invece nel clustering puro. Tuttavia ` possibile applicare una versione e modificata di K-means per il fitting di linee: anzich´ partire da K centri, si ipotizzano K e rette nell’immagine, e a ogni passo si associa un punto alla retta pi` vicina, ricalcolando u poi la retta come interpolazione dei punti. In maniera simile a quanto visto per la segmentazione, anche EM si pu` adattare al fitting di linee. o EM pu` per` essere applicato anche nel caso di Motion Segmentation, cio` quando si vuole o o e determinare il movimento compiuto dai pixel confrontando due immagini successive: ci saranno regioni dell’immagine che avranno compiuto lo stesso spostamento (in genere, punti alla stessa distanza dalla telecamera si sposteranno allo stesso modo nell’immagine; i punti dello sfondo si sposteranno di poco, quelli di oggetti in primo piano subiranno spostamenti pi` significativi), e quindi si potranno identificare diversi Motion Fields, segu mentando di fatto l’immagine. Infine EM pu` essere anche usato nel Background Subtraction cui abbiamo accennato o in precedenza, ponendo il problema come un problema di dati mancanti; facciamo finta che le immagini successive della nostra scena siano sempre lo stesso frame a cui ` stato e aggiunto di volta in volta del rumore: in questo modo tutto ci` che ` “rumore” non fa o e parte dello sfondo, e usando i valori attesi dei dati mancanti possiamo ricostruire (e quindi sottrarre) il background.

3.3

Object Recognition

L’altro campo che analizzeremo ` quello dell’Object Recognition. Si tratta di un settoe re molto complicato, che include in realt` un gran numero di sottoproblemi e di diversi a approcci, in cui ancora non esistono standard o soluzioni generali veramente efficaci. I classificatori entrano spesso in gioco in questo contesto, alcune volte in maniera determinante, altre volte facendo da supporto per ottimizzare altre tecniche. 3.3.1 Pose Consistency

Questo approccio cerca di riconoscere un oggetto nell’immagine ipotizzando un mappaggio tra le feature geometriche dell’oggetto e quelle visualizzate nell’immagine, stimando quindi la posa dell’oggetto nell’ambiente. In particolare si definiscono frame groups quei gruppi di feature considerati sufficientemente caratteristici, ad esempio tre punti, o tre direzioni e un punto. Un semplice algoritmo ` il seguente: per ciascun frame group nell’oggetto e per ciae scun frame group nell’immagine si usano le possibili corrispondenze per stimare una posa dell’oggetto e ricostruirlo, riproiettandolo sull’immagine; se questa retroproiezione ` cone sistente, abbiamo trovato l’oggetto nella posa ipotizzata. Chiaramente verr` scelta la posa a per cui l’aderenza della retroproiezione all’immagine ` massima. e ` E chiaro che il numero di possibili corrispondenze da calcolare potr` essere piuttosto elea vato: un sistema che si pu` usare per ridurlo ` il Pose Clustering. In genere un oggetto o e avr` molti frame group, e quindi ci saranno molte corrispondenze tra oggetto e immagine a 12

che indicheranno la stessa posa. Viceversa, le corrispondenze errate, dovute a rumore, indicheranno pose completamente diverse e isolate. Anzich´ verificare tutte le possibili e pose, si pu` quindi effettuare una sorta di clustering delle pose, andando ad analizzare o solo quelle pi` “votate”, cio` pi` frequenti nel corso dell’analisi. u e u In realt` questo sistema non si tratta di un vero e proprio classificatore, in quanto ` un a e semplice sistema di voto per ridurre l’albero di ricerca. 3.3.2 Template Matching

Nei problemi di Object Recognition capita di frequente di cercare oggetti dalla forma semplice e contenuti stilizzati, quali ad esempio un volto umano (tendenzialmente un ovale al cui interno troviamo caratteristiche pi` o meno comuni: occhi, bocca, sopracciglia, u fronte. . . ): l’idea del template matching ` verificare se l’oggetto ` presente in tutte le finee e stre di una determinata dimensione (ad esempio rettangolare) all’interno di un’immagine. Se non si conoscono grandezza e orientamento dell’oggetto, si pu` ruotare o scalare la o finestra di ricerca per tenerne conto (aumentando per` i tempi di computazione). o I metodi pi` semplici di template matching prevedono una semplice correlazione a livello u di pixel tra un’immagine campione e la finestra di ricerca; in genere i risultati possono essere buoni in casi molto specifici (condizioni di illuminazione costanti, stessa prospettiva sotto cui l’oggetto ` inquadrato. . . ), ma in casi pi` generali ` opportuno usare dei e u e classificatori addestrati con un buon numero di esempi. La scelta del classificatore da usare ` piute tosto ampia, ad esempio sono stati realizzati rilevatori di volti usando reti neurali. In particolare, una prima rete neurale ` usata per e stimare l’orientamento del volto, quindi una seconda rete si occupa di trovare il volto vero e proprio. Questo metodo funziona per` soo lo con volti inquadrati frontalmente e in condizioni di illuminazione uniformi, che vanno assicurate o al momento della ripresa o tramite postprocessing sull’immagine acquisita. Figura 6: Riconoscimento di volti Per poter individuare un generico oggetto, in condizioni di illuminazione generica e da un punto di vista qualunque ` necessario un enorme numero di esempi, e il tempo di compue tazione non pu` che risentirne. o Una strada forse pi` promettente ` quella di lavorare nello spazio delle feature. Usando u e SVM, ad esempio, ` stato ideato un algoritmo in grado di rilevare dei pedoni in immagini e urbane o comunque con sfondo generico. Sempre nel campo del rilevamento di volti si ` pensato all’utilizzo di multiclassificatori: e una cascata di classificatori che sfruttano la tecnica di boosting (vedi paragrafo 2.6) e lavorano sulle cosiddette Haar-like features riescono a riconoscere con discreta rapidit` la a presenza di un volto. La stessa tecnica si pu` estendere a un generico oggetto (ad esempio o un automobile). Un’applicazione molto interessante ` quella del riconoscimento real-time di una classe di e oggetti grazie a un “vocabolario visuale” appreso; l’apprendimento si basa su un set di

13

immagini segmentate ed etichettate3 , mentre il riconoscimento effettua clustering nello spazio delle feature. Il rilevamento dell’oggetto ` molto rapido e indipendente da illumie nazione, punto di vista o colore. Altre informazioni e alcuni video dimostrativi sul sito di Microsoft Research[3]. Un altro metodo di cui vale la pena parlare ` il Principal Component Analysis: si tratta e di un “parente” del Discriminant Analysis, dato che ` utilizzato per la riduzione dimene sionale dello spazio delle feature. Usando PCA si ricavano nuove feature come funzioni lineari delle originali; queste nuove feature occuperanno uno spazio dimensionale pi` riu dotto, in cui ` ad esempio possibile applicare un classificatore tipo Nearest Neighbor per e identificare un oggetto. L’idea di PCA ` basata sul fatto che l’uomo ` in grado di riconoe e scere un numero enorme di volti, evidentemente riuscendo a farlo solo sulla base di pochi parametri; allo stesso modo PCA consente di ricavare da un’immagine delle Eigenpictures (da Eigenvector, autovettore) che riassumono le informazioni pi` importanti dell’immagiu ne. Questo sistema ` stato applicato per l’identificazione di volti (non solo il rilevamento e di un volto, ma anche l’associazione del volto a una determinata persona) con risultati piuttosto buoni, anche se a fronte di un training set di oltre 2500 immagini (con diverse espressioni facciali, inquadrature, illuminazioni. . . ) per 16 individui. 3.3.3 Relational Matching

I Relational Matchers tentano di descrivere un oggetto in base alle relazioni tra template caratteristici che lo compongono: anzich´ considerare un template unico, che risulterebbe e il pi` delle volte troppo complesso per essere riconosciuto direttamente, si considerano u template pi` ridotti che sono in qualche modo collegati tra loro: ad esempio anzich´ u e cercare di riconoscere direttamente una faccia intera si possono localizzare speratamente occhi, naso e bocca. I possibili template rilevati vengono messi in relazioni con metodi probabilistici, incrementando di volta in volta l’“assemblato” complessivo: ad esempio si parte da quello che si ritiene essere un occhio, dopodich´ si aggiunge la bocca (se questa rispetta i vincoli e imposti dal modello), e cos` via, fino a ottenere l’oggetto completo. In questa situazione ı un classificatore addestrato su un gran numero di esempi pu` venire utilizzato per ridurre o il numero di ricerche da effettuare, eliminando a priori le ipotesi che non porteranno mai a una ricostruzione sensata. Il problema dell’approccio di Relational Matching ` che difficilmente ` in grado di gestire e e oggetti complessi, dato che per ora questi sistemi funzionano abbastanza bene con oggetti semplici (quali appunto un volto), e sembra difficile riuscire a costruire matcher per modelli pi` complicati. u

Esiste anche un algoritmo, LOCUS, che pare possa funzionare con apprendimento non supervisionato, cio` con immagini non etichettate. e

3

14

4

Conclusioni

I classificatori trovano ampio uso in vari campi della computer vision, e molte volte vengono usati in congiunzione con altre tecniche (geometriche, probabilistiche) di analisi di immagini, ad esempio per focalizzare l’analisi (riducendo il peso computazionale). Finora non esistono standard o linee guida per quel che riguarda la scelta del tipo di classificatore, n´ per la configurazione di uno specifico classificatore: in genere l’approccio e migliore ` valutare la tipologia di problema e provare a utilizzare il tipo di classificatore e pi` adatto, eventualmente anche aggiustandolo e ottimizzandolo con un po’ di trial and u error. Per quel che riguarda il processing real-time, molti dei classificatori e delle applicazioni visti richiedono una buona dose di computazioni, quindi non ` semplice raggiungere e il tempo reale; d’altro canto buoni risultati sembrano ottenibili con multiclassificatori e classificatori a cascata (si veda ad esempio questo paper su real-time object detection[4]).

Riferimenti bibliografici
[1] Eugene Charniak, Bayesian Networks without Tears http://www.cs.ubc.ca/~murphyk/Bayes/Charniak_91.pdf [2] Charles Elkan, Naive Bayesian Learning reperibile su http://citeseer.ist.psu.edu/ [3] Microsoft Research Cambridge, http://research.microsoft.com/vision/cambridge/recognition/default.htm [4] Paul Viola, Michael Jones, Robust Real Time Object Detection reperibile su http://citeseer.ist.psu.edu/ [5] Davide Forsyth, Jean Ponce, Computer Vision: a Modern Approach. Prentice-Hall, 2003. [6] Various Wikipedia entries http://www.wikipedia.org

15