1 of 12

Tree Species Classification

Submitted By : Divija Arora

2 of 12

Learning Objectives

GOAL

  • Learned to clean and preprocess a real-world image dataset.
  • Learned to detect and handle duplicates and corrupted images.
  • Building and training CNN models using TensorFlow and Keras.
  • Gaining practical experience with image preprocessing and data augmentation techniques.
  • Understanding and comparing different CNN architectures
  • Learned to fine-tune hyperparameters to improve model accuracy.
  • Using Google Colab for GPU-accelerated model training.
  • Gained hands-on experience in model evaluation and performance visualization.

3 of 12

Tools and Technology used

  • Python
  • Google Colab
  • TensorFlow / Keras
  • Matplotlib
  • Scikit-learn
  • Pandas
  • PIL (Pillow)
  • EfficientNet
  • CNN (Convolutional Neural Networks)
  • GitHub (for version control)

4 of 12

Methodology

We implemented and compared the following three models:

​

​

          • Basic CNN Model –
            • A sequential CNN with 3 convolutional blocks, each followed by MaxPooling.

​

            • Ends with a Flatten layer, Dense hidden layer, Dropout, and a Softmax output layer.

​

                  • Trained from scratch.

​

5 of 12

Methodology

  • EfficientNetB0 –
            • Helped stabilize training and improve convergence.

​

                  • Achieved the highest accuracy among the three.
  • CNN with Batch Normalization –
            • Loaded the EfficientNetB0 model pre-trained on ImageNet without the top layer.

​

            • Kept the base model frozen initially to use learned features efficiently.

​

                  • This significantly improved accuracy.

All models were trained on a labeled dataset of tree images across 31 species.

6 of 12

Problem Statement:

Identifying tree species from images is a challenging task due to variations in lighting conditions, camera angles, leaf shapes, and complex backgrounds.

Manual identification can be time-consuming and prone to errors, especially when dealing with large datasets or visually similar species.

�Goal is to develop a robust and efficient deep learning model that can automatically and accurately classify tree species based on input images — regardless of lighting, background, or orientation.

7 of 12

Solution:

We built a deep learning pipeline that:

  • Ensured consistent image dimensions and quality for model readiness.
  • Improved data integrity by eliminating low-quality inputs (removes duplicates, outliers, and corrupted images).
  • Applied transformations like rotation, zoom, and flipping to improve generalization.
  • Trains three CNN models to classify tree species.
  • Compares performance to choose the best model.

Github Link : https://github.com/Divija-Arora/edunet_internship

8 of 12

Screenshot of Output:

EfficientNetB0:

Achieved a low validation accuracy of approximately 8.1%, indicating underperformance.

9 of 12

Screenshot of Output:

Basic CNN:

Reached around 25.7% validation accuracy, showing gradual improvement over epochs.

10 of 12

Screenshot of Output:

CNN with Batch Normalization:

Performed best out of the three, with a validation accuracy of approximately 30.6%, demonstrating better generalization.

11 of 12

Screenshot of Output:

Final Tuned CNN Model:

Achieved ~98% training accuracy using a CNN enhanced with Batch Normalization and Dropout.

12 of 12

Conclusion:

  • Built an end-to-end deep learning pipeline for tree species classification.
  • Learned to handle real-world challenges like duplicates, varying image sizes, and data imbalance.
  • Compared multiple CNN models and improved accuracy through experimentation.’
  • Achieved ~98% training accuracy after fine-tuning EfficientNetV2S with regularization and early stopping.
  • Used industry-standard tools like TensorFlow, Keras, and EfficientNet effectively.
  • Future Scope : Expand to more tree species and global datasets.