Udacity MLND Capstone Project Dog Breed Classifier
Project description
In this project I developed a CNN for the recognition of dog breeds. Based on a picture of a dog, an algorithm will give an estimate of the breed of the dog. If the image of a person is given, the algorithm should reproduce the most similar dog breed.
I have also developed a web application to facilitate access for users. This web application was developed with Flask and made available on AWS Beanstalk.
Requirements
This project was done on a Linux-OS (Ubuntu 19.10) with an Anaconda distribution.
Anaconda is a free and open-source distribution of the Python and R programming languages for scientific computing (data science, machine learning > > applications, large-scale data processing, predictive analytics, etc.) Wikipedia
To start directly with the correct requirements for Anaconda I have added a file called environment.yml to the repo. You can create a conda virtual environment with this file:
conda env create -f environment.yml
The first line of the yml file sets the new environment's name. And then you can activate this new environment:
conda activate envmlcv
If you do not want to use the environment.yml to create a new virtual environment then you need to install with the command conda install ...
the following packages:
numpy
glob
pandas
opencv
matplotlib
tqdm
torch
torchvision
PIL
When all dependencies are installed, you can start the Jupyter Notebook dog_app.ipynb
with this evironment and take off.
Explanation in depth
If you want to know more about the project then have a look at my project report report.pdf
and the Juypter Notebook dog_app.ipynb
.
Webapp
This web application was developed with Flask and optimized for AWS Beanstalk and prepared for use. In this simple application I provide the trained model for the prediction. The user can simply upload an image and it will be forwarded to the result page after the inference/prediction process. On this page the user is shown the results and the uploaded image.
You can find the complete webapp and more informations in the folder webapp