The following project files are located in this project directory:
README.md -- This document, with project description.
Image Classification with Deep Learning Capstone Project Proposal - Project Proposal.
Image Classification with Transfer Learning - Final Project Report.
Slide Deck - Image Classification with Transfer Learning - Slide Deck. It can also be retrieved here.
Initial checkout with pre-trained VGG16 model - Uses a Keras ImageNet pre-trained VGG16 model to recognize one random sample from each of the datasets and provide the top five results.
Initial checkout with pre-trained VGG19 model - Uses a Keras ImageNet pre-trained VGG19 model to recognize one random sample from each of the datasets and provide the top five results.
Initial checkout with pre-trained Inception V3 model - Uses a Keras ImageNet pre-trained Inception V3 model to recognize one random sample from each of the datasets and provide the top five results.
Initial checkout with pre-trained Xception model - Uses a Keras ImageNet pre-trained Xception model to recognize one random sample from each of the datasets and provide the top five results.
Two Classes (Noodles) - Image Classification with six layer Convolutional Neural Network - Trains a six layer convolutional neural network to recognize fried noodles from noodle soup.
Two Classes (Noodles) - Dataset Train-Validate-Test Split - Splits the raw dataset into train, validate and test subsets. The validation dataset uses 20% of the raw dataset. The test dataset uses 10% of the remaining raw dataset and does not get used for training or validation.
Two Classes (Noodles) - Image Classification with pre-trained VGG16 model - Uses a Keras ImageNet pre-trained VGG16 model to recognize fried noodles from noodle soup using Transfer Learning and Fine Tuning methods.
Two Classes (Noodles) - Image Classification with pre-trained VGG19 model - Uses a Keras ImageNet pre-trained VGG19 model to recognize fried noodles from noodle soup using Transfer Learning and Fine Tuning methods.
Two Classes (Noodles) - Image Classification with pre-trained Inception V3 model - Uses a Keras ImageNet pre-trained Inception V3 model to recognize fried noodles from noodle soup using Transfer Learning and Fine Tuning methods.
Two Classes (Noodles) - Image Classification with pre-trained Xception model - Uses a Keras ImageNet pre-trained Xception model to recognize fried noodles from noodle soup using Transfer Learning and Fine Tuning methods.
Three Classes (Leaves) - Dataset Train-Validate-Test Split - Splits the raw dataset into train, validate and test subsets. The validation dataset uses 20% of the raw dataset. The test dataset uses 10% of the remaining raw dataset and does not get used for training or validation.
Three Classes (Leaves) - Image Classification with pre-trained VGG16 model - Uses a Keras ImageNet pre-trained VGG16 model to recognize three different types of leaves using Transfer Learning and Fine Tuning methods.
Three Classes (Leaves) - Image Classification with pre-trained VGG19 model - Uses a Keras ImageNet pre-trained VGG19 model to recognize three different types of leaves using Transfer Learning and Fine Tuning methods.
Three Classes (Leaves) - Image Classification with pre-trained Inception V3 model - Uses a Keras ImageNet pre-trained Inception V3 model to recognize three different types of leaves using Transfer Learning and Fine Tuning methods.
Three Classes (Leaves) - Image Classification with pre-trained Xception model - Uses a Keras ImageNet pre-trained Xception model to recognize three different types of leaves using Transfer Learning and Fine Tuning methods.
Six Classes (Dogs) - Dataset Train-Validate-Test Split - Splits the raw dataset into train, validate and test subsets. The validation dataset uses 20% of the raw dataset. The test dataset uses 10% of the remaining raw dataset and does not get used for training or validation.
Six Classes (Dogs) - Image Classification with pre-trained VGG16 model - Uses a Keras ImageNet pre-trained VGG16 model to recognize six different types of dogs using Transfer Learning and Fine Tuning methods.
Six Classes (Dogs) - Image Classification with pre-trained VGG19 model - Uses a Keras ImageNet pre-trained VGG19 model to recognize six different types of dogs using Transfer Learning and Fine Tuning methods.
Six Classes (Dogs) - Image Classification with pre-trained Inception V3 model - Uses a Keras ImageNet pre-trained Inception V3 model to recognize six different types of dogs using Transfer Learning and Fine Tuning methods.
Six Classes (Dogs) - Image Classification with pre-trained Xception model - Uses a Keras ImageNet pre-trained Xception model to recognize six different types of dogs using Transfer Learning and Fine Tuning methods.
Ten Classes (Birds) - Dataset Train-Validate-Test Split - Splits the raw dataset into train, validate and test subsets. The validation dataset uses 20% of the raw dataset. The test dataset uses 10% of the remaining raw dataset and does not get used for training or validation.
Ten Classes (Birds) - Image Classification with pre-trained VGG16 model - Uses a Keras ImageNet pre-trained VGG16 model to recognize ten different types of birds using Transfer Learning and Fine Tuning methods.
Ten Classes (Birds) - Image Classification with pre-trained VGG19 model - Uses a Keras ImageNet pre-trained VGG19 model to recognize ten different types of birds using Transfer Learning and Fine Tuning methods.
Ten Classes (Birds) - Image Classification with pre-trained Inception V3 model - Uses a Keras ImageNet pre-trained Inception V3 model to recognize ten different types of birds using Transfer Learning and Fine Tuning methods.
Ten Classes (Birds) - Image Classification with pre-trained Xception model - Uses a Keras ImageNet pre-trained Xception model to recognize ten different types of birds using Transfer Learning and Fine Tuning methods.
Ten Classes (Butterflies) - Dataset Train-Validate-Test Split - Splits the raw dataset into train, validate and test subsets. The validation dataset uses 20% of the raw dataset. The test dataset uses 10% of the remaining raw dataset and does not get used for training or validation.
Ten Classes (Butterflies) - Image Classification with pre-trained VGG16 model - Uses a Keras ImageNet pre-trained VGG16 model to recognize ten different types of butterflies using Transfer Learning and Fine Tuning methods.
Ten Classes (Butterflies) - Image Classification with pre-trained VGG19 model - Uses a Keras ImageNet pre-trained VGG19 model to recognize ten different types of butterflies using Transfer Learning and Fine Tuning methods.
Ten Classes (Butterflies) - Image Classification with pre-trained Inception V3 model - Uses an ImageNet pre-trained Inception V3 model to recognize ten different types of butterflies using Transfer Learning and Fine Tuning methods.
Ten Classes (Butterflies) - Image Classification with pre-trained Xception model - Uses a Keras ImageNet pre-trained Xception model to recognize ten different types of butterflies using Transfer Learning and Fine Tuning methods.
./data - Folder containing data files used in the Python scripts and in the notebooks.
./images - Folder containing images used in the Python notebooks.
./csv - Folder containing csv files generated by the pandas library during the testing phase in the Python notebooks.
./model - Folder containing trained models via transfer learning and fine tuning phases in the Python notebooks. There are no models stored by default because they exceed 25MB in file size.
Noodles Data - Open Images is a dataset of ~9 million URLs to images that have been annotated with labels spanning over 6000 categories. "Krasin I., Duerig T., Alldrin N., Veit A., Abu-El-Haija S., Belongie S., Cai D., Feng Z., Ferrari V., Gomes V., Gupta A., Narayanan D., Sun C., Chechik G, Murphy K. OpenImages: A public dataset for large-scale multi-label and multi-class image classification, 2016. Available from https://github.com/openimages".
Leaves Data - Leaves dataset taken by Markus Weber. California Institute of Technology PhD student under Pietro Perona. 186 images of leaves against different backgrounds. Approximate scale normalisation. Jpeg format. Taken in and around Caltech. 896 x 592 jpg format.
Dogs Data - Open Images is a dataset of ~9 million URLs to images that have been annotated with labels spanning over 6000 categories. "Krasin I., Duerig T., Alldrin N., Veit A., Abu-El-Haija S., Belongie S., Cai D., Feng Z., Ferrari V., Gomes V., Gupta A., Narayanan D., Sun C., Chechik G, Murphy K. OpenImages: A public dataset for large-scale multi-label and multi-class image classification, 2016. Available from https://github.com/openimages".
Birds Data Welinder P., Branson S., Mita T., Wah C., Schroff F., Belongie S., Perona, P. “Caltech-UCSD Birds 200”. California Institute of Technology. CNS-TR-2010-001. 2010.
Butterflies Data Josiah Wang, Katja Markert, and Mark Everingham, Learning Models for Object Recognition from Natural Language Descriptions, In Proceedings of the 20th British Machine Vision Conference (BMVC2009)
All coding was done in Python and with publicly available libraries using Jupyter Notebook.