capitolo 9 - indici multimediali

Upload: tony-stark

Post on 07-Apr-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/4/2019 Capitolo 9 - Indici Multimediali

    1/12

    Capitolo 9Indici Multimediali

    IntroduzioneIl termine indice un termine che pu avere molteplici significati, ma nellambito multimediale sonodue le definizioni che possono interessare particolarmente:

    1. una lista ordinata in ordine alfabetico in funzione di un particolare dato;2. E un oggetto che permette il puntamento e laccesso a un particolare contenuto, come nel

    caso de libri quando si fa riferimento allindice analitico.

    La definizione piu corretta per la prima presa in considerazione. In generale un indice ha unastruttura ad albero, ossia un grafo connesso formato da nodi e frecce che collegano i livelli dellalbero (

    si parla infatti di alberi k-ary).

    Un albero di ordine k un albero bilanciato (tutti i nodi allo stesso livello) che per ogni nodo possiede knodi figli, e la complessit dellalbero . Il problema che alberi di questo tipo devonoessere ribilanciati ogni qual volta si effettuano operazioni di aggiornamento delle informazionidellalbero, e la complessit aumenta fino ad arrivare allordine O(N)

    Si utilizzano dei B- Tree che sono degli alberi bilanciati dove ogni nodo pu ammettere al massimo o N oN/2 figli.

    Spazi K - Dimensionali

    Ricordiamo inoltre che i dati multimediali sono dati definiti in un o spazio bidimensionale, mentre iclassici dati sono monodimensionali. In generale per si ha che data un informazione a k caratteristicheessa definita in uno spazio k dimensionale.Dunque le query definibili su uno spazio di questo tipo possono essere di tre tipi:

    Matching esatto: si ricerca un punto esatto dello spazio, che pu esserci o meno; Matching nelle vicinanze: si ricerca il punto piu vicino a un punto dato; Matching regionale: si ricerca un intera regione di punti.

  • 8/4/2019 Capitolo 9 - Indici Multimediali

    2/12

    Linserimento di un nuovo oggetto nello spazio comporta una divisione dello spazio k dimensionale inregioni distinte. Linserimento delloggetto avverr in una di queste regioni e se la regione piena allora

    si effettua una nuova divisione della regione.

    Conversione dello spazio

    Un metodo pi efficiente per quello della conversione dello spazio K Dimensionale in unomonodimensionale, pagando pero una piccola perdita di informazione. Una prima tecnica la Spacefillingcurves, che trasforma lo spazio da K a monodimensionale mantenendo punti che erano vicininello spazio K Dimensionale anche in quello Monodimensionale.

    In generale la trasformazione applicata una linearizzazione di una matrice k dimensionale. Se k = 2possiamo introdurre i seguenti metodi di trasformazione:

    Ordinamento di riga/colonna: comporta la linearizzazione degli elementi per riga o colonna, glielementi vengono inseriti allinterno di un vettore o un indice, presenta problemi in accesso ai

    dati quando si accede per colonna ( si passa da 0 a 8)

    Ordinamento prima riga/ prima colonna: presenta una curva di ordinamento diversa dal metodoprecedente, a forma rettangolare. Anche in questo casi si evidenziano problemi in colonna similial metodo precedente

  • 8/4/2019 Capitolo 9 - Indici Multimediali

    3/12

    Diagonale di Cantor: risolve il problema degli accessi con una disposizione diversa di elementivicini:

    Curva di Hilbert o curva Z: simile a quella di Cantor ma con disposizione di elementi tali che lacurva abbia una forma a Z.

    Indicizzazione bidimensionale

    Cerchiamo di definire un metodo di indicizzazione ritornando al concetto di feature di un immagine.Supponiamo di voler considerare uno spazio N dimensionale con k punti distinti su cui definita unafunzione di distanza.

    RAGIONAMENTO BASE

    Allora se possiamo attribuire a ogni punto dello spazio una feature di un oggetto, allora trovare unoggetto simile vuol dire trovare un oggetto che abbia un punto associato alla stessa feature con laminore distanza dal punto a cui associata quella feature per loggetto in questione.

    Nel caso di uno spazio bidimensionale possiamo pensare di voelr dividere come vogliamo tale spaziocon divisioni di qualsiasi forma ( rettangolari, quadrate o triangolari o arbitrarie.). Se la dimensionedello spazio 2 possiamo definire su un immagine un meccanismo di indicizzazione basato su alberibidimensionali.La struttura di ogni elemento dellalbero bidimensionale la seguente:

  • 8/4/2019 Capitolo 9 - Indici Multimediali

    4/12

    INSERIMENTO

    Dunque ogni elemento dellalbero possieder due valori, un tag che identifica lelemento e due

    collegamenti, uno sinistro e uno destro. Per ogni nodo N e M distinti valgono le seguenti regole diinserimento,se il livello pari:

    Se M.XVAL < N.XVAL allora il collegamento a sinistra; Se M.XVAL >= N.XVAL allora il collegamento a destra;

    Se il livello dispari si fanno considerazioni sul valore Y e si stabilisce che:

    Se M.YVAL < N.YVAL allora il collegamento a sinistra; Se M.YVAL >= N.YVAL allora il collegamento a destra;

    dove M il nodo radice.

    CANCELLAZIONE

    La cancellazione risulta essere molto semplice se lelemento da eliminare una foglia, ma complesso

    se un elemento intermedio, poich potrebbe avere dei figli da gestire. Dunque si deve cercare unelemento che possa sostituire quello in cancellazione.

    Lalgoritmo di cancellazione il seguente:

    Si trova un candidato; Si sostituiscono i valori nel nodo da cancellare; Si cancella il vecchio candidato.

    Analizziamo ora la procedura per la determinazione del candidato R. Se dividiamo lalbero in duesottoalberi TL e TR per lalbero TL:

  • 8/4/2019 Capitolo 9 - Indici Multimediali

    5/12

    se li livello dispari M.XVAL < R.XVAL; se li livello pari M.YVAL < R.YVAL;

    mentre per il sottoalbero TR si ha che:

    se li livello dispari M.XVAL >= R.XVAL;

    se li livello pari M.YVAL >= R.YVAL;

    Indicizzazione quadtree

    Il meccanismo di indicizzazione quadre un meccanisco ad albero dove ogni nodo dellalbero definisce

    una regione rettangolare. La radice rappresenta una regione vuota e il quadrante rettangolare divisoin quattro sottoaree che definiscono quattro figli per ciascun nodo dellalbero. Dunque un elemento

    dellalbero sar strutturato in questo modo:

    Dove:

  • 8/4/2019 Capitolo 9 - Indici Multimediali

    6/12

    X e Y sono i valori che per un nodo radice identificano la regione vuota di partenza; NW,SW,SE e NE sono i 4 figli corrispondenti alle sottoregioni:

    Linserimento tra elementi successivi avviene mediante le sottoregioni, in funzione del punto cheidentifica la radice o una sottoregione.

    Algoritmo di inserimento PT_insert(P,R)

    Funzione PT_COMPARE(P,R)

  • 8/4/2019 Capitolo 9 - Indici Multimediali

    7/12

    CANCELLAZIONE

    Il meccanismo di cancellazione un meccanismo che pu essere semplice se il nodo che si vuolecancellare non ha riferimenti ad altri nodi (non ha figli), mentre problematico a seconda dellespecifiche situazioni, dato che per ogni situazione abbiamo bisogno di adottare una specifica soluzione.

    SITUAZIONE 1Problema: Sia N un punto figlio di N radice. N non ha figli.Vogliamo cancellare N. Soluzione: Copiamo N in N e cancelliamo N.SITUAZIONE 2Problema: Sia N un punto figlio di N radice. N ha un solo figlio .Vogliamo cancellare N. Soluzione:Cancelliamo il figlio temporaneamente e copiamo N in N e cancelliamo N.Poi reinseriamo ilfiglio.

    Possono verificarsi altre situazioni specifiche che si risolvono sulla stessa linea condotta in queste duesoluzioni: cancellazione temporanea dei figli e copia di nodi in altri nodi, e reinserimento dei figli.

    Algoritmi di ricerca dei punti

    K NN SearchLalgoritmo di ricerca K NN permette di trovare i K punti alla minima distanza da un punto Q dato iningresso. Supponiamo di voler considerare K = 1. Siamo dunque interessati alla ricerca del punto piuvicino ad un punto fornito in ingresso.

    Definito dunque uno spazio bidimensionale (caso particolare) e definito su di essa una funzione didistanza lalgoritmo procede secondo questi step

    STEP 1 : Si definiscono due parametri: bestdist = +inf e bestdist = NULL;

    STEP 2: si ispeziona la distanza a partire dalla radice, mantenendo sempre aggiornato il parametrobestsol con il punto a distanza piu piccola e bestdist con tale distanza, ricordando che punti a distanzamaggiore dalla distanza bestdist vengono scartati;

    STEP 3: il punto con la minor distanza il punto cercato.

    IMPORTANTE

    Tale algoritmo reiterabile anche per K valori distinti; basta infatti considerare un array di soluzioni eprendere le k soluzioni a distanza minima dal punto in ingresso.

  • 8/4/2019 Capitolo 9 - Indici Multimediali

    8/12

    Range SearchSi ricercano tutti i punti di uno spazio in funzione del punto in ingresso fornito Q e un certo raggio R.Tutti i punti che vengono scartati sono tutti quelli al di fuori dellimmaginaria regione centrata nel puntoQ e raggio R,anche se la condizione di scarto molte delle volte si modifica leggermente ai bordi.

    La valutazione sempre in funzione della funzione di distanza.

    Problemi degli alberi quadtreeUn problema sostanziale degli alberi quadtree che il processo di cancellazione di un nodo moltolento e anche i meccanismi di ricerca di un dato nodo richiedono una complessit molto elevata.

    Alberi R - TreeSupponiamo di voler considerare uno spazio k dimensionale. Una regione in uno spazio k dimensionale pu essere definito come linsieme delle disuguaglianze

    Dove ogni immagine dunque pu essere rappresentata come una regione, invece di un insieme dipunti, come nel caso quadtree.

    In tale spazio k dimensionale si definiscono gli alberi R Tree, generalizzazione degli alberi B Tree,dove ogni nodo ammette regioni bidimensionali.Come nel caso dei B Tree ogni nodo possiede minimoN/2 rettangoli e un massimo di N rettangoli interni e tutte le foglie si trovano allo stesso livello.

    La radice rappresenta lo spazio vuoto, e per ogni nodo la regione del nodo rappresenta il contorno deirettangoli compresi allinterno.

    IMPORTANTE

    Diversamente dal B Tree, lR Tree permette di sovrapporre rettangoli. Nel caso in cui csovrapposizione si generano due regioni differenti e la radice o il nodo in questione di dividono.

  • 8/4/2019 Capitolo 9 - Indici Multimediali

    9/12

    Un fenomeno particolare linserimento di un nuovo rettangolo allinterno di una regione. Taleinserimento richieder un ulteriore split delle regioni.Ci chiediamo dunque: in che modo andremo adividere di nuovo la radice ?Possiamo dividere la radice in due modi:

    In modo da ridurre la sovrapposizione delle regioni; In modo da ridurre larea totale.

    Il primo meccanismo opera una suddivisione:

    che non efficiente in fase di ricerca.

    Il secondo meccanismo invece:

  • 8/4/2019 Capitolo 9 - Indici Multimediali

    10/12

    comporta un accesso multiplo alle regioni in fase di ricerca e gli inserimenti successivi comportano unaricerca della regione corretta e una suddivisione se questa piena. Dunque vogliamo rimuovere lesovrapposizioni che creano comunque problemi.Tale problema viene risolto con gli R+ - Tree che eliminano le sovrapposizioni slittando i rettangoli dainserire tra due regioni adiacenti, e tale soluzione si dimostrata lavorare bene per le operazioni di

    ricerca e inserimento.

    Meccanismi di ricerca in R Tree

    Si procede allo sttesso modo dei B Tree, con algoritmi NN di ricerca. Sorge per un problema:

    Bisogna fissare una definizione per la distanza fra rettangoliAbbiamo due definizioni:

    1. Si fissano punti in due rettangoli R e R e si analizza la distanza euclidea tra essi;2. Si considerano le aree di intersezione o unione.

    Scelto uno dei criteri di distanza si pu porcedere con lalgoritmo classico di ricerca NN , fissandobestsol e bestdist come abbiamo fatto in precedenza, e applicando lo stesso criterio di scarto.

    bestsol = d

  • 8/4/2019 Capitolo 9 - Indici Multimediali

    11/12

    X Tree

    Abbiamo visto che ogni immagine pu essere ridotta a un rettangolo. Dunque possiamo pensare dioperare un altro processo su un rettangolo R, quello di segmentazione. La segmentazione infattipermette di dividere un rettangolo in tanti sottorettangoli.

    Definiamo anche un operatore particolare: loperatore H, detto di omogeneit che applicato asottorettangoli vero se quel sottorettangolo appartiene a una regione, altrimenti falso.

    Il processo di segmentazione gode delle seguenti propriet:

    1. Lunione dei sottorettangoli definisce limmagine;2. Lintersezione dei sottorettangoli nulla;3. L 4. L

    Fatta questa premessa siamo in grado di definire gli X Tree. Un X- Tree ha la stessa struttura di un R Tree ma introduce il concetto di supernodo,nodo di multiple dimensioni di k, necessario perleliminazione di un overlap tra rettangoli.

    Quando sorge il problema dellinserimento, come in figura

    Si raddoppia il nodo creando dunque un supernodo 2K

  • 8/4/2019 Capitolo 9 - Indici Multimediali

    12/12