{"id":15020580,"url":"https://github.com/trykatchup/poke-pi-dex","last_synced_at":"2025-04-10T18:22:18.280Z","repository":{"id":59917982,"uuid":"390749620","full_name":"TryKatChup/Poke-Pi-Dex","owner":"TryKatChup","description":"Our deep learning for computer vision related project for nostalgic poke weebs (Sistemi digitali, Unibo).","archived":false,"fork":false,"pushed_at":"2024-02-11T12:02:57.000Z","size":106720,"stargazers_count":23,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T16:02:30.546Z","etag":null,"topics":["artificial-intelligence","cnn","cnn-keras","computer-vision","deep-learning","image-classification","image-processing","machine-learning","numpy","opencv","poke-pi-dex","pokedex","pokemon","pygame","raspberry-pi-4","raspberrypi","tensorflow","tkinter"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TryKatChup.png","metadata":{"files":{"readme":"README.it.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmap.md","authors":null,"dei":null}},"created_at":"2021-07-29T14:23:53.000Z","updated_at":"2025-02-18T12:17:25.000Z","dependencies_parsed_at":"2024-02-11T13:32:40.641Z","dependency_job_id":null,"html_url":"https://github.com/TryKatChup/Poke-Pi-Dex","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TryKatChup%2FPoke-Pi-Dex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TryKatChup%2FPoke-Pi-Dex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TryKatChup%2FPoke-Pi-Dex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TryKatChup%2FPoke-Pi-Dex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TryKatChup","download_url":"https://codeload.github.com/TryKatChup/Poke-Pi-Dex/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248270547,"owners_count":21075794,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artificial-intelligence","cnn","cnn-keras","computer-vision","deep-learning","image-classification","image-processing","machine-learning","numpy","opencv","poke-pi-dex","pokedex","pokemon","pygame","raspberry-pi-4","raspberrypi","tensorflow","tkinter"],"created_at":"2024-09-24T19:55:17.524Z","updated_at":"2025-04-10T18:22:13.270Z","avatar_url":"https://github.com/TryKatChup.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n  [![Contributors][contributors-shield]][contributors-url]\n  [![Forks][forks-shield]][forks-url]\n  [![License][license-shield]][license-url]\n  [![Stargazers][stars-shield]][stars-url]\n  [![Downloads][downloads-shield]][downloads-url]\n  [![Issues][issues-shield]][issues-url]\n  [![Poke-Pi-Dex][poke-pi-dex-shield]][poke-pi-dex-url]\n  \u003cbr/\u003e\n  [![Raspberry Pi][raspberry-shield]][raspberry-url]\n  [![Python][python-shield]][python-url]\n  [![nVIDIA][nvidia-shield]][nvidia-url]\n  [![Keras][keras-shield]][keras-url]\n  [![TensorFlow][tensorflow-shield]][tensorflow-url]\n  [![Open CV][opencv-shield]][opencv-url]\n  \n  \u003cbr/\u003e\n  \u003cimg width=\"100px\" src=\"gfx/Logo_Poke-Pi-Dex.svg\"/\u003e\n\n  \u003ch1\u003ePoké-Pi-Dex\u003c/h1\u003e\n  \n**Poké-Pi-Dex** è il nostro progetto per poké-weeb nostalgici, basato su deep learning / computer vision. Realizzato da [Karina Chichifoi](https://github.com/TryKatChup) e [Michele Righi](https://github.com/mikyll).\n\t\n  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.\n\u003cbr/\u003e\nIl case è fatto di cartoncino riciclato. 🌱\n\u003cbr/\u003e\u003cbr/\u003e\n  \u003ca href=\"https://github.com/TryKatChup/Poke-Pi-Dex/blob/main/docs/Report/Relazione.pdf\"\u003eRelazione\u003c/a\u003e\n  ·\n  \u003ca href=\"https://github.com/TryKatChup/Poke-Pi-Dex/blob/main/docs/Presentation/Poké-Pi-Dex_IT.pdf\"\u003ePresentazione\u003c/a\u003e\n  ·\n  \u003ca href=\"https://github.com/TryKatChup/Poke-Pi-Dex/blob/main/docs/Report/AttivitaProgettuale.pdf\"\u003eAtt. Progettuale\u003c/a\u003e\n  ·\n  \u003ca href=\"https://github.com/mikyll/UnityDOTS-Thesis/issues\"\u003eRichiedi una Feature|Segnala un Bug\u003c/a\u003e\n  ·\n  \u003ca href=\"https://github.com/TryKatChup/Poke-Pi-Dex/blob/main/README.md\"\u003eEnglish \u003ckbd\u003e\u003cimg width=\"20px\" src=\"https://flagicons.lipis.dev/flags/4x3/gb.svg\"\u003e\u003c/kbd\u003e\u003c/a\u003e\n  \n\u003cbr/\u003e\u003cbr/\u003e\n\u003cimg width=\"70%\" src=\"https://github.com/TryKatChup/Poke-Pi-Dex/blob/main/gfx/aaaaaaaaa.png\"/\u003e\n\t\n\u003c/div\u003e\n  \n\u003cdetails open=\"open\"\u003e\n  \u003csummary\u003e\u003ch2 style=\"display: inline-block\"\u003eIndice\u003c/h2\u003e\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\u003ca href=\"#demo\"\u003eDemo\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#funzionalità\"\u003eFunzionalità\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#utilizzo\"\u003eUtilizzo\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisiti\"\u003ePrerequisiti\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installazione\"\u003eInstallazione\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#strumenti\"\u003eStrumenti\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#risorse\"\u003eRisorse\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#licenza\"\u003eLicenza\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contatti\"\u003eContatti\u003c/a\u003e\u003c/li\u003e\n    \u003c!-- \u003cli\u003e\u003ca href=\"#ringraziamenti\"\u003eRingraziamenti\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#meme\"\u003eMemotty\u003c/a\u003e\u003c/li\u003e --\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n## Demo\nGuarda la [demo](https://youtu.be/IkbLYq1PmRs) su YouTube!\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://youtu.be/IkbLYq1PmRs\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/TryKatChup/Poke-Pi-Dex/blob/main/gfx/Play_YouTube.png\" alt=\"Demo Video\" width=40%\" border=\"10\" /\u003e\u003c/a\u003e\n\t\u003cbr/\u003e\n\tDemo video\n\u003c/div\u003e\n\n## Funzionalità\nTODO\n\n## Utilizzo\nTo use the application follow these steps:\n\n### Prerequisiti\n- conda\nTO-DO\n\u003c!-- - OS:\n- Python version\n- Python packages\n  - for Raspberry usage: --\u003e\n\n### Installazione\n#### Windows\n1. Scarica l'[ultima versione](https://github.com/TryKatChup/Poke-Pi-Dex/releases/latest)\n2. Estrai lo zip\n3. Crea il virtual environment:\n  ```bash\n  conda env create -f environment.yml\n  ```\n4. Esegui l'applicazione:\n  ```bash\n  python poke-pi-dex.py\n  ```\n\n\u003c!-- - clone the repo or download the latest release --\u003e\n\n## Roadmap\n\n\u003cdetails\u003e\n\t\t\n- [x] Dataset\n  - [x] trovare un dataset adatto per la rete neurale\n  - [x] sistemarlo (ritagliare le immagini) ed estenderlo\n- [x] Classificatore\n  - [x] CNN con 3 layer convoluzionali e 2 layer FC\n  - [x] data augmentation (specchiamento, rotazione, contrasto e ~~luminosità~~ randomici)\n  - [x] provare dropout\n  - [x] provare batch norm\n  - [x] grafici loss e accuracy\n  - [x] test con immagini reali\n  - [x] miglirare la vecchia CNN\n- [x] Applicazione\n  - [x] Repository Pokémon\n    - [x] trovare un file .json e caricarlo in un dizionario\n    - [x] controllarlo e sistemarlo\n    - [x] creare una classe Pokémon\n  - [x] input video\n    - [x] creare una classe separata\n    - [x] creare una funzione che permette di ottenere un frame dalla PiCamera (e fare i test)\n    - [x] visualizzare l'immagine all'interno di un canvas\n  - [x] struttura GUI\n    - [x] creare un menu principale\n    - [x] creare un pannello delle informazioni sull'app\n    - [x] creare una schermata per il Pokédex, divisa in 2 parti (sinistra per il video input, destra per i dettagli del Pokémon)\n    - [x] creare una vista per le impostazioni\n  - [x] bottone per ottenere il frame corrente\n  - [x] etichette ed entry per i dettagli del Pokémon (statistiche con barre dinamiche e di colori differenti)\n  - [x] aggiungere bottoni per scorrere fra le evoluzioni successive (ad esempio: Eevee ha diverse evoluzioni possibili)\n  - [x] cambiare la entry del \"tipo/i\" (da testo a immagine)\n  - [x] aggiungere bottone per riprodurre il verso\n    - [x] raccogliere i file audio dei versi\n  - [x] aggiungere la lettura della descrizione\n    - [x] ottenere i file audio delle descrizioni utilizzando un bot di lettura\n  - [x] realizzare l'aggiornamento per lingue differenti\n  - [x] rendere le impostazioni persistenti \u003c!-- aggiungerlo a quello in inglese)\n  - [x] modalità debug\n- [ ] Setup Raspberry\n  - [x] comprare i componenti\n     - [x] display LCD\n     - [x] PiCamera\n     - [x] batteria (powerbank)\n     - [x] speaker\n     - [x] bottoni\n     - [x] adattatore type-C a gomito\n     - [x] convertitore A/D (ADS1115)\n   - [ ] integrare i componenti\n     - [x] display LCD\n     - [x] PiCamera\n     - [x] batteria\n     - [x] speaker\n     - [x] bottoni\n     - [ ] joystick analogico\n   - [x] preparare il SO (disabilitare password, abilitare le interfacce, risolvere le dipendenze, ...)\n- [x] Deployment dell'app\n  - [x] preparare l'ambiente (installare python3 e i package necessari)\n  - [x] clonare la repo\n  - [x] test dell'applicazione\n- [x] Prorotipo del case ~50h\n  - [x] progetto tecnico\n  - [x] ritagliare il cartoncino ed incollare le parti\n  - [x] verniciatura ad acrilico\n- [x] Relazione\n  - [x] impostare il documento in LaTeX\n  - [x] abbozzare una possibile suddivisione in capitoli\n  - [x] scrivere il report\n- [x] Presentazione\n- [x] Video Dimostrativo\n- [ ] Extra \u0026 Sviluppi Futuri\n  - [ ] usare una rete neurale più complessa con il nuovo dataset\n  - [ ] usare nuove forme di data augmentation\n  - [ ] aggiungere un amplificatore allo speaker\n  - [ ] inserire uno o più Led vicino all'obiettivo della PiCamera\n  - [ ] aggiungere un'opzione alle impostazioni per abilitare/disabilitare il congelamento del video dopo aver scattato la foto\n  - [ ] finire il modello 3D del case e stamparlo\n  - [ ] estendere il Pokédex alle generazioni seguenti\n  - [ ] fare il porting su mobile (Android. iOS)\n\n\u003c/details\u003e\n\n\n## Strumenti\n- [PyCharm](https://www.jetbrains.com/pycharm/)\n- [Anaconda](https://www.anaconda.com/)\n- [Jupyter Notebook](https://jupyter.org/)\n- [Sketchup browser](https://app.sketchup.com/)\n\n## Risorse\n- dati Pokémon:\n  - [dataset](https://www.kaggle.com/thedagger/pokemon-generation-one)\n  - [dettagli](https://github.com/fanzeyi/pokemon.json)\n  - [file audio dei versi]()\n  - [file audio delle descrizioni](http://texttospeechrobot.com/)\n- [Calibrazione camera con OpenCV](https://docs.opencv.org/4.x/dc/dbb/tutorial_py_calibration.html)\n- [Inferenza con Tensorflow-lite](https://www.tensorflow.org/lite/guide/inference)\n- [Conversione con Tensorflow-lite](https://www.tensorflow.org/lite/convert)\n- [Quantizzazione post-allenamento con Tensorflow-lite](https://www.tensorflow.org/lite/performance/post_training_quantization)\n\n## Licenza\nDistribuito sotto Licenza GPLv3. Vedi [`LICENSE`](https://github.com/TryKatChup/Poke-Pi-Dex/blob/main/LICENSE) per ulteriori informazioni.\n\n## Contatti\n* [TryKatChup](https://www.linkedin.com/in/karina-chichifoi/?locale=en_US)\n* [Mikyll](https://www.linkedin.com/in/michele-righi/?locale=en_US)\n\n\u003c!--\n## Ringraziamenti\nEspansione dataset - Mihaela Chichifoi\nEspansione dataset - [Dario De Nardi](https://github.com/dariodenardi)\nTempere e Materiale Cancelleria - [Lorenzo Righi](https://github.com/TankyThunderpaw)\nSaldature Componenti - Pier Marino Righi\nRiprese e Montaggio Video - Lorenzo Castriota \"Brian\"\n--\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg width=\"600px\" src=\"gfx/logo.png\"/\u003e\n\u003c/div\u003e\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[downloads-shield]: https://img.shields.io/github/downloads/TryKatChup/Poke-Pi-Dex/total\n[downloads-url]: https://github.com/TryKatChup/Poke-Pi-Dex/releases/latest\n[contributors-shield]: https://img.shields.io/github/contributors/TryKatChup/Poke-Pi-Dex\n[contributors-url]: https://github.com/TryKatChup/Poke-Pi-Dex/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/TryKatChup/Poke-Pi-Dex?style=flat\n[forks-url]: https://github.com/TryKatChup/Poke-Pi-Dex/network/members\n[stars-shield]: https://img.shields.io/github/stars/TryKatChup/Poke-Pi-Dex?style=flat\n[stars-url]: https://github.com/TryKatChup/Poke-Pi-Dex/stargazers\n[issues-shield]: https://img.shields.io/github/issues/TryKatChup/Poke-Pi-Dex\n[issues-url]: https://github.com/mikyll/TryKatChup/Poke-Pi-Dex/issues\n[license-shield]: https://img.shields.io/badge/License-GPLv3-blue.svg\n[license-url]: http://perso.crans.org/besson/LICENSE.html\n[ask-me-anything-shield]: https://img.shields.io/badge/Ask%20me-anything-1abc9c.svg\n[ask-me-anything-url]: https://github.com/TryKatChup/Poke-Pi-Dex/issues\n[open-collab-shield]: https://colab.research.google.com/assets/colab-badge.svg\n[open-collab-url]: https://github.com/TryKatChup/Poke-Pi-Dex/issues\n[made-with-phyton-shield]: https://img.shields.io/badge/Made%20with-Python-14354C.svg\n[made-with-phyton-url]: https://www.python.org/\n[made-with-markdown-shield]: https://img.shields.io/badge/Made%20with-Markdown-1f425f.svg\n[made-with-markdown-url]: http://commonmark.org\n[open-source-shield]: https://badges.frapsoft.com/os/v1/open-source.png?v=103\n[open-source-url]: https://github.com/ellerbrock/open-source-badges/\n[poke-pi-dex-shield]: https://custom-icon-badges.herokuapp.com/badge/pok%C3%A9pidex-wow-orangered?logo=poke-pi-dex\n[poke-pi-dex-url]: https://github.com/TryKatChup/Poke-Pi-Dex\n\n[raspberry-shield]: https://img.shields.io/badge/-RaspberryPi-C51A4A?\u0026logo=Raspberry-Pi\n[raspberry-url]: https://www.raspberrypi.org/\n[keras-shield]: https://img.shields.io/badge/Keras-%23D00000.svg?logo=Keras\u0026logoColor=white\n[keras-url]: https://keras.io/\n[tensorflow-shield]: https://img.shields.io/badge/TensorFlow-%23FF6F00.svg?logo=TensorFlow\u0026logoColor=white\n[tensorflow-url]: https://www.tensorflow.org/\n[opencv-shield]: https://img.shields.io/badge/opencv-%23white.svg?logo=opencv\u0026logoColor=white\n[opencv-url]: https://opencv.org/\n[nvidia-shield]: https://img.shields.io/badge/nVIDIA-%2376B900.svg?logo=nVIDIA\u0026logoColor=white\n[nvidia-url]: https://www.nvidia.com/\n[python-shield]: https://img.shields.io/badge/python-3670A0?logo=python\u0026logoColor=ffffff\n[python-url]: https://www.python.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrykatchup%2Fpoke-pi-dex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrykatchup%2Fpoke-pi-dex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrykatchup%2Fpoke-pi-dex/lists"}