pankhilprajapati / Dog-Breed-Classifier

Dog Breed Classifier. Using Transfer Learning in CNN. Udacity's Data Science Nanodegree Capstone Project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Udacity's Data Scientist Nanodegree Capstone Project: Dog Breed Classifier

Project Overview

Udacity Capstone project in the Data Scientist Nanodegree! In this project, Explain how to build 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, your algorithm will identify an estimate of the canine’s breed. If supplied an image of a human, the code will identify the resembling dog breed.

Sample Output

Along with exploring state-of-the-art CNN models for classification Each model has its strengths and weaknesses, and engineering a real-world application often involves solving many problems without a perfect answer.

  • Step 0: Import Datasets
  • Step 1: Detect Humans
  • Step 2: Detect Dogs
  • Step 3: Create a CNN to Classify Dog Breeds (from Scratch)
  • Step 4: Use a CNN to Classify Dog Breeds (using Transfer Learning)
  • Step 5: Create a CNN to Classify Dog Breeds (using Transfer Learning)
  • Step 6: Write your Algorithm
  • Step 7: Test Your Algorithm

Project Instructions

Instructions

  1. Clone the repository and navigate to the downloaded folder.
git clone https://github.com/udacity/dog-project.git
cd dog-project
  1. Download the dog dataset

  2. Download the human dataset.

  3. Donwload the VGG-16 bottleneck features

  4. Libraries

    Keras
    OpenCV
    Matplotlib
    Numpy
    Tensorflow
    tqdm
    
    
  5. File descriptions

    dog_app.ipynb: Jupyter notebook containing the main algorithm, findings and results.
    dog_app.html: A copy of dog_app.ipynb in html format.
    Haarcascades folder: contain the opencv haarcascade XML file for face detection.
    images: few images for the testing prediction algorithm.
    
    
    
  6. Findings

    • The model achieved a test accuracy of 83.4928%.
    • Data is not augmented some of the breeds have similar colors and shapes but differ in size, so some of the pic where unclassified
    • The model could use some improvements on its ability to classify pictures with data augmentation and using the other trained model
  7. Open the notebook.

jupyter notebook dog_app.ipynb

Conclusion

Detailed Discussion and Result of the project are in the article in medium Dog Breed classifier

About

Dog Breed Classifier. Using Transfer Learning in CNN. Udacity's Data Science Nanodegree Capstone Project


Languages

Language:HTML 62.0%Language:Jupyter Notebook 38.0%