Multi-Class Image Classification Deep Learning Model for Weed Species Image Using TensorFlow Take 3

Template Credit: Adapted from a template made available by Dr. Jason Brownlee of Machine Learning Mastery.

SUMMARY: This project aims to construct a predictive model using a TensorFlow convolutional neural network (CNN) and document the end-to-end steps using a template. The Flower Photos dataset is a multi-class classification situation where we attempt to predict one of several (more than two) possible outcomes.

INTRODUCTION: The DeepWeeds dataset consists of 17,509 images capturing eight different weed species native to Australia in situ with neighboring flora. The selected weed species are local to pastoral grasslands across the state of Queensland. They include: “Chinee apple”, “Snake weed”, “Lantana”, “Prickly acacia”, “Siam weed”, “Parthenium”, “Rubber vine” and “Parkinsonia”.

The research team built and tested their models using a five-fold cross-validation approach. Each fold of the dataset contains the subset of data for training (60%), validation (20%), and testing (20%). The research team set up the Python script for multi-label classification. To keep our experiments straight-forward for now, this series of exercises will focus on predicting a single class for each image.

From iteration Take1, we constructed a CNN model using the ResNet50 architecture and tested the model’s performance using the dataset’s five subsets.

From iteration Take2, we constructed a CNN model using the InceptionV3 architecture and tested the model’s performance using the dataset’s five subsets.

In this Take3 iteration, we will construct a CNN model using the DenseNet201 architecture and test the model’s performance using the dataset’s five subsets.

ANALYSIS: In this Take3 iteration and using the subset0 portion of the dataset, the model’s performance achieved an accuracy score of 80.41% on the validation dataset after 50 epochs. Furthermore, the final model processed the test dataset with an accuracy measurement of 83.15%.

  • Data subset1: Validation – 80.24%, Test – 82.87%
  • Data subset2: Validation – 77.58%, Test – 81.46%
  • Data subset3: Validation – 82.22%, Test – 84.43%
  • Data subset4: Validation – 74.96%, Test – 80.56%

CONCLUSION: In this iteration, the DenseNet201 TensorFlow CNN model appeared to be suitable for modeling this dataset. We should consider experimenting with TensorFlow for further modeling.

CONCLUSION: In this iteration, the InceptionV3 TensorFlow CNN model appeared to be suitable for modeling this dataset. We should consider experimenting with TensorFlow for further modeling.

Dataset Used: Weed Species Image Dataset

Dataset ML Model: Multi-class image classification with numerical attributes

Dataset Reference: https://github.com/AlexOlsen/DeepWeeds

One potential source of performance benchmarks: https://github.com/AlexOlsen/DeepWeeds

The HTML formatted report can be found here on GitHub.