/plant-disease-detection-final

Plant disease detection using VGG16 model, which is a pre-trained model that has been trained on a large dataset of images.

Primary LanguagePythonMIT LicenseMIT

Plant Disease Detection using Deep Learning

Using Deep Learning for Image-Based Plant Disease Detection

Resources:

Objective

  • Train and Evaluate different DNN Models for plant disease detection problem

  • To tackle the problem of scarce real-life representative data, experiment with different generative networks and generate more plant leaf image data

  • Implement segmentation pipeline to avoid misclassification due to unwanted input

Approches for Solving the papers realtime Detection Problem

phase 1 : implement the paper

phase 2 : do analysis on the paper and identify the type of data problem

phase 3 : experiment and if possible generate appropriate data using the data to train the model again

Project Structure

Plant_Disease_Detection_Benchmark_models

  • Train and test different prediction models to get a baseline accuracy to compare to and see progress

Plant_Disease_Detection_gan_experiments

  • experiment with different generative networks to see their generative capability and if the output can be used to train more robust models

leaf-image-segmentation-segnet

  • segmentation pipeline using VGGSegNet Architecture

leaf-image-segmentation

  • histogram based segmentation Pipline

Usage

python main.py IMAGE_FILE [--segment] [--species SPECIES_TYPE] [--model PREDICTION_MODEL]

Arguments:
	IMAGE_FILE    Path of the image file
	--segment     If specified perform segmentation on the image before prediction
	--species     If the plant species on the image is priorly known. One of the following species:  Apple, Cherry, Corn, Grape, Peach, Pepper, Potato, Strawberry, Sugercane, Tomato
	--model       What models do you want to use, vgg or inceptionv3

Examples

# you can remove a part of arguments except image path

>>  python main.py 'test/a.jpg' --segment --species 'apple' --model 'inceptionv3'
  • This will segment the image and predict the output class based on that. Segmented image will be saved as the file name with "_marked" suffix before the file extension.

  • The images are trained with segmented network and lower performance on unsegmented dataset is expected.

  • You can check the segmentation accuracy from saved image.