Progetto e sviluppo di un algoritmo di compressione per dati prodotti da tracker GPS
1. Introduzione Un nuovo approccio Test e validazione Conclusioni
Progetto e sviluppo di un algoritmo di
compressione lossy per dati prodotti da dispositivi
di posizionamento
Mariano Calandra
relatore
Chiar.mo Prof. Walter Balzano
Corso di Laurea in Informatica, Universit`a degli studi di Napoli Federico II
9 Maggio 2012
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
2. Introduzione Un nuovo approccio Test e validazione Conclusioni
Dispositivi di posizionamento
Cosa sono e a cosa servono
Cos’`e? – Un dispositivo di posizionamento `e un piccolo rilevatore
in grado di registrare istante per istante le proprie coordinate di
latitudine, longitudine e tempo grazie alla tecnologia GPS.
A cosa serve? – Le rilevazioni fornite sono memorizzate per
analisi future, o condivise in tempo reale.
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
3. Introduzione Un nuovo approccio Test e validazione Conclusioni
Traiettorie e tracciati
L’insieme di tali rilevazioni `e detto traiettoria e ci permette di
sapere dov’era l’oggetto rilevato in un determinato istante
temporale.
La proiezione atemporale di tali rilevazioni `e detta tracciato.
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
4. Introduzione Un nuovo approccio Test e validazione Conclusioni
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
5. Introduzione Un nuovo approccio Test e validazione Conclusioni
Compressione di una traiettoria
Perch´e e come comprimere
Perch´e? – La memorizzazione, cos`ı come la condivisione, di un
numero elevato di traiettorie potrebbe essere computazionalmente
molto dispendiosa.
Come? – Eliminando dall’insieme di rilevazioni iniziali quelle
ridondanti o meno importanti.
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
6. Introduzione Un nuovo approccio Test e validazione Conclusioni
Gli algoritmi di compressione
La scelta di quali punti eliminare dalla traiettoria `e affidata ad un
algoritmo di compressione.
Esistono due tipi di algoritmi:
algoritmi lossless;
algoritmi lossy;
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
7. Introduzione Un nuovo approccio Test e validazione Conclusioni
Gli algoritmi di compressione
Tra gli algoritmi lossy pi`u conosciuti troviamo:
l’algoritmo di Douglas-Peucker;
l’algoritmo di Bellman;
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
8. Introduzione Un nuovo approccio Test e validazione Conclusioni
Gli algoritmi di compressione
L’algoritmo Douglas-Peucker
L’algoritmo Douglas-Peucker `e un algoritmo di compressione
appartenente alla famiglia degli algoritmi di line-simplification.
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
9. Introduzione Un nuovo approccio Test e validazione Conclusioni
Gli algoritmi di compressione
L’algoritmo Douglas-Peucker
PRO:
render grafico molto preciso
richieste computazionali non elevate
CONTRO:
scarsa approssimazione spazio-temporale
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
10. Introduzione Un nuovo approccio Test e validazione Conclusioni
Gli algoritmi di compressione
L’algoritmo Bellman
L’algoritmo di Bellman considera le traiettorie come se fossero
delle funzioni matematiche univocamente definite.
PRO:
Algoritmo spazio-temporalmente ottimale
CONTRO:
Impossibile comprimere traiettorie con dei loop
Elevata complessit`a computazionale
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
11. Introduzione Un nuovo approccio Test e validazione Conclusioni
Gli algoritmi di compressione
Bellman e la problematica dei loop
Un loop si verifica, quando in due istanti di tempo diversi il
dispositivo di rilevamento registra le stesse coordinate di latitudine
e longitudine.
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
12. Introduzione Un nuovo approccio Test e validazione Conclusioni
Un nuovo approccio
Obiettivi
Sviluppare un nuovo algoritmo che consideri le traiettorie al pari
dell’algoritmo Bellman e che inoltre:
sia insensibile ai loop;
abbia una buona qualit`a spazio-temporale;
abbia una complessit`a computazionale non troppo alta;
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
13. Introduzione Un nuovo approccio Test e validazione Conclusioni
La problematica dei loop
Come evitarli?
Esprimendo latitudini e longitudini come funzione del tempo
trascorso. Avremo dunque:
componente latitudinale;
componente longitudinale;
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
14. Introduzione Un nuovo approccio Test e validazione Conclusioni
Componenti spazio-temporali
Le componenti spazio-temporali saranno delle coppie di valori
x, y .
x y
t1 lat1
t2 lat2
t3 lat3
t4 lat4
... ...
tn latn−1
tn latn
x y
t1 lon1
t2 lon2
t3 lon3
t4 lon4
... ...
tn lonn−1
tn lonn
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
15. Introduzione Un nuovo approccio Test e validazione Conclusioni
Sintesi alle differenze
Comprendere il variare delle componenti
x y
t1 lat1
D2 = t2, lat1 − lat2
D3 = t3, lat2 − lat3
t2 lat2
t3 lat3
D4 = t4, lat3 − lat4
t4 lat4
... ...
Dn = tn, latn−1 − latn
tn−1 latn−1
tn latn
D1 avr`a come coordinate t1, 0 .
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
16. Introduzione Un nuovo approccio Test e validazione Conclusioni
Grafico sintesi alle differenze
Come sfruttarlo
La proiezione di una generica sintesi alle differenze (latitudinale o
longitudinale) avr`a un aspetto simile:
Il nostro algoritmo di compressione dovr`a ricreare tale grafico, nel
modo pi`u accurato possibile, usando un numero di punti inferiore.
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
17. Introduzione Un nuovo approccio Test e validazione Conclusioni
Polilinea approssimante
La compressione meno precisa che possiamo ottenere `e quella in
cui uniamo il primo e l’ultimo vertice.
L’intero grafico di sintesi (blu) `e rappresentato con un solo
segmento (rosso). Rappresentare un grafico come quello di figura
con un segmento comporta un errore, tale errore `e detto errore di
approssimazione.
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
18. Introduzione Un nuovo approccio Test e validazione Conclusioni
Polilinea approssimante
Se l’errore di approssimazione `e pi`u piccolo della tolleranza decisa
dall’utente allora l’algoritmo si conclude. Altrimenti...
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
19. Introduzione Un nuovo approccio Test e validazione Conclusioni
Polilinea approssimante
Se l’errore di approssimazione `e pi`u piccolo della tolleranza decisa
dall’utente allora l’algoritmo si conclude. Altrimenti...
...l’algoritmo spezza l’errore in due errori pi`u piccoli, includendo un
terzo punto al centro del grafico di sintesi.
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
20. Introduzione Un nuovo approccio Test e validazione Conclusioni
Polilinea approssimante
Adesso che l’errore di approssimazione `e pi`u di uno, si cerca qual `e
quello pi`u grande. Se questo viola la tolleranza, allora...
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
21. Introduzione Un nuovo approccio Test e validazione Conclusioni
Polilinea approssimante
Adesso che l’errore di approssimazione `e pi`u di uno, si cerca qual `e
quello pi`u grande. Se questo viola la tolleranza, allora...
...l’algoritmo spezza l’errore in due errori pi`u piccoli, come gi`a
spiegato in precedenza.
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
22. Introduzione Un nuovo approccio Test e validazione Conclusioni
Polilinea approssimante
Minima polilinea approssimante
Una volta che tutti gli errori di approssimazione saranno pi`u piccoli
della tolleranza l’algoritmo potr`a arrestare il processo di
minimizzazione dell’errore.
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
23. Introduzione Un nuovo approccio Test e validazione Conclusioni
Polilinea approssimante
Minima polilinea approssimante
Una volta che tutti gli errori di approssimazione saranno pi`u piccoli
della tolleranza l’algoritmo potr`a arrestare il processo di
minimizzazione dell’errore.
La polilinea che otterremo prender`a il nome di minima polilinea
approssimante.
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
24. Introduzione Un nuovo approccio Test e validazione Conclusioni
Polilinea approssimante
Pseudo-codice
1: procedure simplify(coords = {Tlat Tlon}, τ) return Plm
2: D = derive(coords);
3: s = 1
4: e = size(D)
5: Plm ← s, e
6: error ← MSE(D, s, e)
7: while error1.mse > τ do
8: s = error1.start
9: e = error1.end
10: vnew = round((s + e)/2)
11: Plm ← vnew
12: error ← MSE(D, s, vnew )
13: error ← MSE(D, vnew , e)
14: error1 → ∅
15: end while
16: end procedure Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
25. Introduzione Un nuovo approccio Test e validazione Conclusioni
Polilinea approssimante
Diagramma di flusso
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
26. Introduzione Un nuovo approccio Test e validazione Conclusioni
Polilinea approssimante
Minima polilinea approssimante generale
Alla fine dell’algoritmo avremo calcolato due polilinee:
una polilinea longitudinale
una polilinea latitudinale
Le due polilinee verranno fuse insieme e l’algoritmo si conclude.
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
27. Introduzione Un nuovo approccio Test e validazione Conclusioni
Test e validazione
La distanza sincronizzata euclidea
La distanza sincronizzata euclidea (SED) `e la distanza che si
crea, a parit`a di tempo, tra un punto sulla traiettoria compressa e
il rispettivo punto sulla traiettoria originaria.
La media di tali distanze ci fornir`a l’errore di approssimazione
medio.
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
28. Introduzione Un nuovo approccio Test e validazione Conclusioni
Misure SED
Tabella riepilogativa
SED
% compressione
MC DP
0.00016032 0.0001750267 10%
0.0004254233 0.0005225867 20%
0.0007182033 0.0010979333 30%
0.0011839333 0.0021174333 40%
0.0018201 0.0040697333 50%
0.0033408 0.0064422667 60%
0.0061559 0.0117570667 70%
0.0136053333 0.0241546667 80%
0.0547436667 0.0581126667 90%
0.0091281867 0.0120499311 SED Medio
0.08215368 0.10844938 SED Totale
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
29. Introduzione Un nuovo approccio Test e validazione Conclusioni
Misure SED
Grafico riepilogativo
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
30. Introduzione Un nuovo approccio Test e validazione Conclusioni
Conclusioni
PRO:
una buona compressione spazio-temporale
insensibilit`a ai loop
capacit`a computazionale quadratica
CONTRO:
scarsa compressione spaziale;
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
31. Introduzione Un nuovo approccio Test e validazione Conclusioni
Punti deboli
Considerazioni
Come mitigare questo problema?
Scegliere il nostro algoritmo solo se per compressioni
semantiche;
Utilizzare il nostro algoritmo congiuntamente ad algoritmi di
line-fitting;
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
32. Introduzione Un nuovo approccio Test e validazione Conclusioni
Sviluppi futuri
Verificare il margine di vantaggio ottenibile parallelizzando
l’algoritmo;
Sviluppo di un metodo standard per la valutazione delle
traiettorie compresse;
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy
33. Introduzione Un nuovo approccio Test e validazione Conclusioni
Grazie per l’attenzione!
Mariano Calandra Progetto e sviluppo di un algoritmo di compressione lossy