Poké-Pi-Dex è il nostro progetto per poké-weeb nostalgici, basato su deep learning / computer vision. Realizzato da Karina Chichifoi e Michele Righi.
Abbiamo ricreato il clone di un Pokédex che riconosce immagini di Pokémon della prima generazione, sfruttando una Rete Neurale Convoluzionale. È stato sviluppato per eseguire su un Raspberry Pi4 con display LCD, PiCamera ed altri componenti collegati.
Il case è fatto di cartoncino riciclato. 🌱
Relazione
·
Presentazione
·
Att. Progettuale
·
Richiedi una Feature|Segnala un Bug
·
English
Guarda la demo su YouTube!
TODO
To use the application follow these steps:
- conda TO-DO
- Scarica l'ultima versione
- Estrai lo zip
- Crea il virtual environment:
conda env create -f environment.yml
- Esegui l'applicazione:
python poke-pi-dex.py
- Dataset
- trovare un dataset adatto per la rete neurale
- sistemarlo (ritagliare le immagini) ed estenderlo
- Classificatore
- CNN con 3 layer convoluzionali e 2 layer FC
- data augmentation (specchiamento, rotazione, contrasto e
luminositàrandomici) - provare dropout
- provare batch norm
- grafici loss e accuracy
- test con immagini reali
- miglirare la vecchia CNN
- Applicazione
- Repository Pokémon
- trovare un file .json e caricarlo in un dizionario
- controllarlo e sistemarlo
- creare una classe Pokémon
- input video
- creare una classe separata
- creare una funzione che permette di ottenere un frame dalla PiCamera (e fare i test)
- visualizzare l'immagine all'interno di un canvas
- struttura GUI
- creare un menu principale
- creare un pannello delle informazioni sull'app
- creare una schermata per il Pokédex, divisa in 2 parti (sinistra per il video input, destra per i dettagli del Pokémon)
- creare una vista per le impostazioni
- bottone per ottenere il frame corrente
- etichette ed entry per i dettagli del Pokémon (statistiche con barre dinamiche e di colori differenti)
- aggiungere bottoni per scorrere fra le evoluzioni successive (ad esempio: Eevee ha diverse evoluzioni possibili)
- cambiare la entry del "tipo/i" (da testo a immagine)
- aggiungere bottone per riprodurre il verso
- raccogliere i file audio dei versi
- aggiungere la lettura della descrizione
- ottenere i file audio delle descrizioni utilizzando un bot di lettura
- realizzare l'aggiornamento per lingue differenti
- rendere le impostazioni persistenti <!-- aggiungerlo a quello in inglese)
- modalità debug
- Repository Pokémon
- Setup Raspberry
- comprare i componenti
- display LCD
- PiCamera
- batteria (powerbank)
- speaker
- bottoni
- adattatore type-C a gomito
- convertitore A/D (ADS1115)
- integrare i componenti
- display LCD
- PiCamera
- batteria
- speaker
- bottoni
- joystick analogico
- preparare il SO (disabilitare password, abilitare le interfacce, risolvere le dipendenze, ...)
- comprare i componenti
- Deployment dell'app
- preparare l'ambiente (installare python3 e i package necessari)
- clonare la repo
- test dell'applicazione
- Prorotipo del case ~50h
- progetto tecnico
- ritagliare il cartoncino ed incollare le parti
- verniciatura ad acrilico
- Relazione
- impostare il documento in LaTeX
- abbozzare una possibile suddivisione in capitoli
- scrivere il report
- Presentazione
- Video Dimostrativo
- Extra & Sviluppi Futuri
- usare una rete neurale più complessa con il nuovo dataset
- usare nuove forme di data augmentation
- aggiungere un amplificatore allo speaker
- inserire uno o più Led vicino all'obiettivo della PiCamera
- aggiungere un'opzione alle impostazioni per abilitare/disabilitare il congelamento del video dopo aver scattato la foto
- finire il modello 3D del case e stamparlo
- estendere il Pokédex alle generazioni seguenti
- fare il porting su mobile (Android. iOS)
- dati Pokémon:
- Calibrazione camera con OpenCV
- Inferenza con Tensorflow-lite
- Conversione con Tensorflow-lite
- Quantizzazione post-allenamento con Tensorflow-lite
Distribuito sotto Licenza GPLv3. Vedi LICENSE
per ulteriori informazioni.