Plant Seedling
Classification
Submitted By:
Yougal Joshi,
Aarushi Atrey,
Shraddha
Why Seedling Classification?
Weed control systems have been developed
aiming at optimizing yields and costs while
minimizing environmental challenges
In this work, we explore the performance of
traditional computer vision methods on this task
and show that a Deep Convolutional Neural
Network (CNN) does the best job at classifying
plant seedlings.
Seedling Classification helps machines to classifies
between useful plants and weed more accurately
DataSet Usage
The dataset used, provided by the Aarhus University
Signal Processing group, in collaboration with
University of Southern Denmark
This dataset consist of:
4257 images of approximately 960 unique plants
Each image belong to the 12 species at several
growth stages.
This allows farmers to conduct weeding before the
weeds starts competing for crop nutrition.
Architecture Usage
In the course of exploring the right architecture for
our model,we consider the following architectures:
GoogleLeNet
VGGNet
Implementing a 26 deep layer learning model
consisting of 8 residual blocks in their classification of
10,000 images of 100 ornamental plant species
achieving classification rates of up to 91.78%.
Baseline: Using Traditional
Algorithms
Data Processing:We performed image preprocessing
on the dataset before training the models
First using Gaussian Blur, we smoothen the image,
removing high frequency content and then
converting this blurred version to HSV space.
We created a mask by spacifying a range of possible
color values of the seedlings to be captured and
using a morphological erosion with an 11 x 11
structuring kernel, we are able to produce
foreground seedling images with the backgrounds
subtracted.
Baseline: Using Traditional
Algorithms
Support Vectors and K-Nearest Neighbors:
To perform baseline tests, we use non-neural network
techniques: Support Vector Machines (SVMs) and K-
Nearest Neighbors classifiers.
For the KNN model, using values for the number of
neighbors parameter, n_neighbors, ranging from
[1, √n], where n=input size, we use grid search to
find our best model to have, number of neighbors
= 5 with uniform weights and accuracy of 56.84%.
Baseline: Using Traditional
Algorithms
Support Vector Machines(SVM’s):
For our SVM classifier, using similar grid search
technique, we find our optimal parameters to be:
penalty parameter of the error term, C = 5, kernel =
linear and gamma value = auto which uses 1/n
features as the kernel coefficient. Our accuracy for
this model is 61.47%.
Libraries Used
Numpy:
NumPy is the fundamental package for
scientific computing with Python. It contains
among other things:
a powerful N-dimensional array object
sophisticated (broadcasting) functions
tools for integrating C/C++ and Fortran code
useful linear algebra, Fourier transform, and
random number capabilities
Libraries Used
OpenCV:
OpenCV (Open source computer vision) is a
library of programming functions mainly aimed at
real-time computer vision. Originally developed by
Intel, it was later supported by Willow Garage then
Itseez (which was later acquired by Intel). The
library is cross-platform and free for use under the
open-source BSD license.
OpenCV supports the deep learning frameworks
TensorFlow, Torch/PyTorch and Caffe.
Libraries Used
Pandas:
pandas is a software library written for the Python
programming language for data manipulation and analysis.
In particular, it offers data structures and operations for
manipulating numerical tables and time series.
MatPlotLib:
Matplotlib is a plotting library for the Python
programming language and its numerical
mathematics extension NumPy. It provides an
object-oriented API for embedding plots into
applications using general- purpose GUI toolkits like
Tkinter, wxPython, Qt, or GTK+.
Libraries Used
TensorFlow:
TensorFlow is a free and open-source software library
for dataflow and differentiable programming across
a range of tasks. It is a symbolic math library, and is
also used for machine learning applications such as
neural networks. It is used for both research and
production at Google.
Convolution Neural Network:
Result and Comparision
Algorithm Description Accuracy (%)
KNN With OpenCv background segmentation 56.84
SVM With OpenCV background segmentation 61.47
CNN With OpenCV background segmentation 97.60