Skip to content

Rakshit-26/Dog-Breeds-Image-Classifier-CNN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dog-Breeds-Image-Classifier

Use a Pre-trained Image Classifier to Identify Dog Breeds

Overview

  • Using an image classification application using a deep learning model called a convolutional neural network (often abbreviated as CNN).

  • Using a CNN that has already learned the features from a giant dataset of 1.2 million images called ImageNet.

  • Exploring the three different architectures (AlexNet, VGG, and ResNet) and determining which are best for the application.

Problem

Your city is hosting a citywide dog show and you have volunteered to help the organizing committee with contestant registration. Every participant that registers must submit an image of their dog along with biographical information about their dog. The registration system tags the images based upon the biographical information. Some people are planning on registering pets that aren’t actual dogs. Develop Python classifier to make sure the participants are dogs.

Principal Objectives

  1. Correctly identify which pet images are of dogs (even if the breed is misclassified) and which pet images aren't of dogs.

  2. Correctly classify the breed of dog, for the images that are of dogs.

  3. Determine which CNN model architecture (ResNet, AlexNet, or VGG), "best" achieve objectives 1 and 2.

Directories and files

Directories

A. pet_images(given), uploaded_images:- Testing data (Images to be classified)

Files

A. resnet_pet-images.txt(given), resnet_uploaded-images.txt - that contains the results using CNN model architecture ResNet (after classification)
B. alexnet_pet-images.txt(given), alexnet_uploaded-images.txt - that contains the results using CNN model architecture AlexNet (after classification)
C. vgg_pet-images.txt(given), vgg_uploaded-images.txt - that contains the results using CNN model architecture VGG (after classification)
D. run_models_batch, run_models_batch_uploaded - bash program(executes shell commands- Batch Processing)

Execution

To run file run_models_batch.sh in the workspace, open a terminal window (in Unix/Linux/OSX/Lab Workspace) and type the following:

sh run_models_batch.sh

Note: (run_models_batch.bat on Windows)

Observation

Notice that both VGG and AlexNet correctly identify images of "dogs" and "not-a-dog" 100% of the time. VGG provides the best solution because it classifies the correct breed of dog over 90% of the time.

Result

Given our results, the "best" model architecture is VGG. It outperformed both of the other architectures when considering both objectives 1 and 2. You will notice that ResNet did classify dog breeds better than AlexNet, but only VGG and AlexNet were able to classify "dogs" and "not-a-dog" at 100% accuracy. The model VGG was the one that was able to classify "dogs" and "not-a-dog" with 100% accuracy and had the best performance regarding breed classification with 93.3% accuracy.

Releases

No releases published

Packages

No packages published