Italiano index Inglese

Progetti

Riconoscimento Facciale
Motivazione e Obiettivi: Il riconoscimento facciale è un campo in continua evoluzione, con applicazioni che vanno dalla sicurezza biometrica ai social media. L'obiettivo era sviluppare un sistema che potesse identificare e analizzare le caratteristiche facciali con elevata precisione, superando le limitazioni dei metodi tradizionali e adattandosi a vari ambienti.
Metodologia di Sviluppo: Abbiamo iniziato con una fase di ricerca approfondita sui metodi di rilevamento facciale, concentrandoci sul metodo Viola and Jones per la sua efficienza e affidabilità. Utilizzando OpenCV, abbiamo implementato il metodo in Java, sfruttando le sue funzionalità per il trattamento delle immagini e la visione artificiale.
Sfide e Soluzioni: Uno dei maggiori sfidi era garantire che il sistema fosse in grado di operare in condizioni di illuminazione variabili e con diversi livelli di distorsione facciale. Abbiamo affrontato questo problema attraverso l'uso di tecniche di normalizzazione delle immagini e l'adattamento del modello per gestire variazioni nelle caratteristiche facciali.
Risultati e Impatto: Il progetto ha dimostrato la possibilità di sviluppare un sistema di riconoscimento facciale altamente preciso e versatile, con applicazioni potenziali in molteplici settori. L'esperienza ha rafforzato la nostra comprensione della visione artificiale e dell'apprendimento automatico, offrendo una piattaforma per futuri sviluppi nel campo della sicurezza e dell'assistenza personalizzata.

F# Code Formatter
Motivazione e Obiettivi: Il mantenimento del codice ben formato è fondamentale per la leggibilità e la manutenzione del software. Tuttavia, la formattazione del codice F# può essere particolarmente sfidante a causa della sua sintassi ricca e delle convenzioni di stile. L'obiettivo era creare uno strumento che potesse automaticamente formattare il codice F# in modo coerente e conforme alle linee guida.
Metodologia di Sviluppo: Abbiamo iniziato con una revisione approfondita delle convenzioni di stile F# e delle tecniche di parsing del codice. Successivamente, abbiamo sviluppato un parser che analizza il codice F# e identifica le strutture di controllo, le dichiarazioni e altri elementi chiave per applicare la formattazione desiderata.
Sfide e Soluzioni: Uno dei principali sfidi era gestire correttamente i blocchi di codice annidati e i commenti multi-linea senza alterare la logica del programma. Abbiamo risolto questo problema attraverso l'implementazione di un algoritmo di formattazione che tiene conto della struttura del codice e delle posizioni dei commenti.
Risultati e Impatto: Lo strumento di formattazione del codice F# ha dimostrato di essere efficace nel migliorare la leggibilità del codice e ridurre la frattura culturale tra diversi membri dello staff. L'esperienza ha fornito preziose lezioni su come sviluppare strumenti di supporto per i linguaggi di programmazione e ha aperto nuove possibilità per l'automazione e l'ottimizzazione del flusso di lavoro di sviluppo.

Simulazione Negozio Online di Videogiochi
Motivazione e Obiettivi: Creare un simulatore di negozio online di videogiochi permette di esplorare le sfide e le opportunità nel commercio elettronico, specialmente nel settore dei giochi. L'obiettivo era sviluppare un sistema che offrisse una esperienza utente fluida, con un backend robusto e sicuro per la gestione dei dati.
Metodologia di Sviluppo: Abbiamo iniziato con la definizione delle funzionalità chiave, come la gestione dei prodotti, il carrello di shopping, e il checkout. Successivamente, abbiamo implementato il backend in PHP, utilizzando PostgreSQL per il database e PDO per la sicurezza. L'interfaccia utente è stata sviluppata con HTML, CSS e JavaScript, con un focus particolare sulla user experience.
Sfide e Soluzioni: Uno dei maggiori sfidi era garantire che il sito fosse performante e sicuro, resistendo a potenziali attacchi. Abbiamo affrontato questo problema attraverso l'uso di prepared statements e l'ottimizzazione delle query SQL, assicurando che il sito fosse accessibile e sicuro per gli utenti.
Risultati e Impatto: La simulazione ha fornito una comprensione pratica delle complesse dinamiche del commercio elettronico, dalle strategie di marketing alle tecniche di ottimizzazione del sito. L'esperienza ha rafforzato le competenze in PHP, JavaScript e nell'uso di database relazionali, offrendo una base solida per futuri progetti nel settore del e-commerce.

Robot Cacciatore di Mine
Motivazione e Obiettivi: Combiniare la programmazione con l'ingegneria fisica per creare un robot che può interagire con il mondo reale in modi creativi e utili. L'obiettivo era sviluppare un robot capace di navigare autonomamente in un campo da gioco, riconoscere e raccogliere mine, e poi ricollocarle nelle loro posizioni originali.
Metodologia di Sviluppo: Abbiamo iniziato con la progettazione del robot, scegliendo componenti hardware appropriati e sviluppando un firmware che potesse gestire i sensori e i motori. L'interfaccia con l'applicazione Android è stata implementata tramite Bluetooth, consentendo il controllo remoto del robot.
Sfide e Soluzioni: Uno dei principali sfidi era garantire che il robot fosse in grado di operare in un ambiente variabile e di riconoscere accuratamente le mine. Abbiamo risolto questo problema attraverso l'uso di algoritmi di visione artificiale e l'adattamento del robot per gestire variazioni nel terreno e nelle condizioni di illuminazione.
Risultati e Impatto: Il robot cacciatore di mine ha dimostrato come la tecnologia possa essere utilizzata per creare soluzioni divertenti e utili, oltre a fornire una piattaforma per esplorare concetti di programmazione e ingegneria più avanzati. L'esperienza ha rafforzato la nostra comprensione della robotica e dell'interazione uomo-macchina, offrendo nuove direzioni per futuri progetti in queste aree.

Gestione Ospedale Pepa
Motivazione e Obiettivi: Modellare un sistema di gestione ospedaliera può aiutare a comprendere meglio le complesse dinamiche sanitarie e a sviluppare soluzioni per migliorare l'efficienza e la cura dei pazienti. L'obiettivo era creare un modello che simboleggiasse un ospedale virtuale, con componenti interagenti che gestiscono varie attività.
Metodologia di Sviluppo: Abbiamo iniziato con la definizione dei componenti chiave del modello, come Reception, Ambulance, Blood, Xray, Operation, e Recovery, e abbiamo sviluppato un sistema di decisione che automatizza il processo di pianificazione delle cure per i pazienti.
Sfide e Soluzioni: Uno dei principali sfidi era garantire che il modello fosse in grado di gestire situazioni complesse e variabili, come la disponibilità di letti e l'urgente necessità di procedure mediche. Abbiamo risolto questo problema attraverso l'implementazione di algoritmi di ottimizzazione e la creazione di un sistema di monitoraggio e feedback.
Risultati e Impatto: La simulazione dell'ospedale Pepa ha fornito una comprensione pratica delle sfide operative in ambito sanitario e ha dimostrato come la tecnologia possa essere utilizzata per migliorare l'efficienza e la qualità delle cure. L'esperienza ha rafforzato le competenze in programmazione orientata agli oggetti e nell'analisi dei sistemi, offrendo una base solida per futuri progetti nel settore sanitario.

Ciascuno di questi progetti ha rappresentato un'opportunità per affinare competenze specifiche, superare sfide tecniche e contribuire a soluzioni innovanti. Attraverso l'esecuzione di questi progetti, abbiamo acquisito una maggiore comprensione del processo di sviluppo software, dall'idea iniziale alla realizzazione finale, e abbiamo imparato a valutare criticamente le nostre soluzioni e a cercare sempre spazi di miglioramento.

Analizzatore LiSA, Taint analysis tuple La taint analysis è una tecnica cruciale nelle reti di comunicazione, utilizzata per verificare che una variabile mantenga la sua integrità e arrivi a destinazione con lo stesso valore che aveva alla fonte. Questo metodo garantisce la coerenza e la sicurezza dei dati, impedendo modifiche non autorizzate durante la trasmissione. In questo progetto, mi propongo di estendere il concetto di taint analysis dal suo uso tradizionale nelle reti di comunicazione al regno dei set di dati. Il nostro obiettivo è migliorare la sicurezza dei dati contenuti nelle tuple, salvaguardandoli da modifiche non autorizzate e assicurandone l'integrità durante tutto il loro ciclo di vita.
L’estensione proposta prevede lo sviluppo di un quadro robusto che applichi i principi dell’analisi della contaminazione ai set di dati. Questo framework traccerà il flusso di dati all'interno di un set di dati, contrassegnando e monitorando l'origine di ciascuna tupla e le successive trasformazioni. In questo modo, possiamo rilevare e prevenire eventuali alterazioni non autorizzate, garantendo che i dati rimangano affidabili e non modificati rispetto al loro stato iniziale.
Il progetto comprende diversi componenti chiave: la progettazione di marcatori di contaminazione per gli elementi del set di dati, lo sviluppo di algoritmi per il tracciamento e la verifica dell'integrità dei dati e l'integrazione di questi componenti nei sistemi di gestione dei database esistenti.
Attraverso questa estensione, miriamo ad affrontare le crescenti preoccupazioni relative alla manomissione e all'integrità dei dati in varie applicazioni, tra cui transazioni finanziarie, cartelle cliniche e dati governativi sensibili. Garantendo che i dati all'interno delle tuple siano sicuri e inalterati, possiamo migliorare in modo significativo l'affidabilità e l'attendibilità dei set di dati critici. Questo progetto non solo amplia l’applicazione dell’analisi di contaminazione, ma contribuisce anche alla sicurezza e alla robustezza complessive dei sistemi di gestione dei dati.

In svolgimento

Ricostruzione 3D
Motivazione e obiettivi: Il progetto mira a sviluppare due programmi distinti ma correlati per migliorare la calibrazione della fotocamera e le tecnologie di scansione 3D. L'obiettivo principale del primo programma, un calibratore di fotocamera, è automatizzare il processo di caricamento dei fotogrammi da un video di calibrazione per calcolare i parametri intrinseci della fotocamera. Ciò include la determinazione della matrice intrinseca (K) e del vettore di distorsione della lente sulla base di un modello a 5 parametri. L'obiettivo è ottenere questa calibrazione senza alcun intervento da parte dell'utente, fornendo al tempo stesso l'errore di riproiezione Root Mean Square (RMS) insieme all'output della calibrazione. Il secondo programma, uno scanner 3D, mira a leggere ed elaborare uno dei tre video forniti (gatto, cubo e palla) fotogramma per fotogramma. L'obiettivo qui è calcolare una nuvola di punti 3D della scena, catturando tutti i punti 3D illuminati dalla linea laser.
Metodologia di sviluppo: Lo sviluppo del calibratore della fotocamera prevede l'utilizzo di tecniche di visione artificiale per estrarre fotogrammi dal video di calibrazione e applicare algoritmi per calcolare la matrice intrinseca e i parametri di distorsione dell'obiettivo. Il programma è progettato per funzionare in modo autonomo, garantendo un intervento minimo da parte dell'utente e fornendo risultati coerenti. Per lo scanner 3D la metodologia prevede l'elaborazione di ogni fotogramma dei video forniti per rilevare la linea laser e ricostruire le coordinate 3D dei punti illuminati. Vengono utilizzati algoritmi avanzati di elaborazione delle immagini e ricostruzione 3D per creare un'accurata nuvola di punti 3D della scena.
Sfide e soluzioni: durante lo sviluppo di questi programmi sono state incontrate diverse sfide. Per il calibratore della fotocamera, garantire un calcolo accurato dei parametri intrinseci senza l'intervento dell'utente è stata una sfida significativa. Questo problema è stato risolto implementando algoritmi robusti in grado di gestire le variazioni nei fotogrammi video di input. Un'altra sfida è stata la riduzione al minimo dell'errore di riproiezione RMS, ottenuta attraverso tecniche di ottimizzazione iterative. Per lo scanner 3D, il rilevamento accurato della linea laser in condizioni di illuminazione variabili e l’elaborazione dei fotogrammi in tempo reale hanno rappresentato sfide importanti. Questi sono stati mitigati utilizzando metodi di soglia adattivi e algoritmi efficienti di elaborazione dei fotogrammi per garantire una ricostruzione 3D precisa e rapida. Risultati e impatto: Il calibratore della fotocamera calcola con successo i parametri intrinseci della fotocamera con un intervento minimo da parte dell'utente, fornendo risultati di calibrazione affidabili e l'errore di riproiezione RMS. Ciò ha implicazioni significative per le applicazioni che richiedono una calibrazione precisa della fotocamera, come nella robotica e nella visione artificiale. Il programma di scanner 3D ricostruisce in modo efficace le nuvole di punti 3D dai video forniti, offrendo un prezioso strumento per applicazioni nella modellazione 3D, nella realtà aumentata e nel riconoscimento degli oggetti. Lo sviluppo di questi programmi migliora le capacità di calibrazione della fotocamera e scansione 3D, fornendo soluzioni accurate ed efficienti per una vasta gamma di applicazioni tecnologiche.

Gioco di formazione di economia a Ca' Foscari
Sono attualmente impiegato con un contratto Co.Co.Co. di 9 mesi presso l'Università Ca' Foscari di Venezia con la quale sto sviluppando un gioco di formazione per economia. Sviluppare un gioco educativo in Unity per promuovere la comprensione dei principi economici di base (risorse, scelte, costi-opportunità, motivazione) in contesti scolastici o formativi, nell’ambito del Piano Nazionale di Ripresa e Resilienza (PNRR).