FlashcardsDemo.mp4
An educational website for young kids studying basic vocabulary. Simply draw a picture of the word on the front on the flashcard, and ROBOT will let you know if you drew the right picture!
- Tate Larkin
- Flask
- Jinja
- Tensorflow
- Keras
- Numpy
- Matplotlib
- OpenCV
I decided to use the ResNet-34 Neural Network architecture for this project. This architecture utilizes Residual Learning, where you add a skip connection between different layers in the net. A block of two convolution layers with another single convolution layer which connects to the output of the two layers is called a Residual Unit. This architecture uses deep layers of Residual Units with doubling feature maps and halfing dimensions. This lets the model learn very complex patterns faster, with less memory overhead.
In addition, I used early stopping to reduce overfitting, and Nadam optimization.
I used Google's Quick, Draw! dataset. This included about 50 million 28x28 greyscale images composed of 345 categories of various objects, simply hand drawn.
The model has trouble predicting classes that are not easily separable. Consider the two classes of "circle" and "octagon", or "cloud" and "bush". Especially when drawn with a cursor, drawn images of these classes can be tough for the model to classify correctly.
Logic Flowchart