This person does not exist was a huge trend in 2019, providing individuals with different machine-learning generated faces using a generative adversarial network. We wanted to create something fun and enjoyable for everyone, even those who haven't played pokemon - using the tools we have, a database of pokemon sprites and machine learning.
What it does
This pokemon does not exist aims to create your own unique pokemon depending on the inputs you give as the tyes of pokemon.
How we built it
The machine learning model we used here is a Variational Autoencoder (link). We passed in a dataset consisting of all Pokemon 2D sprites and trained the model using Google Colab. The resulting model takes in vectors in a "latent space" and outputs generated Pokemon sprites. We are also able to sample from different sets of Pokemon to generate with certain properties (demonstrated in our app by the ability to select Pokemon type).
Challenges we ran into
We had difficulties regarding different aspects of the project. Since we had teammates of different skill levels and some that were not experienced with developing code in a group, we had to make our to-dos clear and make sure everyone knew what their role was. Learning to use Google Cloud Compute Engine was a challenge as we all had minor experience with the technology. Setting up the environment and making our app run on the engine also took a long time. We had an attempt to integrate our app with the Google App Engine and we realized it would be difficuly and had to come up with an alternative solution.
Accomplishments that we're proud of
We've grown as a team - we all got to know each other a bit better, and at the end, we have an app up and running on our domain.
What we learned
There is always a learning opportunity, no matter how familiar you are with the technology that you use.
What's next for This Pokemon Does Not Exist
Maybe add real animals and/or other sprites such as Digimon into the dataset so that the Pokemon sprites will have additional training information data to generate models off of.
Testing out different models to produce more convincing sprites.