Skip to content
/ BLeafNet Public

A tensorflow implementation of bonferroni mean operator based fusion of CNN models for plant identification using leaf image classification

Notifications You must be signed in to change notification settings

tre3x/BLeafNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BLeafNet: A Bonferroni mean operator based fusion of CNN models for plant identification using leaf image classification

Image In this work, we have proposed a leaf image classification model, called BLeafNet, for plant identification, where the concept of deep learning is combined with Bonferroni fusion learning. Initially, we have designed five classification models, using ResNet-50 architecture, where five different inputs are separately used in the models. The inputs are the five variants of the leaf grayscale images, RGB, and three individual channels of RGB - red, green, and blue. For fusion of the five ResNet-50 outputs, we have used the Bonferroni mean operator as it expresses better connectivity among the confidence scores, and it also obtains better results than the individual models. We have also proposed a two-tier training method for properly training the end-to-end model. To evaluate the proposed model, we have used the Malayakew dataset, collected at the Royal Botanic Gardens in New England, which is a very challenging dataset as many leaves from different species have a very similar appearance. Besides, the proposed method is evaluated using the Leafsnap and the Flavia datasets. The obtained results on both the datasets confirm the superiority of the model as it outperforms the results achieved by many state-of-the-art models.

Getting Started

Prerequisites

You need Python3.X and conda package manager to run this tool

Installation

The follwing steps can be used to install the required packages :

  1. Clone the repository git clone https://github.com/tre3x/BLeafNet.git
  2. Inialize a conda environment with neccessary packages conda env create -f environment.yml
  3. Activate conda enviroment conda activate BLeafNet Once the conda enviroment is activated, we can procees to training the model.

Training

For training the model, the following command can be used

python main.py --train {training path} --val {validation path} --epochs_base {base epoch} --epochs {final epoch} --batch {batch size} --steps {steps} 

{training path} : Path to the training leaf image set
{validation path} : Path to the validation leaf image set
{base epochs} : Number of epochs used while using base CNN models
{final epochs} : Number of epochs used while training final fused model
{batch size} : Batch Size used while training and validating
{Steps} : Number of steps per epochs while training

The final trained model is saved at models/fused.

About

A tensorflow implementation of bonferroni mean operator based fusion of CNN models for plant identification using leaf image classification

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages