Basi di dati multimediali - PowerPoint PPT Presentation

About This Presentation
Title:

Basi di dati multimediali

Description:

Come si fa a capire che un immagine contiene una certa persona Query un linguaggio di query per MMDBMS deve avere caratteristiche particolari query processing ... – PowerPoint PPT presentation

Number of Views:102
Avg rating:3.0/5.0
Slides: 218
Provided by: catania
Category:

less

Transcript and Presenter's Notes

Title: Basi di dati multimediali


1
Basi di dati multimediali
2
Basi di dati multimediali
  • Nuove applicazioni richiedono la rappresentazione
    e la gestione di dati non tradizionali
  • testi arbitrari
  • immagini
  • audio
  • video
  • dati tradizionali (relazionali, orientati ad
    oggetti)

3
Basi di dati multimediali
  • Un sistema di gestione dati multimediali (MMDBMS)
    permette la rappresentazione e la gestione di
    diversi tipi di dati, potenzialmente
    rappresentati secondo diversi formati
  • Un MMDBMS deve permettere di
  • rappresentare dati corrispondenti a diverse
    tipologie di media
  • interrogare dati rappresentati in formati diversi
    in modo uniforme
  • interrogare dati in formati diversi
    simultaneamente nel contesto della stessa query
  • recuperare gli oggetti dal supporto su cui
    risiedono, compatibilmente con il tipo di media
    che rappresentano

4
MMDBMS aspetti da considerare
  • Rappresentazione
  • i dati sono tipicamente non strutturati
  • si vuole analizzare il contenuto
  • come è possibile rappresentare il contenuto di un
    documento multimediale?
  • Come si fa a capire che unimmagine contiene una
    certa persona
  • Query
  • un linguaggio di query per MMDBMS deve avere
    caratteristiche particolari
  • query processing deve analizzare il contenuto
    degli oggetti

5
MMDBMS aspetti da considerare
  • Memorizzazione
  • quali supporti utilizzare? (dischi, CD-ROM,
    nastri)
  • che operazioni supportare
  • non solo lettura/scrittura ma anche (video/audio)
  • playback
  • rewind
  • fast foward
  • pause
  • Indici
  • come indicizzare gli oggetti multimediali?
  • Analizzeremo solo i primi due aspetti

6
Rappresentazione
  • Un oggetto multimediale in genere può essere
    composto da diversi sotto-oggetti, ciascuno
    relativo ad un particolare media
  • le relazioni tra oggetti e sotto-oggetti possono
    essere modellate utilizzando un approccio
    orientato ad oggetti o relazionale ad oggetti
  • rimane il problema di come rappresentare il
    contenuto di un oggetto corrispondente ad un
    singolo media

7
Rappresentazione
  • Nelle basi di dati relazionali ad oggetti, i dati
    multimediali vengono memorizzati secondo due
    distinte modalità
  • internamente al sistema come valori non
    strutturati in campi LOB (Large Object)
  • esternamente al sistema, mantendo allinterno del
    DBMS solo il riferimento alla posizione del file

8
Rappresentazione
DBMS
Oggetto multimediale
LOB
Oggetto multimediale
riferimento
9
Rappresentazione - LOB
  • Facilitano la memorizzazione di dati multimediali
    (documenti, immagini, audio, ecc.)
  • Possono contenere fino a 4GB di dati (di solito i
    RDBMS non vanno oltre 2-32KB)
  • Il DBMS non associa alcuna interpretazione a
    questi dati

10
Rappresentazione - LOB
  • Si distinguono in
  • BLOB (Binary Large Object)
  • CLOB (Character Large Object)
  • Supportati da SQL-99
  • Sono fisicamente memorizzati esternamente alle
    tabelle ma internamente al DB (comportamento
    transazionale)

11
Rappresentazione - ORDBMS
  • Gli ORDBMS forniscono inoltre nuovi tipi di dato
    complessi che supportano
  • la rappresentazione del dato multimediale
  • nuovi metodi operatori
  • metodi per lottimizzazione di interrogazioni

12
Rappresentazione - ORDBMS
  • Illustra/Informix ? DataBlade
  • IBM ? Database Extender
  • Oracle ? Oracle Intermedia
  • Librerie fornite da terze parti

13
Rappresentazione
  • In entrambe le soluzioni di rappresentazione
    introdotte, gli oggetti sono completamente non
    strutturati
  • per poterli interrogare in modo ragionevole, è
    necessario sovraimporre a ciascun oggetto una
    rappresentazione concettuale
  • la rappresentazione concettuale è costituita da
    un insieme di dati strutturati che descrivono
    loggetto multimediale (surrogato) dal punto di
    vista della struttura e del contenuto semantico
  • ogni oggetto dello stesso tipo sarà descritto
    dallo stesso tipo di surrogato
  • il surrogato del documento non descrive
    pienamente il contenuto informativo del documento
    ma costituisce una sua sintesi
  • i surrogati rappresentano gli oggetti sui quali
    definire le tecniche di indice

14
Rappresentazione
  • Spesso il surrogato si ottiene associando a
    ciascun oggetto un insieme di attributi
  • due tipi di attributi
  • descrittivi
  • associano informazioni descrittive (relazionali)
    a ciascun oggetto
  • vengono associati manualmente alloggetto
  • content-based (anche chiamati features)
  • associano informazioni relative al contenuto
  • vengono estratti direttamente dal sistema
  • entrambi i tipi di attributi si possono
    interpretare come una sorta di metadati
  • i metadati associati ad un documento multimediale
    dipendono dal tipo di media considerato

15
Esempio
Attributi descrittivi nome Villa
Medici localitàRoma
Features forma
16
Rappresentazione
Generazione metadati (automatica manuale)
Oggetti multimediali
Features attributi
I sistemi mettono a disposizione funzionalità
per estrarre feature e per utilizzare tali
feature nel contesto delle interrogazioni
17
Rappresentazione
  • Conseguenza
  • i documenti multimediali potranno essere
    confrontati solo rispetto agli attributi e alle
    feature
  • feature uguali non sempre si riferiscono ad
    oggetti uguali
  • Esempio
  • si puo riferire sia ad una villa che ad
    unindustria

18
Query
  • Due aspetti
  • definizione caratteristiche linguaggio di
    interrogazione
  • query processing
  • è necessario stabilire
  • approccio generale allesecuzione delle query
  • aspetti che devono essere supportati

19
Idea di base query processing
Features attributi
Oggetti multimediali
  • La query viene eseguita sui metadati (attributi
    features)
  • dai metadati si risale ai documenti originali
  • i documenti originali vengono restituiti
    allutente

20
Aspetti da supportare
  • Le query devono potere essere eseguite su diversi
    tipi di media contemporaneamente
  • devono considerare attributi e features
  • devono supportare query per similitudine
  • devono associare un valore di rilevanza ad ogni
    oggetto restituito
  • devono poter essere pesate
  • devono supportare query spazio-temporali

21
Attributi e feature
  • Le query interrogano gli oggetti multimediali
    considerando gli attributi e le feature ad essi
    associati
  • Esempio ritrova tutte le immagini di abitazioni
    importanti in Liguria
  • assumo di avere estratto le forme dalle immagini
  • assumo di avere associato informazione
    descrittiva (luogo, tipo abitazione)

22
Query per similitudine
  • Poiché il contenuto degli oggetti viene espresso
    attraverso features e poiché le feature non
    rappresentano pienamente il contenuto semantico
    di un oggetto, le condizioni di selezione sugli
    oggetti multimediali non sempre sono certe
  • ciò significa che le condizioni non sono in
    generale condizioni di uguaglianza ma di
    similitudine
  • le condizioni in genere sono verificate in una
    certa misura, data dalla similitudine tra ciò che
    stiamo cercando e ciò che abbiamo trovato

23
Query per similitudine
  • il linguaggio deve permettere di esprimere query
    di questo tipo
  • il query processing deve essere in grado di
    supportare tali tipi di query
  • Query determina tutte le immagini in cui appare
    una certa persona, presente in una specifica foto
  • difficilmente verranno restituite tutte le
    immagini che contengono questa persona
  • molto probabilmente verranno trovate anche
    immagini in cui compaiono persone che, per
    qualche motivo (dipende dalle feature
    considerate) assomigliano alla persona cercata

24
Ranking
  • Una conseguenza della necessità di eseguire query
    per similitudine è quello di decidere i criteri
    di rilevanza di un oggetto rispetto ad una
    interrogazione ranking
  • Il ranking è un ordinamento degli oggetti
    restituiti da una interrogazione che riflette il
    grado di rilevanza dei documenti rispetto
    allinterrogazione
  • I criteri per effettuare il ranking dipendono dal
    media considerato
  • Esempio ritrova le 5 immagini in cui più
    probabilmente appare una certa persona, presente
    in una specifica foto
  • in questo modo, si aumenta la certezza del
    risultato

25
Query pesate
  • In alcuni casi può essere utile pesare le varie
    condizioni nel contesto di una query
  • questo permette di associare un livello di
    importanza alla condizione nel determinare la
    similarità degli oggetti
  • Esempio determinare le immagini che
  • contengono una persona (0.7)
  • non contengono alberi (0.3)
  • la similarità viene pesata

26
Query spazio-temporali
  • Necessità di interrogare relazioni
    spazio-temporali esistenti tra gli oggetti
  • relazioni spaziali associano le feature
    associate ad un oggetto da un punto di vista
    spaziale
  • importante per immagini/testo
  • in unimmagine, relaziono le forme che compaiono
    rispetto alla loro posizione (vicino, lontano, a
    destra, a sinistra)
  • in un testo, relaziono il contenuto (prima, dopo)
  • relazioni temporali associano le feature
    associate ad un oggetto da un punto di vista
    temporale
  • importante per audio/video
  • sequenze audio/video prima, dopo, subito prima,
    subito dopo, contemporaneamente

27
Due approcci alla specifica delle query
  • Si definisce un linguaggio di query
  • ad esempio, si estende SQL con condizioni
    specifiche da applicare ad oggetti multimediali
  • tipico DBMS estesi alla gestione di dati
    multimediali
  • query by example
  • si fornisce un oggetto di esempio e si vogliono
    determinare tutti gli oggetti simili
  • esempio si fornisce la fotografia del viso di
    una persona e si vogliono ritrovare tutti i visi
    simili
  • tipico di sistemi dedicati alla gestione di un
    solo tipo di media

28
Nel seguito ...
  • Considereremo due media
  • testo
  • immagini
  • per ciascuno illustreremo
  • rappresentazione del contenuto
  • query in alcuni sistemi

29
Basi di dati testuali
30
Basi di dati testuali
  • E un database in grado di memorizzare, gestire
    ed interrogare documenti testuali non strutturati
  • Lobiettivo è di minimizzare il tempo necessario
    per localizzare le informazioni
  • I risultati di una interrogazione sono ordinati
    in ordine decrescente di rilevanza
  • Un documento è rilevante se lutente che formula
    linterrogazione giudica che il documento e
    linterrogazione si riferiscono entrambi allo
    stesso argomento

31
Basi di dati testuali
  • Lenfasi è sulla caratterizzazione dei requisiti
    informativi dellutente
  • Ritrova tutti i documenti che contengono
    informazioni sulle squadre di tennis dei college
    americani che (1) hanno partecipato al torneo
    NCAA e (2) contengono informazioni
    sullallenatore della squadra

32
Basi di dati testuali
  • I database di testi sfruttano tecniche sviluppate
    per i sistemi di Information Retrieval (IR)
  • Lambito dellIR ha prodotto negli ultimi 20
    anni
  • Modelli per la rappresentazione di documenti
  • Architetture e linguaggi
  • Interfacce e metodi di visualizzazione
  • Nonostante questo larea dellIR è sempre stata
    di interesse limitato

33
Basi di dati testuali
  • Lavvento del Web ha cambiato le cose
  • È un repository universale di conoscenza
  • Accesso universale a costi ridotti
  • Nessuna autorità centrale
  • Il Web ha però introdotto nuove problematiche (ad
    es. bassa qualità di definizione e struttura
    delle informazioni) le tecniche di IR sono viste
    come una chiave per trovare le soluzioni

34
Basi di dati testuali
  • Lo scopo è di reperire tutti e soli quei
    documenti che interessano lutente
  • Un sistema con tali caratteristiche non può però
    essere realizzato in pratica
  • Per tale motivo si valuta un sistema tanto più
    efficiente quanto più e in grado di avvicinarsi
    a tale requisito

35
Basi di dati testuali
  • Due criteri di valutazione
  • precisione (precision)
  • richiamo (recall)

36
Valutazione di una Interrogazione
Rilevanti Non restituiti
Rilevanti Restituiti
Non rilevanti restituiti
Non rilevanti Non restituiti
Documenti contenuti nel database
37
Richiamo
  • Il potere di richiamo è la percentuale di
    documenti rilevanti restituiti rispetto al totale
    di documenti rilevanti presenti nel sistema
  • Rilevanti Restituiti
  • Richiamo
  • Totale Rilevanti

38
Richiamo
  • Il potere di richiamo ideale è uguale ad uno
  • In generale il potere di richiamo sarà un valore
    inferiore ad uno perché il numero di documenti
    pertinenti restituiti è inferiore al numero di
    documenti pertinenti presenti nel sistema

39
Precisione
  • La precisione è la percentuale di documenti
    rilevanti sul totale dei documenti restituiti
  • Rilevanti Restituiti
  • Precisione
  • Totale Restituiti

40
Precisione Richiamo
  • La condizione ideale è avere il 100 di
    precisione e richiamo
  • In generale, aumentando il numero di documenti
    restituiti si aumenta il potere di richiamo a
    spese della precisione

41
Basi di dati testuali
  • Due problemi principali
  • Sviluppo di tecniche efficienti per la
    rappresentazione dei documenti allinterno del
    sistema
  • Sviluppo di tecniche per la formulazione e
    lesecuzione delle interrogazioni

42
Rappresentazione di documenti testuali
43
Modellazione
Estrazione di feature
Database
44
Modellazione
  • Nel caso di documenti testuali le feature sono i
    termini utilizzati come indici
  • Gli indici possono essere
  • Una parola chiave o un insieme di parole chiave
  • Un insieme di concetti che caratterizzano il
    contenuto informativo del documento
  • sia i documenti che le interrogazioni vengono
    rappresentati in termini di feature

45
Modellazione - determinazione termini indice
Noun groups
Manual indexing
stopwords
stemming
Docs
structure
46
Modellazione - determinazione termini indice
  • structure struttura interna del documento
    (capitoli, sezioni, sottosezioni)
  • stopwords articoli e congiunzioni
  • noun groups si eliminano (o si raggruppano
    insieme ai sostantivi) aggettivi, avverbi, verbi
  • stemming ci si riduce a radice comune (es.
    plurale, singolare)

47
Modellazione e query

48
Modellazione
  • Vedere il testo come un insieme di parole chiave
    è limitativo
  • Questo causa spesso insoddisfazione da parte
    dellutente
  • Il problema è ulteriormente complicato dal fatto
    che spesso gli utenti non sono in grado di
    formulare interrogazioni che riflettono i loro
    requisiti informativi

49
Ranking
  • Uno dei problemi più critici è quello di decidere
    i criteri di rilevanza di un documento rispetto
    ad una interrogazione
  • Il ranking è un ordinamento dei documenti
    restituiti da una interrogazione che riflette il
    grado di rilevanza dei documenti rispetto
    allinterrogazione
  • I criteri per effettuare il ranking dipendono dal
    modello adottato per rappresentare i documenti (e
    di conseguenza anche le query)

50
Modelli
U s e r T a s k
Retrieval Adhoc Filtering
Browsing
51
Modelli Classici Concetti Base
  • Ogni documento è rappresentato da un insieme di
    termini indice rappresentativi
  • Un indice è una parola utile per ricordare
    largomento del documento
  • Solitamente gli indici sono dei nomi
  • I motori di ricerca assumono che tutte le parole
    nel testo siano indici (rappresentazione full
    text)

52
Modelli Classici Concetti Base
  • Non tutti i termini che compaiono in un documento
    sono egualmente rappresentativi del suo contenuto
    informativo
  • di solito i termini troppo frequenti non sono
    buoni candidati per diventare indici
  • Limportanza di un indice è rappresentata da un
    peso ad esso associato

53
Modelli Classici Concetti Base
  • Sia
  • ki il termine indice
  • dj un documento
  • wij il peso associato a ki nel documento dj
  • wij quantifica limportanza dellindice ki per
    descrivere il contenuto informativo del documento
    dj
  • wij 0 indica che ki non compare in dj

54
Modelli Classici Concetti Base
  • vec(dj) (w1j, w2j, , wtj) è il vettore di
    pesi associati al documento dj, dove t è il
    numero totale di indici
  • gi(vec(dj)) wij è una funzione che
    restituisce il peso di ki nel documento dj

55
Modelli Classici Concetti Base
  • Si assume che i pesi degli indici siano
    indipendenti
  • Questa assunzione è una semplificazione perché
    esistono delle correlazioni tra termini che
    compaiono in un documento
  • Questo facilita la definizione dei pesi ma rende
    meno precisa la ricerca
  • Es computer ? network

56
Modello booleano
  • E un modello semplice basato sulla teoria degli
    insiemi
  • Le interrogazioni sono espressioni booleane
  • Semantica precisa
  • Formalismo consolidato
  • q ka ? (kb ? ?kc)

57
Modello booleano
  • I pesi assumono valori binari
  • wij ? 0,1
  • Un peso uguale a uno indica che il termine
    compare nel documento
  • Un peso uguale a zero indica che il termine non
    compare nel documento

58
Modello Booleano
  • Si supponga
  • q ka ? (kb ? ?kc) (ka ? kb) ? (ka ?
    ?kc)
  • La query può essere equivalentemente formulata
    come una disgiunzione di vettori della forma
    (ka,kb,kc)
  • vec(qdnf) (1,1,1) ? (1,1,0) ? (1,0,0)
  • I vettori vengono chiamati componenti congiuntive
    della query q (qcc)

59
Modello Booleano - similarità
sim(q,dj) 1 se ? vec(qcc) vec(qcc) ?
vec(qdnf)) ? ?ki, gi(vec(dj))
gi(vec(qcc))) 0 altrimenti Un
documento viene restituito solo se la sua
similitudine con linterrogazione è pari ad
uno
60
Modello Booleano
  • Esempio
  • qvec(qdnf) (1,1,1) ? (1,1,0) ? (1,0,0)
  • dj (0,1,0,.) non è rilevante per q anche se
    contiene il termine kb
  • di (1,1,0,.) è rilevante per q

61
Modello booleano - svantaggi
  • Nessuna nozione di matching parziale
  • Nessun meccanismo di ranking
  • I bisogni informativi di un utente devono essere
    tradotti in una espressione booleana
  • Le interrogazioni formulate dagli utenti sono
    spesso troppo approssimate

62
Modello vettoriale
  • Lutilizzo di pesi binari è troppo limitante
  • Pesi non binari consentono di attuare matching
    parziali
  • I pesi sono usati per calcolare un grado di
    similitudine tra una interrogazione e ogni
    documento nella base di dati
  • I documenti sono restituiti in ordine decrescente
    di similitudine (ranking)

63
Modello vettoriale
  • Sia i documenti che le interrogazioni sono
    rappresentate come dei vettori di pesi
  • Si definisce
  • wij gt 0 quando ki ? dj
  • wiq gt 0 quando ki ? q
  • vec(dj) (w1j, w2j, ..., wtj)
  • vec(q) (w1q, w2q, ..., wtq)

64
Modello Vettoriale
  • Nel modello vettoriale sia la query che il
    documento sono rappresentati come dei vettori in
    uno spazio t-dimensionale (dove t è il numero
    complessivo di termini indice)

j
dj
?
q
i
65
Modello Vettoriale
  • sim(q,dj) cos(?) vec(dj) ? vec(q)
    / dj q

66
Modello vettoriale
  • Dato che wij gt 0 and wiq gt 0
  • 0 ? sim(q,dj) ? 1
  • Un documento è restituito anche se soddisfa solo
    parzialmente linterrogazione
  • si può decidere di restituire solo i documenti la
    cui similarità con la query supera una certa
    soglia

67
Modello vettoriale - pesi
  • Quali strategie adottare per computare i pesi wij
    e wiq?
  • Un buon peso deve tener conto di due fattori
  • Quanto un termine descrive il contenuto
    informativo di un documento
  • Fattore tf, la frequenza di un termine
    allinterno di un documento
  • Quanto un termine compare allinterno di tutti i
    documenti nel db
  • Fattore idf, linverso della frequenza di un
    termine tra tutti i documenti considerati

68
Modello vettoriale - pesi
  • wij tf(i,j) idf(i)
  • tf(i,j)
  • ki rilevante per dj
  • idf(i,)
  • - ki rilevante in generale
  • termini che compaiono spesso in tutti i documenti
    non sono utili per distinguere un documento
    rilevante da uno non rilevante

69
Modello vettoriale
  • Sia
  • N il numero totale di documenti nel db
  • ni il numero di documenti che contengono ki
  • freq(i,j) la frequenza di ki in dj
  • Il fattore tf normalizzato è
  • f(i,j) freq(i,j) / max(freq(l,j))
  • il massimo è calcolato su tutti i termini kl che
    compaiono in dj
  • Il fattore idf è dato da
  • idf(i) log (N/ni)
  • il log è usato per rendere comparabili i valori
    di tf e idf

70
Modello vettoriale
  • Il metodo più utilizzato è quello di usare come
    peso
  • wij f(i,j) log(N/ni)
  • Tale strategia è chiamata schema di pesatura
    tf-idf

71
Modello vettoriale
  • Per i pesi da utilizzare nelle interrogazioni,
    Salton Bucley propongono
  • wiq (0.5 0.5 freq(i,q) /
    max(freq(l,q)) log(N/ni)

72
Modello vettoriale
  • Vantaggi
  • I pesi migliorano la qualità delle risposte alle
    interrogazioni
  • Possibilità di matching parziale
  • La formula per il ranking ordina i documenti in
    base alla rilevanza che hanno per
    linterrogazione
  • Svantaggi
  • Considera tutti gli indici come indipendenti

73
Esempio
Pesi documenti e query booleani
74
Esempio
Pesi documenti booleani, query non booleani
75
Esempio
Pesi documenti e query non booleani
76
Esempio
  • Calcoliamo TF-IDF per i documenti, supponendo
    contenuto celle freq(i,j)
  • d1
  • K1 ((2/2)(log (7/5)) .33
  • K2 (0(log (7/4))) 0
  • K3 ((1/2)(log (7/3))) .42
  • per gli altri
  • .34 0 0, 0 .19 .85, .34 0 0, .08 .28 .85,
    .17 .56 0, 0 .56 0

77
Esempio
  • Calcoliamo TF-IDF per la query
  • K1 (.5 ((.5 1)/3))(log (7/5)))
  • K2 (.5 ((.5 2)/3))(log (7/4)))
  • K3 (.5 ((.5 3)/3))(log (7/3)))
  • quindi .22 .47 .85

78
Esempio
  • Calcoliamo similarità per ogni documento
  • sim(d1,q)
  • d1 q (.33 .22) (0 .47) (.42 .85)
    .43
  • d1 sqrt((.332) (.422)) .53
  • q sqrt((.222) (.472) (.852)) 1.0
  • sim(d1,q) .43 / (.53 1.0) .28
  • d2 .06 d3 .43 d4 .06
  • d5 .46 d6 .19 d7 .17

79
Modello Probabilistico
  • Lobiettivo è quello di utilizzare tecniche di
    calcolo delle probabilità
  • Data una interrogazione esiste sempre un insieme
    di documenti che costituiscono la risposta ideale
  • La specifica dellinterrogazione consiste nel
    definire le caratteristiche della risposta ideale

80
Modello Probabilistico
  • Il problema è capire quali sono tali
    caratteristiche
  • Allinizio viene effettuata una ipotesi su quali
    queste caratteristiche possono essere
  • Tale ipotesi viene poi raffinata durante un
    processo di iterazione

81
Modello Probabilistico
  • Data una query q e un documento dj, il modello
    probabilistico cerca di stimare la probabilità
    che lutente consideri il documento dj rilevante
  • Il modello assume che tale probabilità dipenda
    solo dalla interrogazione e dal modo in cui il
    documento è rappresentato
  • I documenti sono ordinati in ordine descrescente
    rispetto alla probabilità di rilevanza
  • Non si tengono in considerazione i fattori tf e
    idf

82
Modelli classici - confronto
  • Il modello Booleano è il meno potente in quanto
    non consente il matching parziale
  • Risultati sperimentali indicano che il modello
    vettoriale ha prestazioni migliori del modello
    probabilistico

83
Estrazione di Feature dal Testo
  • Quattro fasi
  • Analisi lessicale del testo
  • Eliminazione delle stopword
  • Normalizzazione delle parole rimanenti
  • Selezione dei termini caratterizzanti (indici)

84
Analisi lessicale
  • Lobiettivo è quello di trasformare il testo da
    una sequenza di caratteri ad una sequenza di
    parole
  • Eliminazione della punteggiatura
  • Conversione da maiuscolo a minuscolo

85
Eliminazione delle stopword
  • Parole troppo frequenti nei documenti (ad esempio
    che compaiono in più dell80 dei documenti) non
    sono utili per determinare il risultato di una
    interrogazione
  • Esempi di stopword sono articoli, proposizioni e
    congiunzioni
  • Leliminazione delle stopword consente di ridurre
    notevolmente le dimensioni del documento
    originale
  • Leliminazione delle stopword può però ridurre il
    potere di richiamo
  • to be or not to be

86
Normalizzazione (stemming)
  • Spesso lutente specifica un termine in una query
    ma i documenti rilevanti ne contengono una sua
    variante
  • La fase di normalizzazione sostituisce le
    varianti di una stessa parola con la loro radice
    comune (es connesso, connettere,
    connessione,ecc.)
  • Non esiste consenso comune sullutilizzo della
    fase di normalizzazione

87
Selezione degli indici
  • Due alternative
  • full-text index tutte le parole sono utilizzate
    per caratterizzare il contenuto informativo del
    documento
  • selezione dei termini rilevanti
  • 1. Mediante un processo automatico
  • 2. Tramite lutilizzo di un Thesaurus

88
Selezione degli indici
  • Un metodo consolidato è quello di identificare
    gruppi di nomi allinterno del testo (es.
    computer science)
  • Un gruppo di nomi è un insieme di nomi la cui
    distanza nel testo non supera una soglia
    predefinita (es 3)

89
Thesaurus
  • Un thesaurus consiste di
  • un insieme di vocaboli ed espressioni-chiave
    rilevanti per un particolare dominio
  • un insieme di sinonimi per ogni vocabolo
    nellinsieme
  • I thesauri sono di solito definiti da esperti del
    settore

90
Thesaurus
  • La fase di indicizzazione e di ricerca avviene
    solo facendo riferimento ai termini del thesaurus
  • Lutilizzo di thesauri è vantaggioso per domini
    in cui è possibile la standardizzazione dei
    termini di ricerca (esempio ambito medico,
    legale,ecc.)

91
Thesauri con reti semantiche
  • In un thesaurus che utilizza una rete semantica i
    termini possono essere strutturati attraverso una
    rete di collegamenti concettuali
  • Una relazione semantica puo essere
  • preferenziale
  • gerarchica
  • associativa

92
Relazione preferenziale
  • La relazione preferenziale rappresenta
    lequivalenza (sinonimia) tra termini
  • SP (sinonimo preferenziale)
  • USA (è il contrario di SP)
  • Allievo SP Alunno
  • Alunno USA Allievo

93
Relazione gerarchica
  • La relazione gerarchica rappresenta la relazione
    di specializzazione che esiste tra i termini
  • TL (termine largo)
  • TS (termine stretto)
  • Veicolo TL Auto
  • Auto TS Veicolo
  • Il vertice della gerarchia si chiama TA (termine
    più ampio)

94
Relazione associativa
  • La relazione associativa esprime un legame
    biunivoco tra le componenti lessicali
  • RT (termine in relazione)
  • La tipologia di relazione dipende dal contesto
  • Esempi
  • antinomia vittoria--sconfitta
  • concomitanza sintomo--malattia
  • proprietà trampolino--altezza
  • inclusione contenuto--contenente
  • localizzazione partita--stadio

95
Reti semantiche
  • Un thesaurus con rete semantica rende più
    efficienti le interrogazioni perché consente di
    ricercare automaticamente i termini sinonimi,
    quelli più ampi o più ristretti ed i termini
    correlati

96
Thesaurus
  • Per semplificare le ricerche al thesaurus è
    associato un indice inverso cioè una tabella che
    per ogni parola contenuta nel thesaurus contiene
    una lista dei documenti che la contengono

97
Indice inverso
termine
documenti
a
1,3,4,6,7
1,7 3,7 4,7
b c d
98
Indici inversi
  • Solitamente gli indici inversi vengono estesi per
    mantenere per ogni termine non solo i documenti
    che lo contengono ma anche il numero di
    occorrenze di tale termine nei vari documenti

99
Architettura di riferimento
Interfaccia utente
traduttore
indicizzazione
DB manager
Ricerca
indice
Text db
ordinamento
100
Interrogazioni
  • Due tipi fondamentali
  • su stringhe, con caratteri jolly e sottostringhe
  • con operatori booleani

101
Interrogazioni su stringhe
  • E possibile ricercare tutti i testi che
    contengono una certa parola, una sua variante o
    un suo sinonimo
  • comput? --gt computa, computo,...
  • comp --gt computer, compilato, compito, ecc.
  • Varianti
  • ricerca di frasi
  • ricerche fuzzy
  • ricerca per prossimità (insieme di parole e
    indicazione della distanza massima che devono
    avere allinterno del testo)

102
Interrogazioni booleane
  • I termini dellinterrogazione possono essere
    composti mediante gli operatori booleani
  • p1 AND p2
  • p1 OR p2
  • NOT p1
  • Gli operatori booleani possono essere combinati
  • (p1 AND p2) OR (p3 AND p4)

103
Sistemi di IR esempi
  • DIALOG Corporation offre più di 500 sistemi di
    IR su svariati argomenti, quali scienze,
    medicina, economia e giornali elettronici
    (www.dialog.com)
  • LEXIS-NEXIS ambito legale ed economico
    (www.lexis-nexis.com)
  • OCLC (the online computer library center) offre
    laccesso ad 1.5 milioni di articoli
    (www.oclc.org)
  • H.W. Wilson offre più di 40 sistemi di IR per
    scuole ed istituzioni pubbliche (www.hwwilson.com)

104
Sistemi di IR esempi
  • CA SEARCH Chemical Abstract. Contiene 14 milioni
    di documenti con una frequenza di aggiornamento
    di 11.000 documenti alla settimana
  • MEDLINE indicizza articoli provenienti da 3.700
    riviste mediche
  • NewYork Times -- Fulltext contiene tutte le
    edizioni del NewYork Times dal 1981 ad oggi
  • PsycINFO Psycological Abstract. Contiene 1.5
    milioni di documenti riguardanti psicologia,
    sociologia, psichiatria, linguistica ed
    antroplogia dal 1887 fino ad oggi

105
Gestione di testi in Oracle 9i
  • Oracle 9i Text
  • permette di
  • indicizzare testi e documenti memorizzati in
    Oracle 9i, in file del sistema operativo o URL,
    in maniera integrata con i dati relazionali
    tradizionali con possibilità di interrogazioni
    basate sul contenuto
  • possibilità di utilizzare un thesaurus
  • classificare documenti in base al loro contenuto
  • vedremo solo il primo aspetto

106
Gestione di testi in Oracle 9i
  • Formati
  • File di testo
  • HTML, XML
  • documenti Word
  • PDF
  • Linguaggi
  • per ricerche tematiche, inglese e francese
  • possibilità di estendere i linguaggi caricando
    opportuni thesauri per il linguaggio di interesse

107
Sviluppo applicazione testuale
  • Caricamento documenti
  • indicizzazione
  • interrogazione
  • operatori
  • thesauri

108
Esempio
  • create table docs
  • (id number primary key,
  • text varchar2(80))
  • insert into docs values (1,'first document')
  • insert into docs values (2, 'second document')
  • create index doc_index on docs(text)
  • indextype is ctxsys.context
  • select id from docs
  • where contains(text, 'first') gt 0

109
Rappresentazione documenti
A B C
110
Rappresentazione documenti
  • A. Documento contenuto in un campo di tipo CHAR,
    VARCHAR, VARCHAR2, LONG, LONG RAW, BLOB, CLOB
  • B. Campo di tipo BFILE
  • C. Campo di tipo URIType
  • la tabella deve avere una chiave primaria,
    utilizzata per identificare i documenti

111
Caricamento documenti
  • Direttamente con statement INSERT
  • SQL Loader
  • procedure ad hoc
  • OCI

112
Indicizzazione documenti
  • Oracle supporta diverse tipologie di indice
  • CONTEXT, per ricerche su documenti arbitrari
  • CTXCAT, per ricerche su documenti brevi e
    strutturati
  • MATCHES, per classificazione documenti
  • noi vedremo solo il tipo CONTEXT
  • la creazione dellindice è un passo necessario
    per lesecuzione di interrogazioni sul documento

113
Indice CONTEXT
  • Determina i termini indice associati ad ogni
    documento
  • crea il surrogato
  • organizza il surrogato come indice inverso

114
Indicizzazione documenti
  • comando per la creazione di indici
  • create index INDEXNAME on TABLE(COLUMN)
  • indextype is ctxsys.context
  • il comando per default assume che
  • la colonna sia di tipo A
  • il linguaggio sia quello specificato durante
    linstallazione
  • è possibile modificare le impostazioni di base,
    customizzando il comando CREATE INDEX
  • sistema di preferences

115
Indicizzazione documenti
  • In generale, il comando di creazione di indice
    esegue un insieme di processi che creano oggetti
    intermedi
  • per ogni processo è possibile specificare delle
    preferenze

116
Indicizzazione documenti
117
Indicizzazione documenti - processi
  • Datastore scorre le righe della tabella e legge
    i dati della colonna, restituendo i dati
    contenuti nel documento
  • Filter prende i documenti restituiti dal
    datastore e li trasforma in una rappresentazione
    testuale
  • non necessaria per plain text, XML o HTML
  • documenti Word, PDF, ecc. Vengono convertiti in
    un testo con mark-up (esempio HTML)
  • Sectioner divide linformazione strutturale
    (markup) dal contenuto
  • Lexer suddivide il plain text in token (parole)
    e crea token tematici (in relazione alle
    preferenze specificate)
  • Indexing engine crea linverted index,
    eliminando stopword, contenute in STOPLIST e crea
    indici per stemming utilizzando informazioni in
    WORDLIST

118
Indicizzazione documenti - preferenze
  • per ciascun processo ci sono uno o più oggetti
    che rappresentano i possibili comportamenti
  • in generale, gli oggetti sono raggruppati in
    classi

119
Indicizzazione documenti - preferenze
  • tali oggetti non possono essere usati
    direttamente negli indici
  • si crea una preference a partire da tali oggetti
    template
  • la si personalizza settandone gli attributi
  • si usa tale preference per creare lindice

120
Indicizzazione documenti - Esempio
ctx_ddl.create_preference('mypref',
'FILE_DATASTORE')
ctx_ddl.set_attribute('mypref',
'PATH', '/docs')
create index doc_index on docs(text)
indextype is ctxsys.context parameters
('datastore mypref')
121
Indicizzazione documenti - preferenze
  • nella clausola parameters si possono specificare
    più classi, semplicemente aggiungendo una coppia
    keyword-preference
  • parameters('datastore mypref filter myfilter')
  • questo meccanismo è usato per tutte le classi
    tranne SECTION GROUP e STOPLIST, che hanno una
    API propria
  • esistono dei parametri utilizzati dal sistema di
    default (quelli per LEXER, WORDLIST e STOPLIST
    dipendono dal linguaggio)

122
Datastore
  • DIRECT_DATASTORE (default) assume che il
    documento sia memorizzato direttamente nella
    colonna indicizzata, ne restituisce semplicemente
    il contenuto
  • FILE_DATASTORE interpreta la colonna come un nome
    di file, lo apre e ne restituisce il contenuto
  • URL_DATASTORE interpreta la colonna come un URL,
    effettua una GET e restituisce il contenuto
  • ...

123
Filter
  • NULL_FILTER (default) utilizzato quando il
    contenuto del documento non è in formato binario,
    passa semplicemente il testo dal datastore al
    sectioner
  • CHARSET_FILTER converte i documenti da un insieme
    di caratteri straniero al character set del
    database
  • USER_FILTER/PROCEDURE_FILTER filtering ad hoc
    (es. per convertire tutto in lettere maiuscole)
    in forma di procedura
  • INSO_FILTER riconosce automaticamente e filtra
    oltre un centinaio di formati diversi, tra cui
    Word e Acrobat, producendo HTML come output

124
Lexers
  • BASIC_LEXER per la maggioranza delle lingue
    europee, si può modificare il comportamento di
    default attraverso gli attributi
  • JOINS per specificare caratteri non alfanumerici
    da trattare come lettere valide
  • PUNCTUATION per specificare i simboli di
    punteggiatura (importanti per sezioni SENTENCE e
    PARAGRAPH)
  • per la normalizzazione del testo (es. accenti,
    maiuscole/minuscole, parole composte)
  • per selezionare indicizzazione di testo o
    tematica

125
Stoplist
  • lista delle stopword, che non vengono considerate
    per lindicizzazione
  • API separata
  • ctx_ddl.create_stoplist('mylist')
  • ctx_ddl.add_stopword('mylist', 'the')
  • stoplist di default, che dipendono dal linguaggio
  • si possono aggiungere stopword allindice senza
    doverlo ridefinire
  • alter index myidx rebuild parameters ('add
    stopword AND')
  • stop classes (es. NUMBERS) e stop themes

126
Wordlist
  • non ha effetto sullindicizzazione, ma contiene i
    setting per espansione stem e fuzzy dei termini
    utilizzati per rispondere alle interrogazioni
  • un solo oggetto BASIC_WORLDLIST con attributi
  • STEMMER (espansione di una parola a forme
    differenti, es. ENGLISH, ITALIAN, NULL)
  • FUZZY_MATCH (considera parole mistyped, es. varie
    lingue e OCR)
  • FUZZY_SCORE (score floor per espansione fuzzy)
  • FUZZY_NUMRESULT (max. numero parole per
    espansione fuzzy)

127
Section Groups
  • La classe section group prende un formato di
    testo (es. XML o HTML) come input e restituisce i
    section boundaries e plain text
  • i section group non sono creati con
    create_preferences, ma con una API separata
  • ctx_ddl.create_section_group('mygroup,
    'html_section_group')
  • il primo argomento è il nome del section group,
    il secondo è il tipo, che specifica il formato
    del testo di input e le regole per individuare le
    sezioni

128
Section Groups
  • tipi di section groups
  • NULL_SECTION_GROUP da usare quando non ci sono
    sezioni o ci sono solo sezioni speciali
    SENTENCES e PARAGRAPH
  • default
  • BASIC_SECTION_GROUP per XML o HTML, rimuove
    semplicemente i markup tags, che devono essere
    bilanciati, non supporta attributi e commenti
  • HTML_SECTION_GROUP per HTML
  • XML_SECTION_GROUP per XML
  • NEWS_SECTION_GROUP per newsgroup style postings,
    rimuove header lines

129
Section Groups
  • le sezioni hanno tre attributi
  • TAG specifica come riconoscere la sezione
  • NAME specifica come riferirsi alla sezione nelle
    query (più tag possono essere mappati sullo
    stesso nome)
  • TYPE è il tipo di sezione, ci sono tre tipi
    diversi ZONE, SPECIAL, FIELD
  • ZONE
  • si registra dove sono start e end
  • permette query di tipo WITHIN, cioè ricerche
    allinterno di sezioni particolari
  • se una sezione ZONE si ripete viene trattata
    separatamente nelle query
  • possono essere annidate

130
Section Groups
  • SPECIAL non sono riconosciute attraverso tag, ma
    dal lexer attraverso la punteggiatura
  • SENTENCE
  • PARAGRAPH

131
Section groups
  • FIELD
  • il contenuto della sezione è indicizzato
    separatamente dal resto del documento
  • le query di tipo WITHIN vengono eseguite su
    questo indice separato
  • sono pensate per sezioni non ripetute e non
    overlapping

132
Section Groups - esempio
  • Documento
  • ltAgtratlt/AgtltAgtoxlt/Agt ltBgttiger rabbitlt/Bgt
    ltCgtdragonltCgtsnakelt/Cgtlt/Cgt
  • Creazione section group ctx_ddl.create_section_gro
    up('mygroup',
  • xml_section_group')
  • aggiunta sezioni di tipo ZONE ctx_ddl.add_zone_se
    ction('mygroup', 'asec', 'a')
  • ctx_ddl.add_zone_section('mygroup', 'bsec',
    'b')
  • ctx_ddl.add_zone_section('mygroup', 'csec',
    'c')

133
Section Groups - esempio
  • Documento plain text
  • Creazione section group ctx_ddl.create_section_gro
    up('mygroup',
  • null_section_group')
  • aggiunta sezioni di tipo ZONE ctx_ddl.add_special
    _section('mygroup', SENTENCE')

134
Aggiornamento degli indici
  • Lindice creato non viene aggiornato
    automaticamente dopo ogni operazione DML
  • indicizzare un singolo documento richiede molto
    tempo
  • gli inverted index si aggiornano meglio su un
    insieme di documenti per volta
  • le applicazioni in genere sono abbastanza
    statiche, e non è necessaria una completa
    consistenza
  • possibilità di ricostruzione totale o parziale

135
Interrogazioni
  • La creazione di un indice di tipo CONTEXT
    permette di eseguire interrogazioni sul contenuto
    dei documenti
  • funzione CONTAINS, con vari criteri di selezione
  • logici
  • di prossimità
  • fuzzy
  • stemming
  • thesaurus
  • wildcards
  • ricerche su sezioni
  • Sono case-insensitive per default
  • modificabile con preferenze BASIC_LEXER

136
Interrogazioni - contains
  • select id
  • from texttab
  • where contains(textcol,'query') gt 0
  • il primo argomento è il nome della colonna, il
    secondo è il testo dellinterrogazione (max 2000
    byte)
  • restituisce un numero, che quantifica il match
  • 0 no match

137
Interrogazioni - scoring
  • select id, score(1)
  • from texttab
  • where contains(textcol, 'query', 1) gt 0
  • order by score(1) desc
  • 1 è contains label e può essere un qualsiasi
    numero, utilizzato per matchare lo score nella
    select list con quello nella clausola where
  • lo score è un numero compreso tra 0 e 100, ed è
    relativo (significativo solo per la query)

138
Interrogazioni - scoring
  • Modello vettoriale
  • Pesi wij 3f(1log(N/n)) con
  • f frequenza
  • N numero totale tuple
  • n numero tuple che contengono il termine
  • compresi tra 0 e 100
  • la similarità è un valore tra 0 e 100

139
Interrogazioni - tipologie
  • interrogazioni semplici
  • contains(text, 'dog') gt 0
  • si possono interrogare frasi
  • contains(text,'dog my cat') gt 0
  • le stopword sono trattate come wildcard (matchano
    qualsiasi parola)
  • contains(text, 'dog the cat') gt 0
  • restituisce 'dog my cat, 'dog your cat, 'dog
    the cat'
  • le stopword da sole vengono eliminate dalla query

140
Interrogazioni - operatori booleani
  • AND () e OR () restituiscono punteggi numerici
    invece che valori booleani
  • AND è il minimo dei punteggi dei suoi operandi,
    OR il massimo
  • NOT () è "AND NOT (differenza)
  • 'dog NOT cat' restituisce i documenti che
    contengono "dog" ma non contendono "cat
  • il punteggio restituito è quello del figlio
    sinistro

141
Interrogazioni - operatori di score
  • WEIGHT () moltiplica il punteggio di un termine
    di ricerca per renderlo più o meno importante
    nella query (peso tra .1 e 10)
  • contains(text,'(dog2) AND cat') gt 0
  • THRESHOLD (gt) elimina i documenti sotto una certa
    soglia
  • contains(text,'(dog2) AND cat') gt 50

142
Interrogazioni - operatori di espansione delle
parole
  • WILDCARD (_) per pattern matching (come in LIKE
    di SQL)
  • FUZZY (?) trova parole simili (usa wordlist)
  • STEM () trova parole con radice comune (usa
    wordlist)
  • SOUNDEX (!) trova parole con stesso suono (usa
    una specifica espansione fuzzy)
  • EQUIV () permette di indicare esplicitamente
    varie forme della stessa parola

143
Interrogazioni - operatori di prossimità
  • operatore NEAR, che ha due forme
  • dog cat boat
  • il punteggio dipende da quanto i termini sono
    vicini luno allaltro, in termini di numero di
    parole
  • NEAR((dog,boat), 10, TRUE)
  • primo argomento è lista di parole
  • secondo è distanza massima (numero di parole)
  • terzo specifica se tenere conto dellordine in
    cui appaiono nella lista

144
Interrogazioni - sezioni
  • WITHIN limita una query a una particolare
    sezione
  • contains(text, tiger cat within
  • sentence') gt 0

145
Interrogazioni - esempio
  • ltAgtratlt/AgtltAgtoxlt/Agt ltBgttiger rabbitlt/Bgt
    ltCgtdragonltCgtsnakelt/Cgtlt/Cgt
  • ctx_ddl.create_section_group('mygroup',
  • 'basic_section_group')
  • sezione ZONE
  • ctx_ddl.add_zone_section('mygroup', 'asec',
    'a')
  • ctx_ddl.add_zone_section('mygroup', 'bsec',
    'b')
  • ctx_ddl.add_zone_section('mygroup', 'csec',
    'c')
  • contains(text, 'rat within asec') gt 0
  • restituisce il documento
  • contains(text, 'tiger within asec') gt 0
  • non restituisce il documento

146
Interrogazioni - esempio
  • ogni istanza è considerata distinta
  • contains(text, '(tiger and rabbit) within
    bsec') gt 0
  • trova il documento
  • contains(text, '(rat and ox) within asec') gt 0
  • no
  • contains(text, '(dragon and snake) within
    csec') gt 0
  • nel caso di sezioni FIELD il contenuto di diverse
    istanze viene unito, quindi la seconda query
    restituirebbe il documento

147
Interrogazioni tematiche
  • Si vogliono determinare i documenti che trattano
    un certo concetto
  • la stringa specifica rappresenta il concetto
    (tema) cercato
  • solo per inglese e francese
  • richiede la presenza di una knowledge base
  • gerarchia di concetti con 6 sottoalberi
    scienza-tecnologia, affari e finanza, politica e
    militare, sociale, geografia, idee astratte
  • lindice deve avere una componente tematica
  • se non ce lha, linterrogazione viene espansa in
    una query non tematica

148
Interrogazioni tematiche - esempio
  • contains(text, 'about(canines)')
  • se esiste lindice, può restituire documenti che
    contengono dog
  • se non esiste, about(go home now) è trasformata
    in go,home,now

149
Interrogazioni - Thesaurus
  • Possibilità di creare Thesaurus che definiscono
    sinonimi e relazioni gerarchiche tra parole o
    frasi
  • il thesaurus non viene installato di default ma
    deve essere caricato
  • il sistema contiene un thesaurus di default per
    linglese
  • il caricamento di un Thesaurus permette di
    espandere le ricerche ai sinomini di una certa
    parola o ad altre parole ad essa associate

150
Interrogazioni - Thesaurus
  • file con formattazione particolare
  • alcune relazioni considerate
  • SYN sinonimi
  • PT preferred term
  • BT broader term
  • NT narrower term
  • RT related term
  • TR traduzione in altri linguaggi
  • gli stessi identificatori corrispondono a
    procedure che permettono di utilizzare queste
    relazioni nelle interrogazioni

151
Thesaurus - operatori
  • SYN( term , thesname )
  • PT( term , thesname )
  • BT( term , level ,thesname )
  • NT( term , level ,thesname )
  • TT( term , thesname )
  • RT( term ,thesname )
  • TR( term ,lan ,thesname )

152
Altri operatori di score
  • MINUS (-) sottrae il punteggio delloperando
    destro a quello del sinistro
  • contains(text, 'tiger MINUS rabbit') gt 0
  • tiger e preferibilmente non rabbit
  • sottrae i punteggi
  • ACCUM (,) raggruppa più parole o frasi e ne
    accumula i punteggi
  • contains(text, 'tiger ACCUM rabbit)') gt 0
  • tiger e preferibilmente rabbit
  • somma i punteggi

153
Osservazione
  • AND
  • nella logica a due valori, richiede che entrambi
    gli argomenti siano veri
  • interpretando vero 1 e falso 0, viene
    restituito il valore minimo
  • stesso discorso nel caso di valori compresi tra 0
    e 1
  • ACCUM
  • semplicemente somma i punteggi
  • più termini compaiono, più il documento è
    rilevante

154
Osservazione
  • OR
  • nella logica a due valori, richiede che almeno un
    argomento sia vero
  • interpretando vero 1 e falso 0, viene
    restituito il valore massimo
  • stesso discorso nel caso di valori compresi tra 0
    e 1
  • MINUS
  • toglie punteggi
  • un documento è più rilevante se i termini a
    destra non compaiono

155
Basi di dati per la gestione di immagini
156
Problematiche
  • La realizzazione di un sistema per la gestione di
    immagini deve affrontare le seguenti
    problematiche
  • rappresentazione delle immagini
  • Misura della similarità
  • Metodi di accesso e ritrovamento

157
Rappresentazione
Generazione metadati (automatica manuale)
Features attributi
immagini
Quali features e attributi?
158
Features
  • Forme (shape)
  • lidea è quella di estrarre delle forme
    dallimmagine
  • possono rappresentare contorni o approssimazione
    di contorni

Approssimazione contorno
contorno
159
Features - shape
  • Una shape per un oggetto può essere rappresentata
    in vari modi
  • ad esempio, un contorno può sempre essere visto
    come una sequenza di punti p1,,pn in uno spazio
    bidimensionale

160
Features
  • Oggetti semantici
  • con oggetto semantico si intende un oggetto
    significativo dal punto di vista
    dellapplicazione
  • casa, viso, strada
  • se gli oggetti sono chiaramente identificabili e
    possono essere facilmente riconosciuti, il
    ritrovamento può essere basato su tali oggetto
  • tipicamente richiedono intervento umano
  • approccio limitato dalle tecniche esistenti di
    analisi delle immagini

161
Features
  • Texture (tessitura)
  • rappresentano informazioni relative alle
    regolarità o irregolarità dellimmagine
  • dipendono dalla percezione visiva di unimmagine
  • si basano sulle cosiddette Tamura features
  • coarseness (rugosità)
  • contrasto
  • direzionalità

162
Features
  • Colore
  • proprietà globale che non richiede conoscenza
    degli oggetti contenuti nelle immagini
  • può essere determinato in modo automatico quindi
    è molto utilizzato
  • spesso si usano istogrammi che rappresentano la
    composizione di colori in unimmagine
  • ogni componente dellistogramma corrisponde ad un
    colore (256 o 64 componenti)
  • per rappresentare unimmagine, si associa ad ogni
    componente il numero di pixel dellimmagine più
    simili al colore considerato
  • il colore di ogni pixel in genere viene
    rappresentato come una tripla (R,G,B), dove R
    indica la percentuale di Rosso, G la percentuale
    di Giallo e B la percentuale di Blu

163
Un possibile surrogato per le immagini
  • In generale, per rappresentare in modo
    sufficientemente dettagliato unimmagine è
    necessario utilizzare più features
  • In generale, ogni immagine può essere
    interpretata come
  • un insieme di oggetti interessanti, ciascuno
    caratterizzato da un descrittore di forma, che
    rappresenta la shape delloggetto e/o la zona
    dellimmagine nella quale loggetto è collocato
    (approssimazione)
  • proprietà globali
  • un descrittore di proprietà, che descrive le
    proprietà di un insieme di pixel nellimmagine
    (RGB, livelli di grigio per immagini in bianco e
    nero, texture)
  • proprietà locali
  • le proprietà sono rappresentate da un nome (Red,
    Green, Blue) e da un dominio (ad esempio 0,,8)

164
Esempio
165
Esempio
  • Si consideri limmagine pic1.gif
  • limmagine contiene due oggetti di interesse - o1
    e o2 -
  • le shape di questi oggetti sono rappresentate dai
    rettangoli presenti nella figura
  • il descrittore di proprietà associato ad un
    insieme di pixel potrebbe avere la seguente forma
  • Red 5
  • Green 1
  • Blue 3

166
Descrittori di proprietà
  • Le proprietà vengono in genere associate ad
    insiemi di pixel
  • In genere, ogni immagine viene associata ad una
    coppia di interi positivi (m,n), chiamata la
    griglia di risoluzione dellimmagine
  • una griglia (m,n) divide limmagine in (m x n)
    celle di uguale dimensione, chiamate griglia
    dellimmagine
  • ogni cella è costituita da un insieme di pixel
  • le proprietà possono quindi essere associate a
    cia
Write a Comment
User Comments (0)
About PowerShow.com