È possibile ricreare il Pokédex nella realta`? Vediamo le tecnologie dietro questo strumento

Il Pokedex e` lo strumento usato dagli allenatori nel videogioco, manga e anime Pokemon  per riconoscere e catalogare i pokemon. E` uno strumento di fantasia ma a livello software puo essere riprodotto nella vita reale.

pokedex artstation

Chiunque abbia giocato ad uno dei titoli Pokémon per nintendo o abbia visto una delle puntate dell’anime ha sentito parlare di questo strumento o ha avuto l’aspirazione di completarlo. Vediamo le tecnologie che potrebbero esserci dietro al Pokédex.

video game pokemon unsplash

 

Diverse versioni del Pokedex

Il Pokédex dell’anime contiene già un database di Pokémon, ossia una collezione di dati organizzata e strutturata,  mentre nei videogiochi il giocatore inserisce le informazioni nel database ogni volta che cattura un Pokémon. L’ideale sarebbe fare un misto delle due versioni: un Pokédex basato su un database centralizzato che può essere aggiornato qualora un pokemon nuovo venga scoperto ma le cui informazioni possano essere consultate solo qualora un giocatore individui o catturi un nuovo pokemon favorendo così la gamification del viaggio dell’allenatore. Fondamentalmente vogliamo avere un server unico che contenga i dati di tutti i pokemon conosciuti in modo che siano consultabili in modo rapido da tutti gli allenatori, quindi che possa supportare una grande quantita di rischieste e che sia facilmente scalabile. La scalabilita` e` la proprieta` di un sistema di adattarsi ad una grande mole di lavoro aggiungendo risorse ad esso.

Struttura di base

Per progettare la nostra versione ideale avremo bisogno di un server che faccia da host al database dei Pokémon già scoperti, di un database che tenga traccia di tutti i pokémon esistenti nell’universo e di un’API che ci permetta di consultarli dai dispositivi fisici. Un’API (application programming interface) è un’interfaccia che definisce le operazioni necessarie per consultare il database quindi quali richieste possiamo effettuare, come effettuarle, i tipi di dati richiesti ecc.. in parole più semplici e` una serie di funzioni che trasformano le operazioni che svolgiamo attraverso l’interfaccia grafica del Pokédex (ricerca del pokémon, invio dati ecc..) in delle richieste che possano essere eseguite tramite il linguaggio in cui vengono programmati e interrogati i database:SQL. Il modo migliore per progettare un’API e` a mio avviso Laravel: un framework che si basa sul linguaggio php.
Abbiamo detto che per favorire la gamification del viaggio dell’allenatore vogliamo che i dati su un pokémon possano essere consultati solo dopo averlo individuato e riconosciuto attraverso un’immagine magari o dopo la cattura. Per fare cio e` necessario implementare delle funzioni particolari dette middleware. Questi metodi hanno accesso ad un oggetto che contiene la richiesta fatta al database e ad una funzione detta callback, ossia la prossima operazione da effettuare. Nell’oggetto richiesta sono contenute le informazioni riguardanti il pokémon che vogliamo cercare: se esso e` presente nel database dei pokemon scoperti dall’allenatore si manda la richiesta al database generale e si ottengono le informazioni.

server unsplash

Riconoscimento di un pokemon

Questa e` in assoluto la tecnologia piu difficile del nostro pokedex. Ogni volta che catturiamo o avvistiamo un pokémon dobbiamo essere in grado di individuare il tipo dall’immagine. Per fare ciò ci serviremo di un algoritmo di machine learning centralizzato ossia eseguito sul server centrale. Gli algoritmi atti ad isolare il pokémon dal resto dell’immagine sono molteplici, noi ci concentreremo su come “istruire” l’algoritmo ad assegnare ad un’immagine l’id di un pokemon. Ciò implica la costruzione di un neural network generalmente usando il linguaggio Python, dopodichè faremo analizzare al nostro network delle immagini pre-etichettate di ogni pokémon in modo che l’intelligenza artificiale abbia un’idea di come ciascuna creatura sia fatta. Quando invieremo l’immagine di un Charizard al server ogni pixel verrà confrontato con tutte le immagini già esistenti fino a trovare la corrispondenza migliore. Ovviamente quest’ultimo processo può essere ottimizzato con degli algoritmi di ricerca più fini, per esempio lavorando sui colori o sulle linee, altrimenti richiederebbe troppo tempo. 

A livello progettuale abbiamo analizzato le tecnologie necessarie alla riproduzione informatica del pokedex, la parte più ardua e` ovviamente quella del riconoscimento di ogni creatura. Per ora possiamo avvalerci di versioni prive di questa funzione sul web.

E tu che ne pensi? Faccelo sapere!

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

%d blogger hanno fatto clic su Mi Piace per questo: