Given an image of a dog, this notebook will estimate the canine’s breed. If supplied an image of a human, the code will identify the resembling dog breed.
Training data consists of over 8000 dog images tagged with their breeds. The images are split into training, test and validation sets.
The data contains instances of minimal inter-class variation, such as between retrievers and spaniels.
Retriever | Spaniel |
---|---|
There are also cases of high intra-class variation, such as within Labradors.
Golden Labrador | Brown Labrador | Black Labrador |
---|---|---|
OpenCV's human face detector using Haar Cascades is used here.
The ResNet-50 model is used to identify images containing dogs.
The images are preprocessed according to ResNet-50's specifications (normalized and resized).
Transfer learning is used to create a CNN using Xception bottleneck features.
A 500 paramter layer is added to focus on the current dog image dataset, followed by a 133 parameter fully-connected layer.
Training was performed on an EC2 GPU instance.