Final "capstone" project - Udacity data science nanodegree
This project is part of the Udacity data science nanodegree program. The objective is to train and use a CNN to create a web application which can distinguish between dog breeds.
The objective is to 1) differentiate between dogs and humans and 2) identify the dog breed (and the dog breed a human mostly resembles). This has to be accessable via a web application, which can be hosted locally.
- Model accuracy has to be quanitifed, as is done in the notebook.
- The resulting model(s) are accessable via a locally hosted web application, which can identify dog breeds.
- The code is stored in a github repository.
This project uses pre-trained models from amazom (VGG16Data and Resnet50) and is based on a template by Udacity (git clone https://github.com/udacity/dog-project.git).
The best way to set up the project environment is to:
-
Clone the repository and navigate to the downloaded folder.
-
Download the dog dataset. Unzip the folder and place its contents in the repo, at location
./dogImages(where.is your project workspace, probably "dog-project"). -
Download the human dataset. Unzip the folder and place its contents in the repo, at location
./lfw. If you are using a Windows machine, you are encouraged to use 7zip to extract the folder. -
Download the VGG-16 bottleneck features for the dog dataset. Place it in the repo, at location
./bottleneck_features. -
Download the Resnet50 bottleneck features for the dog dataset. Place it in the repo, at location
path/to/dog-project/bottleneck_features. -
Create a fresh conda environment and install the required packages. Linux:
conda env create -f requirements/dog-linux.yml; Windows:conda env create -f requirements/dog-windows.yml; Mac:conda env create -f requirements/dog-mac.yml. -
Activate your environment
conda activate dog-project.
For simplicity, the web app is run directly from the jupyter notebook. In order to train a CNN and run the web app, run the jupyter notebook dog_app.ipynb (install jupyter if required). The last cell of the notebook will have a link to the web app.