Dubbio su teorema di Parseval
salve a tutti, non so se è la sezione giusta, dato che l'argomento è l'indicizzazione delle immagini, ma dato il contenuto teorico ho preferito postare qui. nel caso fosse opportuno spostare, fate pure.
la questione è questa:
contesto: indicizzazione delle del vettore delle caratteristiche di un immagine (caratteristiche come l'istogramma, oppure qualche caratteristica shape-based tipo la distanza di ogni punto dal baricentro, o qualsiasi altra possibile caratteristica non è importante. l'importante è che otteniamo un vettore n-dimensionale con n piuttosto grande)
il pezzo in questione che non riesco a comprendere è:
ecco, quello che non mi è chiaro è il perchè nello spazio della trasformata vengono restituite TUTTE le immagini che si trovano ad una distanza minore di $\epsilon$ dalla query, eliminando così il problema dei false dismissals (immagini pertinenti ma non incluse nel ResultSet)
spero riusciate a chiarirmi le idee, ciao
la questione è questa:
contesto: indicizzazione delle del vettore delle caratteristiche di un immagine (caratteristiche come l'istogramma, oppure qualche caratteristica shape-based tipo la distanza di ogni punto dal baricentro, o qualsiasi altra possibile caratteristica non è importante. l'importante è che otteniamo un vettore n-dimensionale con n piuttosto grande)
il pezzo in questione che non riesco a comprendere è:
INDEXING THE IMAGE DESCRIPTION
The major problem when dealing with large image databases is the efficiency of the
image retrieval. This efficiency depends on the used schema for indexing.
An image features could be represented as a feature vector that corresponds to a point
in a multi-dimensional feature space. There are three popular approaches for multidimensional
indexing: R-trees (particularly R* trees), linear quadtrees, and grid files. Except
them the following techniques for increasing the efficiency of the image indexing can be
used:
a.) Technique for minimising the number of dimensions for the multi-dimensional
vector which represents the logical view of the image
Let the vector be $X(x_0, x_1, …, x_(n-1))$. The Discrete Fourier Transform $X_f$ of a $X$ is
defined as a sequence Xf of n complex numbers:
$X_f = \frac{1}{sqrt(N)}\sum_{t = 0}^{N-1} x_t e^{{-i \omegat}/N}$
$f = 0, ... , N - 1$
The Parseval theorem gives that:
$\sum_{t = 0}^{N-1}|x_t^2| = \sum_{f = 0}^{N-1}|X_f^2|$
Let a query is described with a sequence of real numbers $q_i (i = 0, …, N-1)$ and an
image from the database with a sequence of real numbers $d_i (i = 0, …, N-1)$. Let’s consider
the two images being $\epsilon$; close if :
$\sqrt{\sum_{i = 0}^{N - 1}|q_i - d_i|^2} <= \epsilon$, but using the Parseval theorem
$\sqrt{\sum_{f = 0}^{N - 1}|Q_f - D_f|^2} = \sqrt{\sum_{i = 0}^{N - 1}|q_i - d_i|^2} <= \epsilon$. Keeping only the first $f_c < N$ coefficients,
we have:
$\sqrt{\sum_{f = 0}^{f_c}|Q_f - D_f|^2} <= \sqrt{\sum_{f = 0}^{N - 1}|Q_f - D_f|^2} = \sqrt{\sum_{i = 0}^{N - 1}|q_i - d_i|^2} <= \epsilon$
In other words if we keep only $f_c$ elements of the complex vector the result subset will
contain all the images from the database in $\epsilon$ vicinity of the query image, but as there will be
spurious images also which are further then $\epsilon$ from the query image. In [8] an experiment
was conducted. It shows that the optimal choice for $f_c$ is $3$.
ecco, quello che non mi è chiaro è il perchè nello spazio della trasformata vengono restituite TUTTE le immagini che si trovano ad una distanza minore di $\epsilon$ dalla query, eliminando così il problema dei false dismissals (immagini pertinenti ma non incluse nel ResultSet)
spero riusciate a chiarirmi le idee, ciao
Risposte
Il teorema di Parseval (qui nella versione discreta) è meglio formulato in termini astratti:
la DFT è un isomorfismo isometrico di $CC^N$ in sé [size=75](*)[/size].
"Isomorfismo isometrico" tra spazi normati $X, Y$ è una applicazione $F:X\to Y$ lineare, bigettiva, che preserva le distanze. Il tuo testo non ha sottolineato bene questo punto, ha solo ricordato che la DFT preserva le distanze.
______________
(*) Mi riferisco alla definizione di DFT che usa il tuo libro, quella con coefficiente $1/(sqrt(N))$.
la DFT è un isomorfismo isometrico di $CC^N$ in sé [size=75](*)[/size].
"Isomorfismo isometrico" tra spazi normati $X, Y$ è una applicazione $F:X\to Y$ lineare, bigettiva, che preserva le distanze. Il tuo testo non ha sottolineato bene questo punto, ha solo ricordato che la DFT preserva le distanze.
______________
(*) Mi riferisco alla definizione di DFT che usa il tuo libro, quella con coefficiente $1/(sqrt(N))$.
prima di tutto grazie per la risposta, ma purtroppo non mi ha aiutato a capire T.T
Chiamiamo $F$ la DFT, vista come applicazione $F: CC^N \to CC^N$. Abbiamo detto che è un isomorfismo isometrico: questo concretamente significa che, fissato $epsilon>0$
$|x-y|\le epsilon \iff |Fx-Fy|\le epsilon$.
Ecco perché, dovendo cercare i vettori $x$ distanti da $y$ meno di $epsilon$, puoi invece cercare i vettori $Fx$ distanti da $Fy$ meno di $epsilon$ e sei sicuro di beccarli tutti.
$|x-y|\le epsilon \iff |Fx-Fy|\le epsilon$.
Ecco perché, dovendo cercare i vettori $x$ distanti da $y$ meno di $epsilon$, puoi invece cercare i vettori $Fx$ distanti da $Fy$ meno di $epsilon$ e sei sicuro di beccarli tutti.
mmm non riesco a convincermi: se la DFT conserva le distanze, perchè allora vorrei cercare i vettori $F_x$ distanti meno di $\epsilon$ da $F_y$? cerco direttamente gli $x$.
inoltre (collegato a questo dubbio), perchè cercando gli $x$ a distanza minore di $\epsilon$ da $y$ rischio di tralasciarne qualcuno?
inoltre (collegato a questo dubbio), perchè cercando gli $x$ a distanza minore di $\epsilon$ da $y$ rischio di tralasciarne qualcuno?
"Net_Raider":Questo non lo so, dipende dall'applicazione. Evidentemente è più semplice ragionare sui trasformati che sui vettori originari.
mmm non riesco a convincermi: se la DFT conserva le distanze, perchè allora vorrei cercare i vettori $F_x$ distanti meno di $\epsilon$ da $F_y$? cerco direttamente gli $x$.
inoltre (collegato a questo dubbio), perchè cercando gli $x$ a distanza minore di $\epsilon$ da $y$ rischio di tralasciarne qualcuno?Ok. Dimostriamo formalmente l'affermazione di prima. Siano $epsilon>0$ e $y\inCC^N$ fissati, sia $Y=Fy$.
Se $x\inCC^N$ è tale che $|x-y|
Quindi $|x-y|
questo l'ho capito.
quello che non mi è chiaro (rifacendomi agli appunti):
considerando $k < < n$ coefficienti di fourier ottengo che la distanza tra $F_x$ e $F_y$ considerando solo tali $k$ coefficienti è minore della distanza tra $F_x$ e $F_y$ considerata su tutti i coefficienti, che a sua volta è uaguale alla distanza tra $x$ e $y$, che a sua volta è minore o uguale ad $\epsilon$, cioe
$\sqrt{\sum_{f = 0}^{k}|Q_f - D_f|^2} <= \sqrt{\sum_{f = 0}^{N - 1}|Q_f - D_f|^2} = \sqrt{\sum_{i = 0}^{N - 1}|q_i - d_i|^2} <= \epsilon$
ora, computazionalmente confrontare $k$ coefficienti, anzichè $n$ è chiaramente un vantaggio. ma sfruttando tale caratteristica cosa mi consente di dire: "con questo metodo becco al 100% tutte le immagini che distano meno di $\epsilon$ dalla query più qualche falso positivo"?
a questo punto mi viene da pensare che è un metodo equivalente a confrontare gli $x$ ma computazionalmente molto più veloce. ma allora perchè specificare che si rimuove il problema dei falsi negativi? (false dismissals)
quello che non mi è chiaro (rifacendomi agli appunti):
considerando $k < < n$ coefficienti di fourier ottengo che la distanza tra $F_x$ e $F_y$ considerando solo tali $k$ coefficienti è minore della distanza tra $F_x$ e $F_y$ considerata su tutti i coefficienti, che a sua volta è uaguale alla distanza tra $x$ e $y$, che a sua volta è minore o uguale ad $\epsilon$, cioe
$\sqrt{\sum_{f = 0}^{k}|Q_f - D_f|^2} <= \sqrt{\sum_{f = 0}^{N - 1}|Q_f - D_f|^2} = \sqrt{\sum_{i = 0}^{N - 1}|q_i - d_i|^2} <= \epsilon$
ora, computazionalmente confrontare $k$ coefficienti, anzichè $n$ è chiaramente un vantaggio. ma sfruttando tale caratteristica cosa mi consente di dire: "con questo metodo becco al 100% tutte le immagini che distano meno di $\epsilon$ dalla query più qualche falso positivo"?
a questo punto mi viene da pensare che è un metodo equivalente a confrontare gli $x$ ma computazionalmente molto più veloce. ma allora perchè specificare che si rimuove il problema dei falsi negativi? (false dismissals)
ok, credo di aver capito.
cercando in internet altri papers penso di aver compreso la situazione.
dunque il problema è: indicizzare dati multimediali (segnali, suoni, volti, immagini ecc...)
abbiamo bisogno di un metodo che in fase di ricerca dei risultati (nel caso di whole match queries, cioè ricerca su tutto il db) sia
-veloce
-corretto, cioè deve includere almeno tutti gli oggetti qualificanti
-dinamico, cioè che sia facile da gestire (inserimenti, cancellazioni, modifiche nel db).
un'idea sarebbe una scansione sequenziale, ma ovviamente questo sarebbe impensabile per db di grosse dimensioni
una alternativa è la sequente:
-un metodo veloce (ma rozzo) per eliminare tutti gli oggetti non qualificanti
-utilizzare uno spatial access method per ottenere risultati più veloci rispetto alla scansione sequenziale
l'idea alla base di questo metodo è quella di trovare una trasformazione che non distorce le distanze (l'ideale sarebbe una trasformazione che le mantiene uguali, in pratica si determina una distanza che è un limite inferiore) per garantire l'assenza di falsi negativi.
[...]
ecco il punto! per effettuare l'alternativa faster ho bisogno di una trasformazione che non mi altera le distanze. io invece pensavo che attraverso la trasformata ero sicuro di prendere tutti i dati significativi, invece il problema era il contrario: determinare un modo più veloce di potatura che però mi conservi la correttezza dei dati
grazie per il tempo che mi hai dedicato. ^^
cercando in internet altri papers penso di aver compreso la situazione.
dunque il problema è: indicizzare dati multimediali (segnali, suoni, volti, immagini ecc...)
abbiamo bisogno di un metodo che in fase di ricerca dei risultati (nel caso di whole match queries, cioè ricerca su tutto il db) sia
-veloce
-corretto, cioè deve includere almeno tutti gli oggetti qualificanti
-dinamico, cioè che sia facile da gestire (inserimenti, cancellazioni, modifiche nel db).
un'idea sarebbe una scansione sequenziale, ma ovviamente questo sarebbe impensabile per db di grosse dimensioni
una alternativa è la sequente:
-un metodo veloce (ma rozzo) per eliminare tutti gli oggetti non qualificanti
-utilizzare uno spatial access method per ottenere risultati più veloci rispetto alla scansione sequenziale
l'idea alla base di questo metodo è quella di trovare una trasformazione che non distorce le distanze (l'ideale sarebbe una trasformazione che le mantiene uguali, in pratica si determina una distanza che è un limite inferiore) per garantire l'assenza di falsi negativi.
[...]
ecco il punto! per effettuare l'alternativa faster ho bisogno di una trasformazione che non mi altera le distanze. io invece pensavo che attraverso la trasformata ero sicuro di prendere tutti i dati significativi, invece il problema era il contrario: determinare un modo più veloce di potatura che però mi conservi la correttezza dei dati
grazie per il tempo che mi hai dedicato. ^^
Ciao! Sono il tuo Tutor AI, il compagno ideale per uno studio interattivo. Utilizzo il metodo maieutico per affinare il tuo ragionamento e la comprensione. Insieme possiamo:
- Risolvere un problema di matematica
- Riassumere un testo
- Tradurre una frase
- E molto altro ancora...
Il Tutor AI di Skuola.net usa un modello AI di Chat GPT.
Per termini, condizioni e privacy, visita la relativa pagina.
Per termini, condizioni e privacy, visita la relativa pagina.