Image Classification (or Image Identification) is one of the pilot use cases for deep learning. The goal of the task is to train a model capable of identifying the main object of interest in an image. What can you use it for? Here are a few ideas - identify landmarks in photos, ImageNet challenge, identifying celebrities (or yourself) in images, detecting anomalies in medical images.
Click this button to open a Workspace on FloydHub that will train this model.
In this notebook, we will build a model to identify dog breeds in an image. How well you can tell your Norfolk Terriers from your Norwich Terriers?
We will use the Kaggle's Dog Breed Dataset dataset for training. With 120 breeds of dogs and a limited number training images per class, you might find the problem more, err, ruff than you anticipated.
To speed things up, we will apply Transfer Learning by building new layers on top of the Xception model pre-trained on ImageNet to classify the top 10 dog breeds. Note: We have reduced the number of classes (i.e. dog breeds) to 10 to fit the model in a CPU machine.
We will:
- Preprocess images data for computer vision tasks
- Transfer Learning: build new layers on top of the pretrained Xception model using Keras and Tensorflow
- Evaluate our model on the test set
- Run the model on new dog images from the web!