logo

Protected by Copyscape Duplicate Content Check

Benvenuto!
PORTFOLIO

Elenco dei progetti (più importanti) che ho realizzato


CATEGORIE DISPONIBILI

>> Scegliere una categoria fra le seguenti: <<

TESI UNIVERSITARIE
 

PRIMA TESI (vo) - Editing and querying di immagini mediante funzioni wavelet - 2002

Questa è la tesi che ho svolto per la laurea con il vecchio ordinamento in Scienze dell'Informazione.
Tramite Microsoft Visual C++ 6.0 ho realizzato due programmi dopo averli progettati utilizzando il formalismo UML: uno per l'editing e l'altro per il querying di immagini multirisoluzione. Il programma di editing gestisce immagini in multirisoluzione rappresentate con 6 spazi colorimetrici, ha la funzione di zoom, gestisce la trasparenza e ha pennelli di forme diverse.
Prima di poter effettuare una ricerca su un insieme di immagini, occorre farle analizzare da uno script che usando di un algoritmo genetico, fa in modo che il programma di ricerca funzioni nel modo migliore. Prevedendo un lungo periodo di elaborazione per un numero di immagini elevato ho scritto lo script in maniera tale che supportasse una modalità di funzionamento di tipo batch: passando alcuni parametri è possibile stabilire l'esatto comportamento dell'algoritmo genetico il tipo di codifica da utilizzare per ogni individuo, la sua precisione, il numero di iterazioni, di individui, ecc. In questo modo è possibile suddividere manualmente l'insieme iniziale di immagini e procedere ad un'elaborazione in parallelo usando diversi computer
Dopo questa fase di pre-elaborazione, che avviene una sola volta, è possibile usare il secondo programma che permette di trovare un'immagine disegnando uno schizzo a mano libera in tempi così brevi che è possibile trasformare il programma per supportare una ricerca interattiva (man mano che si migliora il disegno si aggiorna l'insieme delle prime 20 immagini più simili a quella fornita).

Nel tentativo di elaborare un numero elevato di immagini ho effettuato il porting della parte di pre-elaborazione del programma su linux, in previsione di un utilizzo su un cluster di 16 pc linux disponibili all'università. Purtroppo per limiti di tempo mi son dovuto accontentare dell'elaborazione di quasi 2000 immagini utilizzando i pc della mia lan e del mio amico Stefano.

Note particolari:

  • tempo di realizzazione della tesi: 13 mesi (dei quali gli ultimi 3 lavorando 16 ore al giorno :shock:)
  • oltre a quanto descritto ho realizzato alcuni spider per trovare e scaricare da internet le immagini da elaborare
  • ho effettuato test sulla robustezza della nuova metrica Lq utilizzando diverse elaborazioni sulle immagini di partenza, comparando ogni volta i risultati ottenuti con le metriche 'convenzionali'.
  • anche l'algoritmo genetico l'ho realizzato in C++ ed è lanciabile da prompt dei comandi, al fine di permettere un'elaborazione di tipo batch e ridurre i lunghi tempi di elaborazione

Strumenti usati: UML, Microsoft Visual C++ 6.0, gcc su Linux, C++ con Winsock (per gli spider), Photoshop, Picture publisher, Powerpoint (diapositive animate per la discussione della tesi)

Esempio di querying

Esempio di ricerca dato uno schizzo realizzato a mano
(l'immagine desiderata è al 14° posto (3^ riga, 4^ colonna)


SECONDA TESI (ls) - Applicazione delle funzioni wavelet al querying di immagini - 2004

Questa è la tesi che ho svolto per la laurea specialistica in Scienze dell'Informazione.
Tramite Microsoft Visual C++ 6.0 ho analizzato il progetto di ricerca di immagini che avevo realizzato per la prima tesi e ne ho effettuato un refactoring per crearne un programma client/server e poter effettuare l'elaborazione di un numero molto elevato di immagini utilizzando la potenza di calcolo di oltre 130 computer presenti nei laboratori della facoltà.
Grazie a questa applicazione, immagini, risultati parziali, richieste di dati da elaborare vengono scambiati fra tutti i computer che partecipano all'elaborazione senza alcun intervento umano: l'unica operazione umana è quella di copiare le immagini su una cartella del computer che farà da server durante l'elaborazione e lanciare su ogni computer il programma client.
Le operazioni compiute sono analoghe a quelle effettuate per la prima tesi, ma ulteriormente ottimizzate e modificate affinché possano essere gestite in maniera parallela senza problemi.
Il risultato dell'elaborazione, rimasto compatibile con quello generato dalla prima tesi, permette di effettuare la ricerca delle immagini fornendo un disegno realizzato a mano, usando un database d'immagini grande a piacere.

Strumenti usati: UML, Microsoft Visual C++ 6.0, C++ con Winsock, Powerpoint (diapositive animate per la discussione della tesi)