In this project, I built a pipeline that can be used within a web or mobile app to process real-world, user-supplied images. Given an image of a dog, the algorithm identifies an estimate of the canine’s breed. If supplied an image of a human, the code identifies the resembling dog breed.
The model was built using Convolutional Neural Networks (CNN) in Keras. Training of the NN layers was first attempted from scratch which did not produce good results. Trasfer learning was then used and model was trained on top of pretrained layers from Resnet-50 model. The final mode acheived more than 80% accracy.
All the code is in the Jupyter Notebook.
-
dog dataset. Unzip the folder and place it in the repo, at location
path/to/dog-project/dogImages
. -
human dataset. Unzip the folder and place it in the repo, at location
path/to/dog-project/lfw
. If you are using a Windows machine, you are encouraged to use 7zip to extract the folder. -
Pretrained model: VGG-16 bottleneck features for the dog dataset. Place it in the repo, at location
path/to/dog-project/bottleneck_features
.