jamesdellinger / machine_learning_deep_learning_nanodegree_dog_project

Convolutional neural network classifier for dog breeds. For Udacity's Machine Learning Engineer and Deep Learning Nanodegrees.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Project: Convolutional Neural Network Classifier for dog breeds

Guess a dog's breed based on an image.

For Udacity's Machine Learning Engineer and Deep Learning Nanodegrees.

Topic: Deep Learning / Convolutional Networks.

Overview

  • I built a pipeline that can be used within a web or mobile app to process real-world, user-supplied images.

  • I first architected my own convolutional neural network from scratch:

  • I then explored several state-of-the-art CNN models designed for image classification, ultimately using transfer learning to build my own classifier for dog images on top of a pre-trained Inception v3 bottleneck.

  • Given an image of a dog, my algorithm identifies an estimate of its breed:

  • If supplied an image of a human, my code infers the most nearly resembling dog breed:

Concepts

  • Using OpenCV's implementation of Haar feature-based cascade classifiers to detect human faces in images.

  • Convolutional Neural Network architectures (choosing number of filters, kernel size, stride, and padding).

  • Activation functions like relu and softmax.

  • Including maxpool layers to decrease dimensionality as network depth increases, and adding dropout layers, to minimize overfitting.

  • Flattening the network prior to including fully-connected layers.

  • Categorical crossentropy loss function.

  • Transfer learning.

  • Freezing the bottleneck features of a pre-trained InceptionV3 model to serve as an input layer of my final CNN's fully connected layer:

  • Keras

  • TensorFlow

My Completed Project

Project Grading and Evaluation

Dependencies

About

Convolutional neural network classifier for dog breeds. For Udacity's Machine Learning Engineer and Deep Learning Nanodegrees.

License:MIT License


Languages

Language:Jupyter Notebook 60.4%Language:HTML 39.6%Language:Python 0.0%