YUFENG GUO: A team at Google set out
to make a game of Pictionary more interesting
and ended up with the world's largest doodling
dataset and a powerful machine learning model to boot.
How did they do it?
Stay tuned to find out.
Welcome to "AI Adventures," where
we explore the art, science, and tools of machine learning.
My name is Yufeng Guo.
And on this episode, we're going to check out
the largest dataset of hand-drawn doodles
and see what we can do with it.
"Quick, Draw!" was a game that was initially
featured at Google I/O in 2016 as a game where
one player would be prompted to draw
a picture of an object and the other player
would need to guess what it was, just your standard Pictionary
game.
In 2017, the team took that idea a step further
and used the Sketch-RNN model from the Magenta team
at Google Research to try to predict
what the player was drawing in real time
instead requiring a second player.
The game is now available online and has collected
millions of hand-drawn doodles.
Let's take a look at some of the drawings that
have come out of "Quick, Draw!"
Here we see some broccoli being drawn
by many different players.
Oceans are depicted in slightly different ways
by different players all over the world.
It's just a lot of fun to browse the dataset.
And if you find something that seems out of place,
you can fix it right there on the page
and make the data better for everyone.
In fact, the team has open-sourced this data
and in a variety of formats.
You can learn more at their GitHub page.
There are four formats.
First up is the raw files themselves, stored in .ndjson.
These files encode the full set of information for each doodle.
It contains timing information for every stroke
of every picture drawn.
And there's also a simplified version
stored in the same format, which has some pre-processing applied
to help normalize the data.
This simplified version is also available as a binary format
for more efficient storage and transfer.
And it comes with examples of how
to read out these binary files using both Python and Node.js.
The fourth format is interesting.
It takes in the simplified data and renders it as 28-by-28
grayscale bitmap in NumPy .npy format.
You can load it using np.load().
Why 28-by-28 pixels?
Well, it's a perfect replacement for any existing code you might
have for processing MNIST data.
So if you're looking for something fancier
than 10 hand-written digits, you can try processing
over 300 different classes of hand-drawn doodles.
So ready to take on that dataset and train
your own recurrent neural net?
Check out the tutorial I've linked
in the description down below.
And if you're want to explore the data some more,
you can visualize the "Quick, Draw!" dataset using Facets.
The Facets team has taken the liberty
of hosting the data online and even given us some presets
to play around with.
We can load up some random chairs
and see how different players drew the chairs
from all over the world.
We can also see which drawings were
recognized as chairs, which ones didn't quite make the cut.
There's a number of preset views that
are also worth playing around with
and serve as great starting points for further exploration
and analysis.
I have one final idea for what you can do with this dataset.
I noticed that while there are hexagons and pandas,
there aren't any pentagons or koalas in the dataset.
You can create a new class to extend this dataset
and train your model to recognize,
not only in the many different classes already present,
but also in your own custom image class.
Whether it's your company logo, school emblem, or something
else entirely, make the dataset your own.
Thanks for watching this episode of "Cloud AI Adventures."
And if you enjoyed it, please like it
and consider subscribing to get all the latest episodes right
when they come out.
For now, check out the "Quick, Draw!" dataset
and see what insights you can glean from it.