250 likes | 347 Views
Efficient Region- Based Image Retrieval. di Roger Weber e Michael Mlivoncic Swiss Federal Institute of Technology (ETH) Presentazione di Laura Galli, Mauro Sacchetti, Michele Samorani Relatore: Michele Samorani Sistemi Informativi LS a.a 2004-05.
E N D
Efficient Region- Based Image Retrieval di Roger Weber e Michael Mlivoncic Swiss Federal Institute of Technology (ETH) Presentazione di Laura Galli, Mauro Sacchetti, Michele Samorani Relatore: Michele Samorani Sistemi Informativi LS a.a 2004-05
CBIR vs RBIRcontent-based vs region-based image retrieval • CBIR considera l’immagine nel suo insieme (figura 1) • RBIR considera l’immagine come un insieme di regioni, quindi il sistema esegue innanzitutto una segmentazione Immagine R4 R1 Immagine segmentata R2 R3
Segmentation • CBIR definisce e calcola un vettore di features su tutta l’immagine (f) • RBIR definisce lo stesso vettore di features per l’intera immagine, ma calcola un diverso vettore per ogni regione (f1,f2,…,fn) f f4 f1 f2 f3
CBIR block view vergine_rocce.jpg maria.jpg parser parser f1 f2 dissimilarity function d
RBIR block view vergine_rocce.jpg maria.jpg segmentation segmentation R11,R12,R13,R14 R21,R22,R23,R24 parser parser f11,f12,f13,f14 f21,f22,f23,f24 dissimilarity function d
Questions • Risponderemo quindi in ordine alle seguenti domande : • come calcolare la distanza fra due immagini (i.e fra due insiemi di regioni) ? • quali tipi di query possiamo realizzare con una tecnica di tipo RBIR ? • quali tecniche usare per velocizzare il processo di ricerca ?
Dissimilarity function • La prima domanda a cui rispondere ed anche il primo problema da affrontare risultano essere la definizione del criterio di “dissimilarity” (distance) tra due immagini, i.e tra due insiemi di regioni • Risposta: utilizziamo l’approccio del sistema Windsurf in quanto questo risulta essere il migliore dal punto di vista della efficacia
d ( R , R ) , , Q i O j l d ( R , R ) 1 , 1 2 , 2 d ( R , R ) 1 , 2 2 , 1 d ( R , R ) 1 , 4 2 , 4 d ( R , R ) 1 , 3 2 , 3 matching regions… Supponendo di avere una funzione che calcola la distanza tra due regioni i.e tra due vettori… La distanza fra la regione i-esima dell’immagine Q e la regione j-esima dell’immagine Ol è la distanza fra due vettori R1,1 R1,2 R2,1 R2,2 ( ) R1,3 R1,4 R2,3 R2,4
Lo scopo è minimizzare la somma delle distanze selezionate Al matching R1,1-R2,2 corrisponde la distanza matrix view • Considerando tutti i possibili matching, le distanze fra le varie regioni formano una matrice R2,1 R2,2 R2,3 R2,4 La distanza è (5+1+3+3)/4=3 R1,1 R1,2 R1,3 R1,4
an optimization problem Il problema è risolubile in tempo polinomiale O(n3) mediante l’algoritmo ungherese • Volendo modellare matematicamente il nostro problema otteniamo : • una funzione obiettivo • dei vincoli di matching, ovvero di assegnamento { s.t
segmentation cardinality • Il numero di regioni in cui viene segmentata una immagine non è costante… NOTA. La matrice delle distanze non è necessariamente quadrata …e il problema LAP…?! R2,1 R2,2 R2,3 R2,4 R1,1 R1,2 R1,3
penalties(1) Rendiamo la matrice quadrata aggiungendo righe o colonne R2,1 R2,2 R2,3 R2,4 R2,1 R2,2 R2,3 R1,1 R1,1 R1,2 R1,2 R1,3 R1,3 R1,4
How to fix penalties ? • Rispondiamo ora alla seconda domada : quali tipi di query possiamo indirizzare con una tecnica RBIR ? • Gestendo opportunamente i valori delle penalità è possibile realizzare 3 diversi tipi di query…
Query types : similarity • Similarity : l’utente seleziona una immagine query e cerca delle immagini nel db con un numero simile di regioni simili Le penalità (p1 e p2) sono uguali per garantire la simmetria della funzione distanza
Non dobbiamo penalizzare immagini con più regioni della query: p1=0 Query types : contains • Contains : l’utente cerca immagini che contengono l’immagine query Penalizziamo immagini con meno regioni della query: p2>0 R2,1 R2,2 R2,3 R2,4 R2,1 R2,2 R2,3 R1,1 R1,1 R1,2 R1,2 R1,3 R1,3 R1,4
d = > 1 O ([] , R ) p 0 1 j d = = Q 2 ( R , [] ) p 0 i 2 Query types : part-of Penalizziamo immagini con più regioni della query • Part-of : l’utente cerca immagini contenute nella query Non dobbiamo penalizzare immagini con meno regioni della query
K-NN with SCAN hungarian O(r3) hungarian O(r3) O(Nr3) hungarian O(r3) hungarian O(r3) hungarian O(r3) hungarian O(r3)
Multi-step algorithms • Gli algoritmi multi-step seguono tutti lo stesso principio di base : • in un primo step una funzione approssimata (più rapida da calcolare rispetto alla funzione originale) elimina alcuni oggetti dalla ricerca • gli oggetti rimanenti sono chiamati candidati
“promettente” rispetto agli UB già calcolati Primo step • Per ogni immagine del DB, si calcola il LB sulla distanza tra questa e la query • Se questo LB è promettente • Si calcola anche UB • Si inserisce l’immagine nella lista dei candidati Secondo step • Sui candidati verrà applicato un algoritmo di tipo distance browsing • Verranno restituiti i primi k
Lower bounding function • A lower bound for our distance function the lower bound is (5+4+4+p1)/4 and the complexity is O(r2) R2,1 R2,2 R2,3 R2,4 R1,1 R1,2 R1,3
Upper bounding function • An upper bound for our distance function R2,1 R2,2 R2,3 R2,4 the upper bound is (5+6+4+p1)/4 and the complexity is O(r2) R1,1 R1,2 R1,3
Conclusioni • Metodo efficiente • Il primo step scarta fino al 99.5 % delle immagini totali • Contains e part-of spesso non sono efficaci • Dipende dalle penalità • Dipende dalla segmentazione
Demo(Pre-query) • Segmentazione in 4 o 5 regioni delle immagini contenute in una cartella R1 R2 R5 R3 R4
Demo(Pre-query) • Per ogni regione, viene calcolato un vettore (features) con la tecnica degli istogrammi • R,G e B vengono partizionati in n (ad esempio 2) regioni (di colori!) • Si scandiscono tutti i pixel e per ogni pixel analizzato si incrementa un componente del vettore
Demo(query-time) • L’immagine query (partizionata in 4 o in 5 regioni) viene analizzata: viene calcolato il vettore di ciascuna regione • Viene lanciato l’algoritmo visto e vengono trovate le k immagini NN