Simple flask app that plays around with the Stanford Dog Dataset in a few ways Has a guessing game functionality Uses a CNN (InceptionV3 model) to classify dogs by breed Uses traditional CV methods (BoW, VLAD) to classify dogs by breed
Build out a basic guessing game functionality
Build navigational controls so the game can be repeated Create a good way for the user to know what their options for guessing are Sanitize user input Score tracking
Computer vs Human model (Requires CV or DL model)
Build out a BoF model using a standard dictionary of features Use a IDF to test for similarity Generate a list of closest matches and display
Build out the VLAD representation for features Use ADC model to test for similarity Generate a list of closest matches and display
Benchmarking, PCA?
Preprocess dog data. Reading on which Keras pretrained model to use (probably VGG16, VGG19 or InceptionV3). Write requisite code to set up the model Train model on dog dataset DOCUMENTATION
Run predictions to sanity check things Write a simple benchmarking tool If time permitting, attempt the other pretrained models and benchmark them against each other
Build a flask interface for uploading images and outputting a prediction
Front-end Deployment considerations
Benchmark other pretrained models if haven't already Curate/scrape more dog data to improve accuracy
Do a guess the dog game for users. Machine vs the user.
Start at endpoint /dog to get a random dog.
Guess what breed the dog is and click submit.
Dataset used is the Stanford Dogs Dataset. It contains "images of 120 breeds of dogs from around the world". This Dataset was the largest publically available dataset for this task, and as such was the natural choice.
https://vision.stanford.edu/aditya86/ImageNetDogs/
Aditya Khosla, Nityananda Jayadevaprakash, Bangpeng Yao and Li Fei-Fei. Novel dataset for Fine-Grained Image Categorization. First Workshop on Fine-Grained Visual Categorization (FGVC), IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2011.