Quick, Draw

Can a neural network learn to recognize doodling? Quick, Draw

Code Requirements

You can install Conda for python which resolves all the dependencies for machine learning.

pip install requirements.txt


Quick, Draw! is an online game developed by Google that challenges players to draw a picture of an object or idea and then uses a neural network artificial intelligence to guess what the drawings represent. The AI learns from each drawing, increasing its ability to guess correctly in the future.The game is similar to Pictionary in that the player only has a limited time to draw (20 seconds).The concepts that it guesses can be simple, like 'foot', or more complicated, like 'animal migration'. This game is one of many simple games created by Google that are AI based as part of a project known as 'A.I. Experiments'. Quick, Draw


Follow the documentation here to get the dataset. I got .npy files from google cloud for 14 drawings.

  1. Apple :apple:
  2. Bowtie ๐ŸŽ€
  3. Candle ๐Ÿ•ฏ๏ธ
  4. Door :door:
  5. Envelope :envelope:
  6. Fish :fish:
  7. Guitar :guitar:
  8. Ice Cream :icecream:
  9. Lightning โšก
  10. Moon :first_quarter_moon_with_face:
  11. Mountain :mount_fuji:
  12. Star :star:
  13. Tent :tent:
  14. Toothbrush ๐Ÿงน
  15. Wristwatch :watch:

Python Implementation

  1. Network Used- Convolutional Neural Network

If you face any problem, kindly raise an issue


  1. Get the dataset as mentioned above and place the .npy files in /data folder.
  2. First, run LoadData.py which will load the data from the /data folder and store the features and labels in pickel files.
  3. Now you need to have the data, run QD_trainer.py which will load data from pickle and augment it. After this, the training process begins.
  4. Now you need to have the data, run QuickDrawApp.py which will use use the webcam to get what you have drawn.
  5. For altering the model, check QD_trainer.py.
  6. For tensorboard visualization, go to the specific log directory and run this command tensorboard --logdir=. You can go to localhost:6006 for visualizing your loss function and accuracy.

Mergerd to Google's git repo

See the pull request here