This Convolutional Neural Network (CNN) was trained on the
Quick Draw dataset by Google to classify the drawn image into the 100 following classes:
- traffic_light
- snake
- cloud
- power_outlet
- tent
- eyeglasses
- ceiling_fan
- paper_clip
- beard
- spoon
- ice_cream
- smiley_face
- pencil
- flower
- alarm_clock
- bridge
- radio
- syringe
- rifle
- knife
- t-shirt
- face
- candle
- tooth
- bench
- bird
- ladder
- hot_dog
- sword
- sun
- helmet
- basketball
- donut
- hammer
- headphones
- broom
- lollipop
- baseball
- drums
- wheel
- cat
- spider
- clock
- grapes
- chair
- door
- moustache
- eye
- bicycle
- coffee_cup
- umbrella
- anvil
- scissors
- triangle
- bed
- light_bulb
- laptop
- envelope
- circle
- suitcase
- camera
- pillow
- diving_board
- rainbow
- pants
- bread
- saw
- line
- microphone
- screwdriver
- key
- frying_pan
- square
- stop_sign
- lightning
- pizza
- cup
- cookie
- apple
- sock
- fan
- shorts
- axe
- airplane
- butterfly
- tennis_racquet
- tree
- hat
- book
- shovel
- mushroom
- dumbbell
- cell_phone
- wristwatch
- baseball_bat
- car
- mountain
- moon
- table
- star
The model was the exported into json and binary files and hosted on a server with CORS enabled and is run on client side (your browser) using tensorflow.js. To be able to do so the model was kept simple but was still able to achieve a relative good accuracy.
The CNN contains 3 Convolutional - Max pooling pairs of hidden layers folowed by a single Dense hidden layer. The following figure shows the architecture of the Neural Network used.
Architecture of the Neural Network. This figure shows only 2 convolutional layers while the model uses 3 convolutional layers.
The size of the dense layer i.e. n3 = 256 units.
The following figure shows some of the examples correctly identified.
Trained Model:
Model JSON
Model Binaries
Class Names
Thanks to Zaid Alyafeai whose writings inspired this app.