Dank Meme Generator
We love memes, and we know the internet does too. Each day, millions of people across the globe browse the vast collection of memes spread across the internet. These hilarious images range from charming classics from the summer of '13, to the freshest and rarest creations, uploaded a mere minutes ago by a fellow memer. With so much at our fingertips, we wonder, just what exactly are the ingredients of a perfect meme? And could we teach a machine to create the dankest of memes? With the stage set, enter the Dank Meme Generator.
What it does
The Dank Meme Generator is an application that generates random dank memes. Our Dank Meme Generator is backed by a machine-learning model that learns how to generate caption text appropriate to the style of the meme. Users can click "Generate!" to receive a never-before-seen meme randomly created by our model in real-time.
How we built it
At its core, our Dank Meme Generator is powered by an ML model created using Google Tensorflow. Our meme-generating model uses a convolutional neural network to extract features from images, and long short term memory (LSTM) units to model and generate captions. To train this model, we crawled the internet for hundreds of thousands of memes, using a python-based web crawler as well as integrating existing datasets. Tesseract OCR was used (with limited success) to derive the text from meme images. For users, this model is exposed by our webpage, built using Flask.
Challenges we ran into
The most serious challenge surrounded training our meme-generator model, so that the generated captions would be sensible as well as fresh and funny. To accomplish this, another hurdle we had to surmount was aggregating a sufficiently large meme dataset to train our model, which involved web crawling as well as leveraging existing datasets.
Accomplishments that we're proud of
We're quite proud of our implementation of the meme-language model, and its ability to create random meme captions.
What we learned
We learned that dealing with language is particularly tricky, because it is easy for a machine to create something that doesn't sound quite right, and conversely, very hard to train a good meme generator.
What's next for Dank Meme Generator
We hope to expose a REST API so that anyone can use our model to generate dank memes. As with any machine learning model, there's much to be tuned to help our language model better understand what makes a great meme.