Skip to content

tate8/AI-flashcards

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Flashcards

FlashcardsDemo.mp4

Description

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!

Contributor(s)

  • Tate Larkin

Project Design

Technologies

  • Flask
  • Jinja
  • Tensorflow
  • Keras
  • Numpy
  • Matplotlib
  • OpenCV

Machine learning model

 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.

Dataset

 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.

Where it struggles

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

flowchart

Website Landing Page


Website Flashcard Page