SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
Paper sul Content-Based Image Retrieval
(Corso di Metodi di estrazioni delle informazioni dal web)
Studente: Sofien Vannutelli
Matricola: 693518
Corso di laurea: Informatica Magistrale
A.A.: 2010/2011
Abstract - In questo paper si parla della tematica sul Content-Based Image Retrieval,
iniziando ad introdurre il concetto della stessa ed alcune nozioni di base sull’image
processing. Si descriveranno brevemente gli elementi percettivi di base per il recupero di
immagini attraverso il loro contenuto visivo senza nessuna informazione testuale associata
ad essa; i vari metodi per l’estrazione delle informazioni dalle immagini, l’indicizzazione e
ricerca dei contenuti in base al contesto del sistema informativo e il recupero dei risultati
che si ottengono dai sistemi informativi per l’image retrieval.
1. Introduzione [2], [3], [6]
A partire dagli anni ’90 è stata un’area di
ricerca, che si è sviluppata molto
velocemente e sopratutto in quest'ultimo
decennio si sono fatti notevoli progressi sia
nella ricerca teorica che in quella
sperimentale. Infatti il numero delle
pubblicazioni di ricerca sulle tecniche di
estrazione di informazioni visive,
organizzazione, indicizzazione, query
dell'utente, di interazione e gestione di
database sono aumentate enormemente.
Oggi, i ricercatori appartenenti alle
comunità di visione artificiale, basi di dati,
interazione-uomo macchina e information
retrieval, stanno, sempre di più,
concentrandosi, in maniera profonda, su
particolari problematiche sempre più
difficili e particolari.
Una primissima soluzione, che è stata
proposta, è stata quella di affidarsi ai
sistemi di retrieval testuale, confidando
nelle informazioni testuali associate alle
immagini. Infatti, attraverso le descrizioni
di testo, le immagini venivano organizzate
per argomento o per significato semantico,
utilizzando sia le gerarchie e sia lo standard
Boolean Queries per la navigazione.
Tuttavia la generazione automatica di testi,
che descrivono un'ampia gamma di
immagini non è fattibile, in quanto la
maggior dei sistemi, che recuperano le
immagini, richiedono una annotazione
manuale delle immagini e questo è un
compito arduo e costoso, in quanto si
dovrebbero immagazzinare nella base di
dati, immagini di grandi dimensioni e
spesso soggettive e legate al contesto.
Mentre nei sistemi di visual retrieval, il
recupero di immagini, si basa
esclusivamente (o prevalentemente)
sull’informazione visiva. Visiva è la query
dell’utente. Visivo è il ”ragionamento”,
ovvero il criterio di similitudine sul quale si
basa il recupero ed il ranking, o l’eventuale
indicizzazione dell’archivio.
Si possono distingure vati tipi di retrieval;
una prima importante suddivisione, dei
sistemi di image retrieval, riguarda il
recupero di immagini fisse o di video. Nel
primo caso la query restituisce uno o più
esempi di ciò che si sta cercando, mentre
nel secondo caso succede, più spesso, che
sono i sistemi semi-automatici, in
particolare i sistemi sofisticati sulla
videosorveglianza, che analizzano le
2
sequenze video per estrarre informazioni
utili al retrieval. C’è da specifare che una
sequenza video è costituita da una
successione di immagini singole.
1.1 Alcune nozioni di base
sull’elaborazione delle immagini
digitali [1]
Per creare un'immagine digitale necessita
convertire i dati continui in una forma
digitale. Questa operazione comprende due
processi: il campionamento e la
quantizzazione. L'operazione di
digitalizzazione è chiamata campionatura.
Quando si digitalizzano i valori
dell'ampiezza si parla di quantizzazione.
Nella rappresentazione delle immagini si
suppone che la funzione f(s,t) rappresenti
una funzione di un'immagine continua di
due variabili continue, s e t e nella fase di
conversione si prende tale funzione e si
ottiene un'immagine digitale attraverso il
processo di campionamento ed il processo
di quantizzazione. Nel campionare
l'immagine continua si ottiene una matrice
bidimensionale, f(x,y), con M righe e N
colonne, in cui (x,y) sono delle coordinate
discrete. Ovviamente questi non sono i
valori delle coordinate fisiche
dell'immagine campionata. In generale il
valore dell'immagine nelle coordinate (x,y)
viene indicato dalla funzione f(x,y), dove x
e y sono numeri interi. La parte del piano
reale attraversata dalle coordinate di
un'immagine è chiamata dominio spaziale,
dove x e y si riferiscono alle variabili
spaziali o alle coordinate spaziali.
In aggiunta a f(x,y) esiste un terzo asse che
ne indica i valori assunti da f (le intensità)
come funzione delle due variabili x e y.
Questa rappresentazione è utile, sopratutto,
quando si sta lavorando in scala di grigio e
gli elementi vengono espressi in modo
triplice, ovvero x e y sono le coordinate
spaziali e z è il valore di f nelle coordinate
(x,y).
Dominio spaziale vs dominio della
frequenza [1]
Nel dominio spaziale si descrive il piano
stesso, che contiene i pixel di un’immagine;
le tecniche nel dominio spaziale operano
direttamente sui pixel di un’immagine a
differenza di quanto avviene nel dominio
della frequenza.
g(x,y) = T[f(x,y)]
Nel dominio della frequenza le operazioni
vengono eseguite sulla trasformata di
fourier di un’immagine, anzichè
sull’immagine stessa, ovvero il metodo di
elaborazione si esprime trasformando
l’input, eseguendo l’operazione (nel
dominio della frequenza) e poi applicare
l’inversa per ritornare al dominio spaziale.
Da notare che è più semplice o più
significativo implementare alcune
operazioni nel dominio spaziale, mentre per
altre è meglio utilizzare approcci differenti,
anche se le tecniche che lavorano nel
dominio spaziale sono più efficienti
computazionalmente.
f(x,y) g(x,y)Trasformata
Operazione
R
Trasformata
Inversa
Dominio Spaziale
Dominio della Frequenza
Dominio Spaziale
Dominio Spaziale
3
I descrittori di contenuti visivi [1]
I descrittori di contenuti visivi possono essere
globali o locali. Un descrittore globale utilizza
le caratteristiche visive di tutta l'immagine,
mentre un descrittore locale utilizza la visuale.
Le caratteristiche delle regioni o degli oggetti
servono per descrivere il contenuto
dell'immagine.
Il modo più semplice di dividere l'immagine è
quella di utilizzare una partizione, che taglia
l'immagine in “tessere” di uguali dimensioni e
forma. Una partizione semplice non genera
regioni percettivamente significative, ma è un
modo per rappresentare le caratteristiche
globali delle immagini a una risoluzione più
fine. Un metodo migliore è quello di
suddividere l'immagine in regioni omogenee,
secondo qualche criterio utilizzando algoritmi
di segmentazione, che sono stati ampiamente
studiati nella visione artificiale. Un modo, più
complesso, di dividere un'immagine è quello
di avviare un oggetto completo per ottenere
semanticamente oggetti significativi (come il
basket, auto, cavalli). Anche se, attualmente,
la segmentazione automatica degli oggetti, per
i domini di massima delle immagini, funziona
con scarse probabilità di successo.
La segmentazione [1]
L’obiettivo della segmentazione è la
ripartizione di una immagine in regioni o
negli oggetti che la compongono. Il livello di
dettaglio al quale viene effettuata la
segmentazione dipende da ciò che si vuole
ottenere. La segmentazione dovrebbe
arrestarsi quando gli oggetti o le regioni di
interesse in una applicazione sono stati
individuati. La segmentazione è in generale
uno degli obiettivi più difficili da raggiungere
nell’ambito dell’elaborazione delle immagini.
L’accuratezza della segmentazione determina
l’eventuale riuscita o l’eventuale fallimento
delle procedure di analisi computerizzate. In
certe situazioni, è possibile tenere conto delle
condizioni al contorno (illuminazione, scena,
etc.) in quanto note a priori. La maggior parte
degli algoritmi di segmentazione si basano su
una delle due proprietà di base dei valori di
intensità: discontinuità e similarità. Nel primo
caso si tende a partizionare una immagine
basandosi sui bruschi cambiamenti di
intensità, come ad esempio gli edge. Nel
secondo caso si basa sulle similarità tra
regioni, facendo riferimento ad un insieme di
criteri di similarità predefiniti. Rientrano in
quest’ultima tipologia le tecniche di sogliatura
(thresholding), di crescita delle regioni
(region growing) ed i metodi separa-e-fondi
(split and merge).
In sintesi, alcuni metodi per la ripartizione di
una immagine sono:
individuazione dei contorni tra le
regioni in base alla discontinuità dei
livelli di intensità;
utilizzo di soglie per derivare la
presenza di alcune proprietà locali
come i valori di intensità o di colore;
ricerca diretta delle regioni.
In particolare nella segmentazione a regioni, i
criteri di similarità o di omogeneità possono
tipicamente includere:
intensità media,
varianza,
struttura,
forma,
dimensione,
parametri fisiologici.
4
2. Gli elementi percettivi di base [2], [3]
I sistemi Content-based Image Retrieval,
tramite il loro contenuto visivo (senza
l’utilizzo di informazioni testuali), necessitano
del riconoscimento degli elementi percettivi
indicati dall’utente, quali:
il colore,
la texture,
la forma.
Per il contenuto visivo delle immagini, nella
base di dati, viene estratto e descritto da
vettori multi-dimensionali, ovvero i vettori di
feature. I vettori di feature di immagini nella
base di dati è quella di formarne una di
funzionalità. Per recuperare le immagini, gli
utenti forniscono, al sistema di recupero,
immagini di esempio o figure abbozzate. Il
sistema cambia questi esempi nella loro
rappresentazione interna in vettori. Le
distanze di somiglianza, tra i vettori di
features, vengono calcolate ed il recupero è
effettuato con l'ausilio di un regime di
indicizzazione. Lo schema di indicizzazione
fornisce un modo efficace per cercare
all’interno della base di dati di immagini.
Content-based image retrieval tramite
Colore [2], [3]
Il colore viene ampiamente utilizzato nella
visualizzazione del contenuto visivo, per il
recupero di immagini. Le sue dimensioni
valori 3D fanno la loro discriminazione di
potenzialità, che è superiore ai singoli valori
dimensionali delle immagini in scala di grigio.
Prima di selezionare un colore appropriato
bisogna selezionare lo spazio colore od il
sistema colore, in sostanza, ogni pixel
dell'immagine può essere rappresentato come
un punto in uno spazio di colore 3D.
Comunemente lo spazio colore utilizzato per
il recupero di immagini comprendono RGB1
,
Munsell2
e HSV3
.
Alcuni descrittori per il colore che vengono
utilizzati più spesso sono:
Color Moment: la distribuzione dei colori
in un’immagine può essere rappresentata
a grandi linee da pochi valori:
o si basa sul concetto di momento di una
distribuzione,
o si perde in precisione, ma si guadagna
in spazio occupato e tempo necessario
per il confronto,
o può essere utile per un primo
screening,
Color Histogram: offre una efficace
rappresentazione del contenuto dei colori
di un’immagine, se la colorazione è unica
rispetto al resto del dataset. L'istogramma
di un'immagine digitale, con livelli di
intesità nella gamma [0,L-1], è una
funzione discreta h(rk) = nk , dove è il
numero di pixel dell'immagine con
intensità rk. Gli istogrammi sono la base
per numerose tecniche di elaborazione del
dominio spaziale, come, ad esempio, il
miglioramento (enhancement)
dell'immagine,
Color Coherence Vector: distingue i due
casi, dividendo ogni elemento
dell’istogramma in due parti:
o una relativa alle aree di grandi
dimensioni,
1
Nel modello RGB, Red Green Blue, ogni colore è
rappresentato dalle sue componenti primarie spettrali di
rosso, verde e blu.
2
Il modello Munsell è lo spazio dei colori usato come
standard internazionale per definire i colori in base a tre
coordinate dimensionali: tonalità (Hue), luminosità
(Value o Lightness) e saturazione (Chroma).
3
Il modello HSB indica sia un metodo additivo di
composizione dei colori che un modo per rappresentarli
in un sistema digitale. Abbreviato HSV, Hue
Saturation Value (tonalità, saturazione e valore), o
HSI, Hue Saturation Intensity (tonalità, saturazione ed
intesità).
5
o l’altra relativa alle aree piccole e
sparse.
Invariant Color Features: introdotta di
recente nell’Information Retrieval è
basata sulle immagini, cioè dato
un’insieme di invarianti di colore, il
recupero dell’oggetto viene basato sul
modello Shufer, inoltre, può offrire
l’illuminazione, la geometria della scena
e la vista geometrica, indipendentemente
dal colore, che hanno i pixel nelle
immagini.
Content-based image retrieval tramite
Texture [2], [3]
La ricerca di immagini tramite texture si basa
sul riconoscimento di pattern ricorrenti,
diffusi in tutta l’immagine o concentrati in
regioni specifiche.
Le interrogazioni sono dirette ad individuare:
immagini contenenti una stessa texture
diffusa,
immagini in cui una zona identificabile
contiene una texture specifica,
immagini che contengono texture rispetto
a immagini non texturizzate,
immagini che contengono texture
appartenenti alla stessa classe anche se
differenti tra loro.
Una texture è una configurazione, ripetitiva di
variazioni di intensità luminosa, caratterizzata
da tre parametri:
granularità: dimensione delle aree
caratterizzate da variazioni di intensità
luminosa,
direzionalità: presenza di una direzione
preferenziale lungo cui si dispongono le
variazioni di intensità luminosa,
ripetitività: presenza di configurazioni
ricorrenti,
contrasto: visibilità della texture rispetto
all’immagine.
Le texture sono misurabili, in termini di alte
frequenze, nello spettro dell’immagine e sono
rappresentate attraverso vettori numerici, che
ne descrivono i parametri caratteristici. Sono
definite collezioni standardizzate di texture
per la valutazione delle prestazioni dei sistemi
di riconoscimento e per la sintesi di immagini.
I vari modelli di calcolo delle texture sono:
il contrasto, granularità e direzione:
preservano la percezione umana di
somiglianza e distanza.
le matrici di co-occorrenza: misurano le
ricorrenze nelle combinazioni di
luminosità dei punti.
l’analisi dell’energia di texture: distingue
le texture in base ad una misura di
energia per configurazioni note.
Tutti e tre i modelli si basano su proprietà e
funzioni sviluppate in ambito del signal
processing e hanno un fondamento teorico
solido, anche se possono richiedere
elaborazioni non banali.
Nel contrasto, granularità e direzionalità
possono essere calcolati in modo da
conservare nella distanza la percezione umana
di differenza (Tamura features).
Nella matrice di co-occorrenza si descriveno
le relazioni spaziali tra i vari livelli di
luminosità dei punti dell’immagine, ovvero
dato un intorno I di piccole dimensioni si
calcola la frequenza con cui i livelli di grigio
ricorrono nelle coppie di punti dell’intorno ed
i livelli di grigio vengono sottocampionati per
ridurre le dimensioni della matrice.
In aggiunta, dalla matrice di co-occorrenza si
traggono alcuni indicatori statistici sintetici,
che caratterizzano il tipo di texture:
energia,
entropia,
contrasto,
6
omogeneità,
tendenza al clustering.
Infine, nel calcolo dell’energia di texture,
questo può essere rappresentato da misure di
energia ottenute attraverso la convoluzione
con kernel, che rappresenta i pattern
caratteristici (level, edge, spot, wave, ripple).
I kernel sono sottoposti a convoluzione tra
loro ed il risultato viene applicato per
convoluzione all’immagine. L’immagine così
ottenuta è elaborata per calcolare l’energia
nelle vicinanze di ogni punto per ogni tipo di
kernel, questo discorso vale anche per i
diversi tipi di texture.
Content-based image retrieval tramite
Forma [2], [3]
La ricerca di immagini tramite la forma si
basa sull’analisi della forma degli oggetti
presenti in un’immagine, dove il concetto di
“oggetto” è convenzionale, gli oggetti sono
identificati da variazioni di luminosità ai
contorni, solitamente non è possibile
identificare i “veri” contorni degli oggetti e si
può pre-elaborare l’immagine segmentandola
in regioni distinte.
Le interrogazioni sono dirette ad individuare:
immagini contenenti oggetti di forma
simile,
immagini in cui è presente un oggetto
descritto attraverso uno sketch,
immagini che contengono forme con
proprietà simili (es. allungate),
immagini che contengono oggetti della
stesa forma ma con prospettive e
angolazioni.
Nell’identificazione degli oggetti, i loro
contorni presenti nell’immagine sono
riconoscibili con certezza solo se non vi sono
intersezioni e né occlusioni, questo perchè le
differenze di colore possono introdurre falsi
contorni e le somiglianze di colore o di
luminosità possono mascherare i contorni più
significativi.
I modelli di calcolo utilizzati per l’image
retrieval tramite la forma sono:
le proprietà geometriche semplici:
associano ad una regione un insieme di
proprietà dei punti contenuti,
il calcolo dei momenti invarianti
dell’immagine: descrivono proprietà della
distribuzione dei punti e quindi degli
oggetti rappresentati,
il calcolo dei descrittori di Fourier: i
coefficienti descrivono l’apporto delle
diverse frequenze lungo le direzioni in
cui si sviluppano le forme di
un’immagine e quindi permettono di
“tracciarle”,
il confronto di forme per deformazione:
l’energia spesa per deformare una forma
in un’altra è una misura della loro
somiglianza.
Nel primo caso, delle proprietà geometriche
semplici, si prende in considerazione una data
regione, identificata da un contorno e su di
essa si possono calcolare alcune proprietà
sintetiche, che sono:
l’area della regione,
la sagoma, in termini di minimo
rettangolo, che include la regione
(minimum bounding rectangle), o
massimo rettangolo incluso (o altra
forma, es. cerchio o ellisse),
compattezza = perimetro2 / area,
allungamento, definito come il rapporto
tra la corda di lunghezza massima e la
corda ad essa perpendicolare,
scomposizione in forme geometriche
standardizzate, quindi confrontabili
facilmente.
La forma di un oggetto (il suo contorno) può
essere definita da un sistema di coordinate
7
polari (centroide e raggi), ed essere invariante
rispetto a numerose trasformazioni
(traslazione, rotazione, riflessione,
ingrandimento/riduzione) e presentare delle
limitazioni non trascurabili, cioè:
solo oggetti connessi e compatti,
il centroide deve essere interno,
il contorno deve essere una funzione ad
un solo valore (nessuna piega).
Nel secondo caso, dei momenti invarianti
dell’immagine, si prende un’immagine binaria
f(x,y) e una regione R connessa di punti tali,
che la funzione f(x,y)=1, il momento di ordine
i,j della regione R può essere definto così:
Mi,j(R) = Σ xi
yi
In particolare, M0,0(R) è l’area di R, i momenti
di ordine maggiore descrivono come le
regioni si dispongono nell’immagine.
Dai momenti dell’immagine è possibile
ottenere, per normalizzazione e composizione,
funzioni che sono invarianti rispetto ad un
certo numero di trasformazioni dell’immagine
traslazione,
riduzione/ingrandimento,
deformazione lineare.
Nel terzo caso, dei descrittori di Fourier, la
trasformata di Fourier del contorno di un
oggetto conserva informazioni sulla
disposizione del contorno stesso, quindi sulla
sua forma, dove i primi coefficienti
descrivono le componenti a bassa frequenza,
per cui la forma “a grandi linee” ed i
coefficienti dei termini a frequenza più
elevata descrivono i dettagli della forma.
La trasformata di Fourier è invariante rispetto
ad alcune trasformazioni dell’immagine,
come:
rotazione (si scarta l’informazione sulla
fase),
scala (si dividono i coefficienti per la
componente continua),
traslazione (deriva automaticamente dalla
rappresentazione del contorno).
Infine, come ultimo caso, il confronto di
forme per deformazione, si ha che la
somiglianza è misurata dall’energia necessaria
per deformare i contorni di due immagini in
modo tale da renderli uguali, infatti questo
argomento verrà discusso nella sezione
successiva come tecnica per il
riconoscimento, ovvero il Template Matching
Deformabile.
Un tipico sistema di recupero di immagini,
tramite somiglianza di forma, presuppone:
una query by sketch: l’utente disegna una
sagoma approssimativa di ciò che sta
cercando nel database di immagini,
la ricerca nel database avviene quindi
tramite tecniche di indicizzazione e di
riconoscimento provenienti dalla
Computer Vision,
l’output del sistema non si limita a dire
cosa è stato o non è stato riconosciuto, ma
deve fornire una lista di immagini
ordinate per grado di somiglianza con la
query.
8
3. Alcune tecniche di
riconoscimento per i sistemi
Content-based Image Retrieval [2],
[3], [4], [5], [6], [9] [10]
Alcune tecniche per il riconoscimento nei
sistemi Content-based Image Retrieval,
possono essere sinteticamente divise in due
filoni, che sono:
1. l’approccio statistico,
2. il Template Matching.
L’approccio statistico [2], [3], [11]
Nell’approccio statistico si scelgono una serie
di n caratteristiche (features) dell’apparenza
di un oggetto, che siano facilmente misurabili.
Generalmente si tratta di statistiche globali sui
pixel appartenenti all’interno o ai bordi della
sagoma dell’oggetto O ed è descritto tramite
un punto in RN
dato dal vettore V(O) delle n
misurazioni delle sue features.
La base di dati viene ordinato in base alla
distanza tra lo sketch S e le immagini Oi in
esso contenute:
dist(V(Oi), V(s))
Alcuni esempi tipici di features possono
essere l’area della figura, cioè il numero dei
suoi pixel. La compattezza della regione,
definita come il rapporto tra il quadrato del
perimetro e l’area.
L’allungamento (elongatedness) della
regione, definito come il rapporto tra la
lunghezza della corda di lunghezza massima e
la lunghezza della corda ad essa
perpendicolare. I coefficienti dell’espansione
in serie di Fourier ottenuti interpretando la
sagoma come fosse una funzione sinusoidale.
La sagoma, infatti, è una curva chiusa di
perimetro L, ed un suo generico punto può
essere descritto dalle coordinate x(l) e y(l), 0 ≤
l ≤ L, da cui:
φ(l) = x(l)+jy(l)
dove φ(l) è una funzione periodica la cui
espansione tramite serie di Fourier fornisce i
coefficienti della codifica.
Un esempio pratico di approccio statistico
potrebbe essere il recupero di volti umani,
ovvero dato un archivio di immagini (I1
, I2
,
...), ognuna rappresentante il volto di un
individuo (in ”formato tessera”), si vuole
recuperare, se esiste, l’immagine
dell’individuo a cui appartiene una data,
nuova immagine in input (Q). Anzitutto ogni
immagine (del database o di query) processata
dal sistema deve essere analizzata al fine di
estrarne la parte rappresentante il volto (face
detection). La rappresentazione delle features
non sono altro che i valori di grigio dei pixel
dell’immagine. Supponiamo per esempio che
I sia una generica immagine processata dal
sistema (o una sua sotto-finestra) dalle
dimensioni n*m, allora I può essere
rappresentata dalla concatenazione delle sue n
righe:
V(I)=(I11, I12, ... I1m, I21, I22, ... Inm)T
dove V(I), a sua volta, può essere
rappresentato da un punto in Rn*m
. In questo
caso il sistema di retrieval restituisce
l’immagine più vicina al punto V(Q) (nearest
neighbour).
L’utilizzo della compressione avviene quando
Rnxm
é uno spazio troppo grande e perciò deve
essere proiettato in uno spazio di dimensioni
ridotte, chiamato face space. Tale proiezione
avviene esaminando un insieme di immagini
d’esempio (training set) al fine di stabilire
quali sono le informazioni statistiche
maggiormente discriminanti.
9
La Principal Component Analysis (PCA) è
l’esempio più noto di tecnica di compressione,
ovvero il vettore di features V1xnm viene
rappresentato da un secondo vettore W di
dimensioni Nx1, con N«nm. Il vettore W, pur
essendo più piccolo rispetto a V, viene
costruito in modo da mantenere la maggior
parte dell’informazione statisticamente
rilevante. Il feature space di dimensione N
viene costruito esaminando il training set e
scegliendo una nuova base ortonormale B di
Rn*m
tale che i vettori di B indichino, in ordine
decrescente, le direzioni di massima varianza
nel training set, ovvero in una base di
dimensione N si selezionano soltanto i primi
N elementi di B. Dato che per ogni individuo
umano, rappresentato all’interno di una base
di dati di volti, siano disponibili più di
un’immagine, è possibile pensare di adottare
delle tecniche di Machine Learning statistico
per permettere al sistema di generalizzare
l’apparenza di ogni individuo. Presa la
persona P1 essa è rappresentata dalle
immagini Ii1,Ii2,... nella base di dati e, quindi,
dai punti Wi1,Wi2,... del face space.
Le Reti Neurali, le Support Vector Machine o
altre tecniche di apprendimento
supervisionato possono pemettere al sistema
di costruire le classi C1,C2,..., corrispondenti
alle persone P1,P2,... . Ciascuna classe è
ottenuta raggruppando opportunamente i punti
del face space ed è rappresentata da una
regione multidimensionale (non
necessariamente connessa) del face space. La
regione R1 corrispondente alla persona P1 è
una generalizzazione degli esempi Wi1,Wi2,...
ed è una rappresentazione delle possibili
apparenze di P1. Quindi una nuova immagine
Q, rappresentante una delle persone note,
viene assegnata alla persona Pk se W(Q)
appartiene a Rk.
L’indicizzazione di una base di dati avviene
secondo dei criteri, tali da rendarla efficiente
nell’operazione di recupero on-line delle
informazioni in essa contenute. Questa
operazione è molto importante sopratutto se le
dimensioni del database sono abbastanza
critiche.
I sistemi di Content-based Image Retrieval
raramente permettono l’indicizzazione;
un’importante eccezione sono gli approcci
statistici ed è possibile se i dati possono essere
rappresentati vettorialmente ed è possibile
organizzare il database sfruttando le relazioni
spaziali tra i vettori.
Le tecniche più note si basano su strutture dati
ad albero quali: il kd-Tree o l’R-Tree. La
struttura dati più utilizzata è il kd-Tree, dove
esso è un albero binario in cui ogni nodo è un
punto k-dimensionale. Ogni nodo non foglia
può essere pensato come implicitamente la
generazione di un iperpiano scissio, che
divide lo spazio in due parti, noti come
sottospazi. I punti a sinistra di questo
iperpiano rappresentano il sotto-albero
sinistro di quel nodo e punti di destra
dell’iperpiano sono rappresentati nel sotto-
albero destro. La direzione dell’iperpiano
viene fatta nel seguente modo: ogni nodo
dell'albero è associato ad uno delle k-
dimensioni, con l'iperpiano perpendicolare
all'asse della dimensione stessa.
Ad esempio, se per una particolare “frazione”
dell’asse X è scelta, tutti i punti nel sotto-
albero con valore x più piccoli rispetto al
nodo, saranno visualizzati nel sotto-albero
sinistro, mentre tutti i punti con valore x più
grandi, saranno visualizzati nel sotto-albero
destro. In tal caso, l'iperpiano sarebbe fissato
dal valore x del punto, e la sua normale
sarebbe l'unità dell’asse X.
Quindi, supponiamo di voler indicizzare un
insieme di vettori di features V1,...,VN, tali che
Vi appartiene a Rk e Vi=(vi
1
,...,vi
k
)T
. Si sceglie,
innanzitutto, la prima feature, corrispondente
alla prima componente di ogni vettore e si
10
trova il valore f1, mediano rispetto a
v1
1
,v1
2
,..,v1
N
.
L’uso del kd-Tree nella indicizzazione, fa sì
che la radice dell’albero conterrà f1 e sarà
associata all’elemento Vj=(f1,...). Nel
sottoalbero a sinistra si memorizzeranno i
vettori Vi tali che vi
1 ≤ f1 e nel sottoalbero
destro gli altri. A livello 1 si sceglie la feature
numero 2 e si calcola f2, e così via. Dopo aver
utilizzato la feature k-esima, si ritorna
ciclicamente a considerare la prima feature,
finchè tutti gli elementi V1,...,VN siano stati
assegnati a qualche nodo dell’albero.
I vantaggi dell’approccio statistico sono quelli
di permette l’indicizzazione della base di dati
ed eventualmente di utilizzare tecniche di
Machine Learning, mentre gli svantaggi sono
quelli di avere uno scarso potere
discriminante e di non permettere che
l’oggetto d’interesse sia occluso o in contatto
con altri oggetti nella scena.
Il Template Matching [5]
Nel confronto diretto di immagini, mediante
distanza tra i vettori4
nello spazio, in generale
non funziona per una serie di ragioni, fra cui:
differenze di traslazione, rotazione, scala
e prospettiva,
deformazione e variabilità dei pattern,
cambiamenti di illuminazione,
presenza di rumore nelle immagini e
utilizzo di tecniche di acquisizione
diverse.
Una soluzione, che viene spesso utilizzata, è il
Template Matching in cui si costruiscono uno
o più pattern modello (template) e li si
“ricerca” all’interno dell’immagine,
misurandone il grado di “somiglianza”
(matching) in tutte le possibili posizioni.
4
Un vettore, con n=WxH dimensioni, rappresenta
un’immagine in scala di grigio.
Del Template Matching esistono due tipi di
panoramiche principali:
1. il Template Matching Rigido,
2. il Template Matching Deformabile.
Il Template Matching Rigido [7], [8]
Il template T è costituito da un oggetto rigido,
dove normalmente è una piccola immagine in
formato raster: il confronto avviene
direttamente fra i pixel; tuttavia, a seconda
dell’applicazione, potrebbe essere più efficace
eseguire il template matching dopo aver
estratto determinate feature (es. gli edge,
oppure l’orientazione del gradiente).
Il template T viene sovrapposto a I in tutte le
possibili posizioni (rispetto agli assi x e y),
ma, a seconda dell’applicazione, può essere
anche necessario operare delle trasformazioni
(ad es. ruotarlo e/o scalarlo).
Per ogni istanza Ti
5
, il grado di similarità
viene solitamente calcolato massimizzando la
correlazione con la porzione di immagine I
“coperta” da Ti.
Normalmente i template hanno dimensioni
inferiori all’immagine ed analogamente alla
convoluzione, è necessario decidere come
comportarsi sui pixel di bordo (ossia dove Ti
non è completamente contenuto in I).
Gli svantaggi di questa tecnica si hanno nella
complessità computazionale, in quanto il
numero di operazioni richieste cresce
linearmente con il numero di istanze e con il
numero di pixel di I e T (e quindi
quadraticamente rispetto al lato di I e di T). In
pratica, per applicazioni real-time, l’approccio
di base è raramente applicabile, in aggiunta
risulta essere difficile la gestione dei pattern
deformabili, ad esempio: per la localizzazione
di un componente elettronico è necessaria
avere l’invarianza per posizione, rotazione,
5
Una generica istanza di T ottenuta con una data
trasformazione.
11
scala e aspect ratio (lunghezza/altezza) e ciò
implica un enorme numero di istanze.
Il Template Matching Deformabile [7]
Gli approcci di questo filone si basano sul
tentativo di far ”combaciare” (allineare) lo
sketch disegnato dall’utente con (una porzione
de) l’immagine attualmente analizzata dal
sistema.
Tale tentativo di allineamento avviene
deformando progressivamente lo sketch
iniziale per adattarlo come se fosse un
“elastico” alle silhouette delle immagini in
memoria.
Il processo iterativo termina o quando si
raggiunge una sovrapposizione accettabile tra
lo sketch deformato e l’immagine o quando il
grado di deformazione applicato allo sketch
supera un certo valore massimo.
Un caso molto particolare è se si considera
l’Elastic Template Matching (Del Bimbo-
Pala), ove tutte le immagini vengono inserite
nella base di dati del sistema nella forma
contenente solo gli edge.
L’utente disegna il suo sketch usando un tool
grafico e la sagoma finale viene rappresentata
con una spline codificata mediante i suoi punti
di controllo:
P=(p1,...,pn), pi=(xi,yi).
Se il matching tra lo sketch e l’immagine
candidata è elevata, la procedura termina qui.
Altrimenti, i vari pi vengono “perturbati” in
modo da modificare lo sketch e re-iterare la
comparazione. Più esattamente, il grado di
matching tra lo sketch e l’immagine è definito
da:
M(P) = C(P) - D(P),
dove C e D sono delle funzioni,
rispettivamente, del grado di sovrapposizione
e di deformazione dello sketch e:
D(P) = S(P) + B(P),
essendo S e B funzioni del grado di tensione e
di curvatura dello sketch.
Per trovare i massimi del matching, bisogna
cercare un massimo (locale), ovvero tutti quei
punti in cui il gradiente (∆M(P)) si annulla
∆M(P)=0.
Il problema dei massimi lo si può risolvere
analiticamente quando ∆M è sufficientemente
semplice, ma nel caso in cui ∆M non è
semplice da risolvere bisogna ricorrere ad un
metodo iterativo.
Nel metodo iterativo si deve partire da una
soluzione valida, P0, e si procede
“pertubando” P.
I passi da seguire sono i seguenti:
1. P’ := P + δP
2. P := P’ se M(P0) > M(P).
Un’altro metodo è quello del gradiente
ascendente, in cui si modificano
progressivamente i pi nella direzione di
crescita massima ottenuta, derivando M
rispetto a P:
P(k+1)=P(k)+∆M(P(k)).
Qualsiasi sia la tecnica di ricerca dei massimi
adottata, la necessità di una soluzione iniziale
P0 (lo sketch sovrapposto ”manualmente”
sull’immagine) porta ad una mancata
indipendenza da roto-traslazioni e scalamenti.
Ciò costringe a fornire le immagini del
database di una segmentazione manuale di
tutti i possibili oggetti di interesse (ad
esempio tramite il minimo rettangolo
includente), oppure a iterare il metodo per
valori iniziali diversi di P0.
12
4. Il recupero dei risultati [3]
Il recupero dei risultati si basa solo sulla
similitudine di solo features visuali e ciascuno
di tipo di esso tende a catturare soltanto un
aspetto dell’immagine, per questo si basa sulla
importanza dei feedback, il quale aumenta
attivamente l’apprendimento, informando il
sistema che la ricerca è andata a buon fine
oppure no.
Il relevance feedback, una volta che i risultati
iniziali vengono presentati all’utente, permette
allo stesso di inserire la sua valutazione
riguardo alla rilevanza di uno o più documenti
ritrovati. La valutazione preliminare viene
utilizzata per riformulare la interrogazione, in
aggiunta, questa tipo di tecnica produce un
processo interattivo, possibilmente a più passi.
5. Conclusioni
Tutti i sistemi Content-based image retrieval
dispongono di un’intelligenza artificiale e di
una soluzione automatica per una ricerca
efficiente di immagini, la maggioranza delle
tecniche correnti si basano sulle features di
basso livello. In generale, ciascuna di esse
tende a catturare solo un aspetto della
proprietà dell’immagine.
In conclusione, gli utenti sono interessati a
quelli che sono semanticamente e
percettivamente immagini simili, e i risultati
che restituiscono gli attuali sistemi, che si
basano sulle features di basso livello, sono
generalmente insoddisfacenti e spesso
impraticabili.
6. Riferimenti
[1]. Elaborazione delle Immagini Digitali.
Autori Rafael C. Gonzales, Richard E.
Woods. Editore Pearson Prentice Hall,
terza edizione 2008 (versione italiana) –
edition 2008.
[2]. Based Image Retrieval at the End of
Early Years. Autori Arnold W.M.
Smeulders, Senior Member, IEEE,
Marcel Worring, Simone Santini,
Member, IEEE, Amarnath Gupta,
Member, IEEE, e Ramesh Jain, Fellow,
IEEE.
[3]. Fundamentals of Content-based Image
Retrieval. Autori Dr. Fuhui Long, Dr.
Hongjiang Zhang e Prof. David Dagan
Feng.
[4]. Riconoscimento Automatico di oggetti in
immagini digitali. Autore Dr. Ever
Sangineto. Slides della lezione integrativa
del corso “Visione Artificiale”.
[5]. Approcci Model-Based al
Riconoscimento di oggetti. Autore Dr.
Ever Sangineto. Slides della lezione
integrativa del corso “Visione
Artificiale”.
[6]. Image Retrieval. Fonte Wikipedia.
http://en.wikipedia.org/wiki/Image_retrie
val
[7]. Elastic Matching. Autori Alberto Del
Bimbo, Member, IEEE, and Pietro Pala,
Member, IEEE.
[8]. Image retrieval tramite forma. Autore Dr.
Ever Sangineto. Slides della lezione del
corso “Metodi di estrazioni delle
informazioni dal web”.
[9]. Multimedia Retrieval. Autore Dr. Ever
Sangineto. Slides della lezione del corso
“Metodi di estrazioni delle informazioni
dal web”.
[10]. Annotazione automatica di materiale
multimediale. Autore Dr. Ever Sangineto.
Slides della lezione del corso “Metodi di
estrazioni delle informazioni dal web”.
[11]. Range Searching using Kd-Tree. Autore
Hemant M. Kakde.

Contenu connexe

Similaire à Content based image-retrieval

Ontologie per archivi fotografici
Ontologie per archivi fotograficiOntologie per archivi fotografici
Ontologie per archivi fotograficiAndrea Casagrande
 
Lezione2
Lezione2Lezione2
Lezione2irea
 
Super risoluzione di immagini di volti con tecniche di deep learning a fini i...
Super risoluzione di immagini di volti con tecniche di deep learning a fini i...Super risoluzione di immagini di volti con tecniche di deep learning a fini i...
Super risoluzione di immagini di volti con tecniche di deep learning a fini i...ErikVelan
 
Sviluppo di un Framework semantico per la contestualizzazione delle activity
Sviluppo di un Framework semantico per la contestualizzazione delle activitySviluppo di un Framework semantico per la contestualizzazione delle activity
Sviluppo di un Framework semantico per la contestualizzazione delle activityMichele Palumbo
 

Similaire à Content based image-retrieval (6)

Ontologie per archivi fotografici
Ontologie per archivi fotograficiOntologie per archivi fotografici
Ontologie per archivi fotografici
 
Lezione2
Lezione2Lezione2
Lezione2
 
Super risoluzione di immagini di volti con tecniche di deep learning a fini i...
Super risoluzione di immagini di volti con tecniche di deep learning a fini i...Super risoluzione di immagini di volti con tecniche di deep learning a fini i...
Super risoluzione di immagini di volti con tecniche di deep learning a fini i...
 
MRR_L3 - La fotogrammetria
MRR_L3 - La fotogrammetriaMRR_L3 - La fotogrammetria
MRR_L3 - La fotogrammetria
 
Computer vision
Computer visionComputer vision
Computer vision
 
Sviluppo di un Framework semantico per la contestualizzazione delle activity
Sviluppo di un Framework semantico per la contestualizzazione delle activitySviluppo di un Framework semantico per la contestualizzazione delle activity
Sviluppo di un Framework semantico per la contestualizzazione delle activity
 

Plus de Vannutelli Sofien

Plus de Vannutelli Sofien (9)

Java Fundamentals
Java FundamentalsJava Fundamentals
Java Fundamentals
 
Salesforce sales cloud_consultant
Salesforce sales cloud_consultantSalesforce sales cloud_consultant
Salesforce sales cloud_consultant
 
Attestato PROJECT MANAGER
Attestato PROJECT MANAGERAttestato PROJECT MANAGER
Attestato PROJECT MANAGER
 
Salesforce administrator
Salesforce administratorSalesforce administrator
Salesforce administrator
 
Salesforce platform developer 1
Salesforce platform developer 1Salesforce platform developer 1
Salesforce platform developer 1
 
Attestato Spring
Attestato SpringAttestato Spring
Attestato Spring
 
Scrum Fundamentals Certified Credential
Scrum Fundamentals Certified CredentialScrum Fundamentals Certified Credential
Scrum Fundamentals Certified Credential
 
Attestato Formazione generale dei Lavoratori
Attestato Formazione generale dei LavoratoriAttestato Formazione generale dei Lavoratori
Attestato Formazione generale dei Lavoratori
 
Le 1
Le 1Le 1
Le 1
 

Content based image-retrieval

  • 1. Paper sul Content-Based Image Retrieval (Corso di Metodi di estrazioni delle informazioni dal web) Studente: Sofien Vannutelli Matricola: 693518 Corso di laurea: Informatica Magistrale A.A.: 2010/2011 Abstract - In questo paper si parla della tematica sul Content-Based Image Retrieval, iniziando ad introdurre il concetto della stessa ed alcune nozioni di base sull’image processing. Si descriveranno brevemente gli elementi percettivi di base per il recupero di immagini attraverso il loro contenuto visivo senza nessuna informazione testuale associata ad essa; i vari metodi per l’estrazione delle informazioni dalle immagini, l’indicizzazione e ricerca dei contenuti in base al contesto del sistema informativo e il recupero dei risultati che si ottengono dai sistemi informativi per l’image retrieval. 1. Introduzione [2], [3], [6] A partire dagli anni ’90 è stata un’area di ricerca, che si è sviluppata molto velocemente e sopratutto in quest'ultimo decennio si sono fatti notevoli progressi sia nella ricerca teorica che in quella sperimentale. Infatti il numero delle pubblicazioni di ricerca sulle tecniche di estrazione di informazioni visive, organizzazione, indicizzazione, query dell'utente, di interazione e gestione di database sono aumentate enormemente. Oggi, i ricercatori appartenenti alle comunità di visione artificiale, basi di dati, interazione-uomo macchina e information retrieval, stanno, sempre di più, concentrandosi, in maniera profonda, su particolari problematiche sempre più difficili e particolari. Una primissima soluzione, che è stata proposta, è stata quella di affidarsi ai sistemi di retrieval testuale, confidando nelle informazioni testuali associate alle immagini. Infatti, attraverso le descrizioni di testo, le immagini venivano organizzate per argomento o per significato semantico, utilizzando sia le gerarchie e sia lo standard Boolean Queries per la navigazione. Tuttavia la generazione automatica di testi, che descrivono un'ampia gamma di immagini non è fattibile, in quanto la maggior dei sistemi, che recuperano le immagini, richiedono una annotazione manuale delle immagini e questo è un compito arduo e costoso, in quanto si dovrebbero immagazzinare nella base di dati, immagini di grandi dimensioni e spesso soggettive e legate al contesto. Mentre nei sistemi di visual retrieval, il recupero di immagini, si basa esclusivamente (o prevalentemente) sull’informazione visiva. Visiva è la query dell’utente. Visivo è il ”ragionamento”, ovvero il criterio di similitudine sul quale si basa il recupero ed il ranking, o l’eventuale indicizzazione dell’archivio. Si possono distingure vati tipi di retrieval; una prima importante suddivisione, dei sistemi di image retrieval, riguarda il recupero di immagini fisse o di video. Nel primo caso la query restituisce uno o più esempi di ciò che si sta cercando, mentre nel secondo caso succede, più spesso, che sono i sistemi semi-automatici, in particolare i sistemi sofisticati sulla videosorveglianza, che analizzano le
  • 2. 2 sequenze video per estrarre informazioni utili al retrieval. C’è da specifare che una sequenza video è costituita da una successione di immagini singole. 1.1 Alcune nozioni di base sull’elaborazione delle immagini digitali [1] Per creare un'immagine digitale necessita convertire i dati continui in una forma digitale. Questa operazione comprende due processi: il campionamento e la quantizzazione. L'operazione di digitalizzazione è chiamata campionatura. Quando si digitalizzano i valori dell'ampiezza si parla di quantizzazione. Nella rappresentazione delle immagini si suppone che la funzione f(s,t) rappresenti una funzione di un'immagine continua di due variabili continue, s e t e nella fase di conversione si prende tale funzione e si ottiene un'immagine digitale attraverso il processo di campionamento ed il processo di quantizzazione. Nel campionare l'immagine continua si ottiene una matrice bidimensionale, f(x,y), con M righe e N colonne, in cui (x,y) sono delle coordinate discrete. Ovviamente questi non sono i valori delle coordinate fisiche dell'immagine campionata. In generale il valore dell'immagine nelle coordinate (x,y) viene indicato dalla funzione f(x,y), dove x e y sono numeri interi. La parte del piano reale attraversata dalle coordinate di un'immagine è chiamata dominio spaziale, dove x e y si riferiscono alle variabili spaziali o alle coordinate spaziali. In aggiunta a f(x,y) esiste un terzo asse che ne indica i valori assunti da f (le intensità) come funzione delle due variabili x e y. Questa rappresentazione è utile, sopratutto, quando si sta lavorando in scala di grigio e gli elementi vengono espressi in modo triplice, ovvero x e y sono le coordinate spaziali e z è il valore di f nelle coordinate (x,y). Dominio spaziale vs dominio della frequenza [1] Nel dominio spaziale si descrive il piano stesso, che contiene i pixel di un’immagine; le tecniche nel dominio spaziale operano direttamente sui pixel di un’immagine a differenza di quanto avviene nel dominio della frequenza. g(x,y) = T[f(x,y)] Nel dominio della frequenza le operazioni vengono eseguite sulla trasformata di fourier di un’immagine, anzichè sull’immagine stessa, ovvero il metodo di elaborazione si esprime trasformando l’input, eseguendo l’operazione (nel dominio della frequenza) e poi applicare l’inversa per ritornare al dominio spaziale. Da notare che è più semplice o più significativo implementare alcune operazioni nel dominio spaziale, mentre per altre è meglio utilizzare approcci differenti, anche se le tecniche che lavorano nel dominio spaziale sono più efficienti computazionalmente. f(x,y) g(x,y)Trasformata Operazione R Trasformata Inversa Dominio Spaziale Dominio della Frequenza Dominio Spaziale Dominio Spaziale
  • 3. 3 I descrittori di contenuti visivi [1] I descrittori di contenuti visivi possono essere globali o locali. Un descrittore globale utilizza le caratteristiche visive di tutta l'immagine, mentre un descrittore locale utilizza la visuale. Le caratteristiche delle regioni o degli oggetti servono per descrivere il contenuto dell'immagine. Il modo più semplice di dividere l'immagine è quella di utilizzare una partizione, che taglia l'immagine in “tessere” di uguali dimensioni e forma. Una partizione semplice non genera regioni percettivamente significative, ma è un modo per rappresentare le caratteristiche globali delle immagini a una risoluzione più fine. Un metodo migliore è quello di suddividere l'immagine in regioni omogenee, secondo qualche criterio utilizzando algoritmi di segmentazione, che sono stati ampiamente studiati nella visione artificiale. Un modo, più complesso, di dividere un'immagine è quello di avviare un oggetto completo per ottenere semanticamente oggetti significativi (come il basket, auto, cavalli). Anche se, attualmente, la segmentazione automatica degli oggetti, per i domini di massima delle immagini, funziona con scarse probabilità di successo. La segmentazione [1] L’obiettivo della segmentazione è la ripartizione di una immagine in regioni o negli oggetti che la compongono. Il livello di dettaglio al quale viene effettuata la segmentazione dipende da ciò che si vuole ottenere. La segmentazione dovrebbe arrestarsi quando gli oggetti o le regioni di interesse in una applicazione sono stati individuati. La segmentazione è in generale uno degli obiettivi più difficili da raggiungere nell’ambito dell’elaborazione delle immagini. L’accuratezza della segmentazione determina l’eventuale riuscita o l’eventuale fallimento delle procedure di analisi computerizzate. In certe situazioni, è possibile tenere conto delle condizioni al contorno (illuminazione, scena, etc.) in quanto note a priori. La maggior parte degli algoritmi di segmentazione si basano su una delle due proprietà di base dei valori di intensità: discontinuità e similarità. Nel primo caso si tende a partizionare una immagine basandosi sui bruschi cambiamenti di intensità, come ad esempio gli edge. Nel secondo caso si basa sulle similarità tra regioni, facendo riferimento ad un insieme di criteri di similarità predefiniti. Rientrano in quest’ultima tipologia le tecniche di sogliatura (thresholding), di crescita delle regioni (region growing) ed i metodi separa-e-fondi (split and merge). In sintesi, alcuni metodi per la ripartizione di una immagine sono: individuazione dei contorni tra le regioni in base alla discontinuità dei livelli di intensità; utilizzo di soglie per derivare la presenza di alcune proprietà locali come i valori di intensità o di colore; ricerca diretta delle regioni. In particolare nella segmentazione a regioni, i criteri di similarità o di omogeneità possono tipicamente includere: intensità media, varianza, struttura, forma, dimensione, parametri fisiologici.
  • 4. 4 2. Gli elementi percettivi di base [2], [3] I sistemi Content-based Image Retrieval, tramite il loro contenuto visivo (senza l’utilizzo di informazioni testuali), necessitano del riconoscimento degli elementi percettivi indicati dall’utente, quali: il colore, la texture, la forma. Per il contenuto visivo delle immagini, nella base di dati, viene estratto e descritto da vettori multi-dimensionali, ovvero i vettori di feature. I vettori di feature di immagini nella base di dati è quella di formarne una di funzionalità. Per recuperare le immagini, gli utenti forniscono, al sistema di recupero, immagini di esempio o figure abbozzate. Il sistema cambia questi esempi nella loro rappresentazione interna in vettori. Le distanze di somiglianza, tra i vettori di features, vengono calcolate ed il recupero è effettuato con l'ausilio di un regime di indicizzazione. Lo schema di indicizzazione fornisce un modo efficace per cercare all’interno della base di dati di immagini. Content-based image retrieval tramite Colore [2], [3] Il colore viene ampiamente utilizzato nella visualizzazione del contenuto visivo, per il recupero di immagini. Le sue dimensioni valori 3D fanno la loro discriminazione di potenzialità, che è superiore ai singoli valori dimensionali delle immagini in scala di grigio. Prima di selezionare un colore appropriato bisogna selezionare lo spazio colore od il sistema colore, in sostanza, ogni pixel dell'immagine può essere rappresentato come un punto in uno spazio di colore 3D. Comunemente lo spazio colore utilizzato per il recupero di immagini comprendono RGB1 , Munsell2 e HSV3 . Alcuni descrittori per il colore che vengono utilizzati più spesso sono: Color Moment: la distribuzione dei colori in un’immagine può essere rappresentata a grandi linee da pochi valori: o si basa sul concetto di momento di una distribuzione, o si perde in precisione, ma si guadagna in spazio occupato e tempo necessario per il confronto, o può essere utile per un primo screening, Color Histogram: offre una efficace rappresentazione del contenuto dei colori di un’immagine, se la colorazione è unica rispetto al resto del dataset. L'istogramma di un'immagine digitale, con livelli di intesità nella gamma [0,L-1], è una funzione discreta h(rk) = nk , dove è il numero di pixel dell'immagine con intensità rk. Gli istogrammi sono la base per numerose tecniche di elaborazione del dominio spaziale, come, ad esempio, il miglioramento (enhancement) dell'immagine, Color Coherence Vector: distingue i due casi, dividendo ogni elemento dell’istogramma in due parti: o una relativa alle aree di grandi dimensioni, 1 Nel modello RGB, Red Green Blue, ogni colore è rappresentato dalle sue componenti primarie spettrali di rosso, verde e blu. 2 Il modello Munsell è lo spazio dei colori usato come standard internazionale per definire i colori in base a tre coordinate dimensionali: tonalità (Hue), luminosità (Value o Lightness) e saturazione (Chroma). 3 Il modello HSB indica sia un metodo additivo di composizione dei colori che un modo per rappresentarli in un sistema digitale. Abbreviato HSV, Hue Saturation Value (tonalità, saturazione e valore), o HSI, Hue Saturation Intensity (tonalità, saturazione ed intesità).
  • 5. 5 o l’altra relativa alle aree piccole e sparse. Invariant Color Features: introdotta di recente nell’Information Retrieval è basata sulle immagini, cioè dato un’insieme di invarianti di colore, il recupero dell’oggetto viene basato sul modello Shufer, inoltre, può offrire l’illuminazione, la geometria della scena e la vista geometrica, indipendentemente dal colore, che hanno i pixel nelle immagini. Content-based image retrieval tramite Texture [2], [3] La ricerca di immagini tramite texture si basa sul riconoscimento di pattern ricorrenti, diffusi in tutta l’immagine o concentrati in regioni specifiche. Le interrogazioni sono dirette ad individuare: immagini contenenti una stessa texture diffusa, immagini in cui una zona identificabile contiene una texture specifica, immagini che contengono texture rispetto a immagini non texturizzate, immagini che contengono texture appartenenti alla stessa classe anche se differenti tra loro. Una texture è una configurazione, ripetitiva di variazioni di intensità luminosa, caratterizzata da tre parametri: granularità: dimensione delle aree caratterizzate da variazioni di intensità luminosa, direzionalità: presenza di una direzione preferenziale lungo cui si dispongono le variazioni di intensità luminosa, ripetitività: presenza di configurazioni ricorrenti, contrasto: visibilità della texture rispetto all’immagine. Le texture sono misurabili, in termini di alte frequenze, nello spettro dell’immagine e sono rappresentate attraverso vettori numerici, che ne descrivono i parametri caratteristici. Sono definite collezioni standardizzate di texture per la valutazione delle prestazioni dei sistemi di riconoscimento e per la sintesi di immagini. I vari modelli di calcolo delle texture sono: il contrasto, granularità e direzione: preservano la percezione umana di somiglianza e distanza. le matrici di co-occorrenza: misurano le ricorrenze nelle combinazioni di luminosità dei punti. l’analisi dell’energia di texture: distingue le texture in base ad una misura di energia per configurazioni note. Tutti e tre i modelli si basano su proprietà e funzioni sviluppate in ambito del signal processing e hanno un fondamento teorico solido, anche se possono richiedere elaborazioni non banali. Nel contrasto, granularità e direzionalità possono essere calcolati in modo da conservare nella distanza la percezione umana di differenza (Tamura features). Nella matrice di co-occorrenza si descriveno le relazioni spaziali tra i vari livelli di luminosità dei punti dell’immagine, ovvero dato un intorno I di piccole dimensioni si calcola la frequenza con cui i livelli di grigio ricorrono nelle coppie di punti dell’intorno ed i livelli di grigio vengono sottocampionati per ridurre le dimensioni della matrice. In aggiunta, dalla matrice di co-occorrenza si traggono alcuni indicatori statistici sintetici, che caratterizzano il tipo di texture: energia, entropia, contrasto,
  • 6. 6 omogeneità, tendenza al clustering. Infine, nel calcolo dell’energia di texture, questo può essere rappresentato da misure di energia ottenute attraverso la convoluzione con kernel, che rappresenta i pattern caratteristici (level, edge, spot, wave, ripple). I kernel sono sottoposti a convoluzione tra loro ed il risultato viene applicato per convoluzione all’immagine. L’immagine così ottenuta è elaborata per calcolare l’energia nelle vicinanze di ogni punto per ogni tipo di kernel, questo discorso vale anche per i diversi tipi di texture. Content-based image retrieval tramite Forma [2], [3] La ricerca di immagini tramite la forma si basa sull’analisi della forma degli oggetti presenti in un’immagine, dove il concetto di “oggetto” è convenzionale, gli oggetti sono identificati da variazioni di luminosità ai contorni, solitamente non è possibile identificare i “veri” contorni degli oggetti e si può pre-elaborare l’immagine segmentandola in regioni distinte. Le interrogazioni sono dirette ad individuare: immagini contenenti oggetti di forma simile, immagini in cui è presente un oggetto descritto attraverso uno sketch, immagini che contengono forme con proprietà simili (es. allungate), immagini che contengono oggetti della stesa forma ma con prospettive e angolazioni. Nell’identificazione degli oggetti, i loro contorni presenti nell’immagine sono riconoscibili con certezza solo se non vi sono intersezioni e né occlusioni, questo perchè le differenze di colore possono introdurre falsi contorni e le somiglianze di colore o di luminosità possono mascherare i contorni più significativi. I modelli di calcolo utilizzati per l’image retrieval tramite la forma sono: le proprietà geometriche semplici: associano ad una regione un insieme di proprietà dei punti contenuti, il calcolo dei momenti invarianti dell’immagine: descrivono proprietà della distribuzione dei punti e quindi degli oggetti rappresentati, il calcolo dei descrittori di Fourier: i coefficienti descrivono l’apporto delle diverse frequenze lungo le direzioni in cui si sviluppano le forme di un’immagine e quindi permettono di “tracciarle”, il confronto di forme per deformazione: l’energia spesa per deformare una forma in un’altra è una misura della loro somiglianza. Nel primo caso, delle proprietà geometriche semplici, si prende in considerazione una data regione, identificata da un contorno e su di essa si possono calcolare alcune proprietà sintetiche, che sono: l’area della regione, la sagoma, in termini di minimo rettangolo, che include la regione (minimum bounding rectangle), o massimo rettangolo incluso (o altra forma, es. cerchio o ellisse), compattezza = perimetro2 / area, allungamento, definito come il rapporto tra la corda di lunghezza massima e la corda ad essa perpendicolare, scomposizione in forme geometriche standardizzate, quindi confrontabili facilmente. La forma di un oggetto (il suo contorno) può essere definita da un sistema di coordinate
  • 7. 7 polari (centroide e raggi), ed essere invariante rispetto a numerose trasformazioni (traslazione, rotazione, riflessione, ingrandimento/riduzione) e presentare delle limitazioni non trascurabili, cioè: solo oggetti connessi e compatti, il centroide deve essere interno, il contorno deve essere una funzione ad un solo valore (nessuna piega). Nel secondo caso, dei momenti invarianti dell’immagine, si prende un’immagine binaria f(x,y) e una regione R connessa di punti tali, che la funzione f(x,y)=1, il momento di ordine i,j della regione R può essere definto così: Mi,j(R) = Σ xi yi In particolare, M0,0(R) è l’area di R, i momenti di ordine maggiore descrivono come le regioni si dispongono nell’immagine. Dai momenti dell’immagine è possibile ottenere, per normalizzazione e composizione, funzioni che sono invarianti rispetto ad un certo numero di trasformazioni dell’immagine traslazione, riduzione/ingrandimento, deformazione lineare. Nel terzo caso, dei descrittori di Fourier, la trasformata di Fourier del contorno di un oggetto conserva informazioni sulla disposizione del contorno stesso, quindi sulla sua forma, dove i primi coefficienti descrivono le componenti a bassa frequenza, per cui la forma “a grandi linee” ed i coefficienti dei termini a frequenza più elevata descrivono i dettagli della forma. La trasformata di Fourier è invariante rispetto ad alcune trasformazioni dell’immagine, come: rotazione (si scarta l’informazione sulla fase), scala (si dividono i coefficienti per la componente continua), traslazione (deriva automaticamente dalla rappresentazione del contorno). Infine, come ultimo caso, il confronto di forme per deformazione, si ha che la somiglianza è misurata dall’energia necessaria per deformare i contorni di due immagini in modo tale da renderli uguali, infatti questo argomento verrà discusso nella sezione successiva come tecnica per il riconoscimento, ovvero il Template Matching Deformabile. Un tipico sistema di recupero di immagini, tramite somiglianza di forma, presuppone: una query by sketch: l’utente disegna una sagoma approssimativa di ciò che sta cercando nel database di immagini, la ricerca nel database avviene quindi tramite tecniche di indicizzazione e di riconoscimento provenienti dalla Computer Vision, l’output del sistema non si limita a dire cosa è stato o non è stato riconosciuto, ma deve fornire una lista di immagini ordinate per grado di somiglianza con la query.
  • 8. 8 3. Alcune tecniche di riconoscimento per i sistemi Content-based Image Retrieval [2], [3], [4], [5], [6], [9] [10] Alcune tecniche per il riconoscimento nei sistemi Content-based Image Retrieval, possono essere sinteticamente divise in due filoni, che sono: 1. l’approccio statistico, 2. il Template Matching. L’approccio statistico [2], [3], [11] Nell’approccio statistico si scelgono una serie di n caratteristiche (features) dell’apparenza di un oggetto, che siano facilmente misurabili. Generalmente si tratta di statistiche globali sui pixel appartenenti all’interno o ai bordi della sagoma dell’oggetto O ed è descritto tramite un punto in RN dato dal vettore V(O) delle n misurazioni delle sue features. La base di dati viene ordinato in base alla distanza tra lo sketch S e le immagini Oi in esso contenute: dist(V(Oi), V(s)) Alcuni esempi tipici di features possono essere l’area della figura, cioè il numero dei suoi pixel. La compattezza della regione, definita come il rapporto tra il quadrato del perimetro e l’area. L’allungamento (elongatedness) della regione, definito come il rapporto tra la lunghezza della corda di lunghezza massima e la lunghezza della corda ad essa perpendicolare. I coefficienti dell’espansione in serie di Fourier ottenuti interpretando la sagoma come fosse una funzione sinusoidale. La sagoma, infatti, è una curva chiusa di perimetro L, ed un suo generico punto può essere descritto dalle coordinate x(l) e y(l), 0 ≤ l ≤ L, da cui: φ(l) = x(l)+jy(l) dove φ(l) è una funzione periodica la cui espansione tramite serie di Fourier fornisce i coefficienti della codifica. Un esempio pratico di approccio statistico potrebbe essere il recupero di volti umani, ovvero dato un archivio di immagini (I1 , I2 , ...), ognuna rappresentante il volto di un individuo (in ”formato tessera”), si vuole recuperare, se esiste, l’immagine dell’individuo a cui appartiene una data, nuova immagine in input (Q). Anzitutto ogni immagine (del database o di query) processata dal sistema deve essere analizzata al fine di estrarne la parte rappresentante il volto (face detection). La rappresentazione delle features non sono altro che i valori di grigio dei pixel dell’immagine. Supponiamo per esempio che I sia una generica immagine processata dal sistema (o una sua sotto-finestra) dalle dimensioni n*m, allora I può essere rappresentata dalla concatenazione delle sue n righe: V(I)=(I11, I12, ... I1m, I21, I22, ... Inm)T dove V(I), a sua volta, può essere rappresentato da un punto in Rn*m . In questo caso il sistema di retrieval restituisce l’immagine più vicina al punto V(Q) (nearest neighbour). L’utilizzo della compressione avviene quando Rnxm é uno spazio troppo grande e perciò deve essere proiettato in uno spazio di dimensioni ridotte, chiamato face space. Tale proiezione avviene esaminando un insieme di immagini d’esempio (training set) al fine di stabilire quali sono le informazioni statistiche maggiormente discriminanti.
  • 9. 9 La Principal Component Analysis (PCA) è l’esempio più noto di tecnica di compressione, ovvero il vettore di features V1xnm viene rappresentato da un secondo vettore W di dimensioni Nx1, con N«nm. Il vettore W, pur essendo più piccolo rispetto a V, viene costruito in modo da mantenere la maggior parte dell’informazione statisticamente rilevante. Il feature space di dimensione N viene costruito esaminando il training set e scegliendo una nuova base ortonormale B di Rn*m tale che i vettori di B indichino, in ordine decrescente, le direzioni di massima varianza nel training set, ovvero in una base di dimensione N si selezionano soltanto i primi N elementi di B. Dato che per ogni individuo umano, rappresentato all’interno di una base di dati di volti, siano disponibili più di un’immagine, è possibile pensare di adottare delle tecniche di Machine Learning statistico per permettere al sistema di generalizzare l’apparenza di ogni individuo. Presa la persona P1 essa è rappresentata dalle immagini Ii1,Ii2,... nella base di dati e, quindi, dai punti Wi1,Wi2,... del face space. Le Reti Neurali, le Support Vector Machine o altre tecniche di apprendimento supervisionato possono pemettere al sistema di costruire le classi C1,C2,..., corrispondenti alle persone P1,P2,... . Ciascuna classe è ottenuta raggruppando opportunamente i punti del face space ed è rappresentata da una regione multidimensionale (non necessariamente connessa) del face space. La regione R1 corrispondente alla persona P1 è una generalizzazione degli esempi Wi1,Wi2,... ed è una rappresentazione delle possibili apparenze di P1. Quindi una nuova immagine Q, rappresentante una delle persone note, viene assegnata alla persona Pk se W(Q) appartiene a Rk. L’indicizzazione di una base di dati avviene secondo dei criteri, tali da rendarla efficiente nell’operazione di recupero on-line delle informazioni in essa contenute. Questa operazione è molto importante sopratutto se le dimensioni del database sono abbastanza critiche. I sistemi di Content-based Image Retrieval raramente permettono l’indicizzazione; un’importante eccezione sono gli approcci statistici ed è possibile se i dati possono essere rappresentati vettorialmente ed è possibile organizzare il database sfruttando le relazioni spaziali tra i vettori. Le tecniche più note si basano su strutture dati ad albero quali: il kd-Tree o l’R-Tree. La struttura dati più utilizzata è il kd-Tree, dove esso è un albero binario in cui ogni nodo è un punto k-dimensionale. Ogni nodo non foglia può essere pensato come implicitamente la generazione di un iperpiano scissio, che divide lo spazio in due parti, noti come sottospazi. I punti a sinistra di questo iperpiano rappresentano il sotto-albero sinistro di quel nodo e punti di destra dell’iperpiano sono rappresentati nel sotto- albero destro. La direzione dell’iperpiano viene fatta nel seguente modo: ogni nodo dell'albero è associato ad uno delle k- dimensioni, con l'iperpiano perpendicolare all'asse della dimensione stessa. Ad esempio, se per una particolare “frazione” dell’asse X è scelta, tutti i punti nel sotto- albero con valore x più piccoli rispetto al nodo, saranno visualizzati nel sotto-albero sinistro, mentre tutti i punti con valore x più grandi, saranno visualizzati nel sotto-albero destro. In tal caso, l'iperpiano sarebbe fissato dal valore x del punto, e la sua normale sarebbe l'unità dell’asse X. Quindi, supponiamo di voler indicizzare un insieme di vettori di features V1,...,VN, tali che Vi appartiene a Rk e Vi=(vi 1 ,...,vi k )T . Si sceglie, innanzitutto, la prima feature, corrispondente alla prima componente di ogni vettore e si
  • 10. 10 trova il valore f1, mediano rispetto a v1 1 ,v1 2 ,..,v1 N . L’uso del kd-Tree nella indicizzazione, fa sì che la radice dell’albero conterrà f1 e sarà associata all’elemento Vj=(f1,...). Nel sottoalbero a sinistra si memorizzeranno i vettori Vi tali che vi 1 ≤ f1 e nel sottoalbero destro gli altri. A livello 1 si sceglie la feature numero 2 e si calcola f2, e così via. Dopo aver utilizzato la feature k-esima, si ritorna ciclicamente a considerare la prima feature, finchè tutti gli elementi V1,...,VN siano stati assegnati a qualche nodo dell’albero. I vantaggi dell’approccio statistico sono quelli di permette l’indicizzazione della base di dati ed eventualmente di utilizzare tecniche di Machine Learning, mentre gli svantaggi sono quelli di avere uno scarso potere discriminante e di non permettere che l’oggetto d’interesse sia occluso o in contatto con altri oggetti nella scena. Il Template Matching [5] Nel confronto diretto di immagini, mediante distanza tra i vettori4 nello spazio, in generale non funziona per una serie di ragioni, fra cui: differenze di traslazione, rotazione, scala e prospettiva, deformazione e variabilità dei pattern, cambiamenti di illuminazione, presenza di rumore nelle immagini e utilizzo di tecniche di acquisizione diverse. Una soluzione, che viene spesso utilizzata, è il Template Matching in cui si costruiscono uno o più pattern modello (template) e li si “ricerca” all’interno dell’immagine, misurandone il grado di “somiglianza” (matching) in tutte le possibili posizioni. 4 Un vettore, con n=WxH dimensioni, rappresenta un’immagine in scala di grigio. Del Template Matching esistono due tipi di panoramiche principali: 1. il Template Matching Rigido, 2. il Template Matching Deformabile. Il Template Matching Rigido [7], [8] Il template T è costituito da un oggetto rigido, dove normalmente è una piccola immagine in formato raster: il confronto avviene direttamente fra i pixel; tuttavia, a seconda dell’applicazione, potrebbe essere più efficace eseguire il template matching dopo aver estratto determinate feature (es. gli edge, oppure l’orientazione del gradiente). Il template T viene sovrapposto a I in tutte le possibili posizioni (rispetto agli assi x e y), ma, a seconda dell’applicazione, può essere anche necessario operare delle trasformazioni (ad es. ruotarlo e/o scalarlo). Per ogni istanza Ti 5 , il grado di similarità viene solitamente calcolato massimizzando la correlazione con la porzione di immagine I “coperta” da Ti. Normalmente i template hanno dimensioni inferiori all’immagine ed analogamente alla convoluzione, è necessario decidere come comportarsi sui pixel di bordo (ossia dove Ti non è completamente contenuto in I). Gli svantaggi di questa tecnica si hanno nella complessità computazionale, in quanto il numero di operazioni richieste cresce linearmente con il numero di istanze e con il numero di pixel di I e T (e quindi quadraticamente rispetto al lato di I e di T). In pratica, per applicazioni real-time, l’approccio di base è raramente applicabile, in aggiunta risulta essere difficile la gestione dei pattern deformabili, ad esempio: per la localizzazione di un componente elettronico è necessaria avere l’invarianza per posizione, rotazione, 5 Una generica istanza di T ottenuta con una data trasformazione.
  • 11. 11 scala e aspect ratio (lunghezza/altezza) e ciò implica un enorme numero di istanze. Il Template Matching Deformabile [7] Gli approcci di questo filone si basano sul tentativo di far ”combaciare” (allineare) lo sketch disegnato dall’utente con (una porzione de) l’immagine attualmente analizzata dal sistema. Tale tentativo di allineamento avviene deformando progressivamente lo sketch iniziale per adattarlo come se fosse un “elastico” alle silhouette delle immagini in memoria. Il processo iterativo termina o quando si raggiunge una sovrapposizione accettabile tra lo sketch deformato e l’immagine o quando il grado di deformazione applicato allo sketch supera un certo valore massimo. Un caso molto particolare è se si considera l’Elastic Template Matching (Del Bimbo- Pala), ove tutte le immagini vengono inserite nella base di dati del sistema nella forma contenente solo gli edge. L’utente disegna il suo sketch usando un tool grafico e la sagoma finale viene rappresentata con una spline codificata mediante i suoi punti di controllo: P=(p1,...,pn), pi=(xi,yi). Se il matching tra lo sketch e l’immagine candidata è elevata, la procedura termina qui. Altrimenti, i vari pi vengono “perturbati” in modo da modificare lo sketch e re-iterare la comparazione. Più esattamente, il grado di matching tra lo sketch e l’immagine è definito da: M(P) = C(P) - D(P), dove C e D sono delle funzioni, rispettivamente, del grado di sovrapposizione e di deformazione dello sketch e: D(P) = S(P) + B(P), essendo S e B funzioni del grado di tensione e di curvatura dello sketch. Per trovare i massimi del matching, bisogna cercare un massimo (locale), ovvero tutti quei punti in cui il gradiente (∆M(P)) si annulla ∆M(P)=0. Il problema dei massimi lo si può risolvere analiticamente quando ∆M è sufficientemente semplice, ma nel caso in cui ∆M non è semplice da risolvere bisogna ricorrere ad un metodo iterativo. Nel metodo iterativo si deve partire da una soluzione valida, P0, e si procede “pertubando” P. I passi da seguire sono i seguenti: 1. P’ := P + δP 2. P := P’ se M(P0) > M(P). Un’altro metodo è quello del gradiente ascendente, in cui si modificano progressivamente i pi nella direzione di crescita massima ottenuta, derivando M rispetto a P: P(k+1)=P(k)+∆M(P(k)). Qualsiasi sia la tecnica di ricerca dei massimi adottata, la necessità di una soluzione iniziale P0 (lo sketch sovrapposto ”manualmente” sull’immagine) porta ad una mancata indipendenza da roto-traslazioni e scalamenti. Ciò costringe a fornire le immagini del database di una segmentazione manuale di tutti i possibili oggetti di interesse (ad esempio tramite il minimo rettangolo includente), oppure a iterare il metodo per valori iniziali diversi di P0.
  • 12. 12 4. Il recupero dei risultati [3] Il recupero dei risultati si basa solo sulla similitudine di solo features visuali e ciascuno di tipo di esso tende a catturare soltanto un aspetto dell’immagine, per questo si basa sulla importanza dei feedback, il quale aumenta attivamente l’apprendimento, informando il sistema che la ricerca è andata a buon fine oppure no. Il relevance feedback, una volta che i risultati iniziali vengono presentati all’utente, permette allo stesso di inserire la sua valutazione riguardo alla rilevanza di uno o più documenti ritrovati. La valutazione preliminare viene utilizzata per riformulare la interrogazione, in aggiunta, questa tipo di tecnica produce un processo interattivo, possibilmente a più passi. 5. Conclusioni Tutti i sistemi Content-based image retrieval dispongono di un’intelligenza artificiale e di una soluzione automatica per una ricerca efficiente di immagini, la maggioranza delle tecniche correnti si basano sulle features di basso livello. In generale, ciascuna di esse tende a catturare solo un aspetto della proprietà dell’immagine. In conclusione, gli utenti sono interessati a quelli che sono semanticamente e percettivamente immagini simili, e i risultati che restituiscono gli attuali sistemi, che si basano sulle features di basso livello, sono generalmente insoddisfacenti e spesso impraticabili. 6. Riferimenti [1]. Elaborazione delle Immagini Digitali. Autori Rafael C. Gonzales, Richard E. Woods. Editore Pearson Prentice Hall, terza edizione 2008 (versione italiana) – edition 2008. [2]. Based Image Retrieval at the End of Early Years. Autori Arnold W.M. Smeulders, Senior Member, IEEE, Marcel Worring, Simone Santini, Member, IEEE, Amarnath Gupta, Member, IEEE, e Ramesh Jain, Fellow, IEEE. [3]. Fundamentals of Content-based Image Retrieval. Autori Dr. Fuhui Long, Dr. Hongjiang Zhang e Prof. David Dagan Feng. [4]. Riconoscimento Automatico di oggetti in immagini digitali. Autore Dr. Ever Sangineto. Slides della lezione integrativa del corso “Visione Artificiale”. [5]. Approcci Model-Based al Riconoscimento di oggetti. Autore Dr. Ever Sangineto. Slides della lezione integrativa del corso “Visione Artificiale”. [6]. Image Retrieval. Fonte Wikipedia. http://en.wikipedia.org/wiki/Image_retrie val [7]. Elastic Matching. Autori Alberto Del Bimbo, Member, IEEE, and Pietro Pala, Member, IEEE. [8]. Image retrieval tramite forma. Autore Dr. Ever Sangineto. Slides della lezione del corso “Metodi di estrazioni delle informazioni dal web”. [9]. Multimedia Retrieval. Autore Dr. Ever Sangineto. Slides della lezione del corso “Metodi di estrazioni delle informazioni dal web”. [10]. Annotazione automatica di materiale multimediale. Autore Dr. Ever Sangineto. Slides della lezione del corso “Metodi di estrazioni delle informazioni dal web”. [11]. Range Searching using Kd-Tree. Autore Hemant M. Kakde.