Vai al contenuto
FRFederico Raponi
Tutti i lavori

Tesimar – ott 2024

Progettazione e implementazione di un sistema di raccolta dati per l’allenamento di un modello di Machine Learning

Tesi triennale da tirocinio su GeneroCity, un’app di smart parking che capisce quando lasci un parcheggio. Ho progettato e realizzato il backend che raccoglie i dati dei sensori del telefono per addestrarne il modello, e ho coperto con unit test il codice Go.

GeneroCity è un’app di smart parking sviluppata alla Sapienza. L’idea è che gli automobilisti si scambino i parcheggi senza toccare il telefono: l’app capisce da sola quando stai lasciando un posto e lo offre a chi lo sta cercando lì vicino. Per farlo, un modello di machine learning legge i sensori del telefono (GPS, Wi-Fi, Bluetooth, stato di carica della batteria) e riconosce quando stai girando in cerca di parcheggio o quando lo stai lasciando. Per addestrare quel modello servono dati, e tanti.

Il mio tirocinio, diventato la mia tesi triennale, riguardava il backend che raccoglie quei dati.

Cosa ho realizzato

  • Endpoint per la raccolta dati. Nuovi endpoint REST nel backend Go per salvare le letture dei sensori del telefono, con lo schema del database progettato apposta (tabelle dei sensori e dei dati in MariaDB) e la documentazione di ogni endpoint.
  • Esportazioni più veloci. L’endpoint che consegna i dati raccolti alla parte di ML rallentava man mano che le tabelle crescevano; ho rivisto lo schema e aggiunto la paginazione.
  • Test. Ho eliminato codice duplicato e scritto gli unit test mancanti, usando go-sqlmock per il database e un piccolo MockFS scritto da me per simulare il file system, così da testare in isolamento il codice che legge e scrive file.
  • GeneroCity BLE. Contributi minori all’app che registra i dispositivi Bluetooth vicini, uno dei segnali usati dal modello.

La tesi descrive in dettaglio l’architettura del progetto, le scelte di progettazione REST, il lavoro sui test e la pipeline di raccolta dati.

Relatore: Dott. Emanuele Panizzi.