# Table of Content

# Abbreviations

ML Machine Learning
DL Deep Learning
CNN Convolutional Neural Network
DCNN Deep Convolutional Neural Network
ILSVRC ImageNet Large Scale Visual Recognition Challenge
VGG Visual Geometry Group ( Convolutional neural network architecture )
COCO Common Objects in Context

# Abstract

With the increase in population, the needs have also been increased. As agriculture is a vital source for providing food, whereas crop ailments are major commination to agriculture, and their early detection remains strenuous over the globe due to insufficient technology, agricultural organizations are unable to reach farmers in time for necessary precautionary measures. As a result, farmers have to suffer from compromised lower crop yield. Many machine learning models were used to detect and identify diseases of plants but, after the advancement in Deep Learning, this field seems to have great potential concerning improved accuracy. The combination of advancements in computer vision and the global smartphone penetration made possible by deep learning to provide a mobile-phone-based system to diagnose diseases. Using a public data-set of 87,900 photos of healthy and diseased leaves, several models were trained to identify 14 crops and the presence or absence of 26 diseases, with the best performance reaching a 98.58% on the retained dataset, which demonstrates the practicality of our perspective. Generally, the methodology of training deep convolutional neural networks on exceptionally huge and publicly accessible image data-sets presents a straightforward path towards a massive global diagnosis of mobile-phone-assisted crop disease.

# Chapter 1: Introduction

Earth is occupying more than 7 billion people. The number is increasing gradually. With a persistent increase in population, it is understood that basic life necessities are also increasing in which food is on top of the list. The increasing population has also eaten up the land, and the area for agricultural land is shrinking up. So we have to get an adequate amount of food from the land available. Food sustainability, however, remains endanger by a variety of factors which includes climate change [5], plant diseases [23] and others. When the plants are growing up, they are attacked by diseases which clearly means a compromised lower crop yield. Unfortunately, smallholder farmers have to face the disastrous consequences whose income entirely depends upon crops. Yield. The major agricultural production comes from smallholder farmers [9], and they have to suffer approximately 50% yield loss due to climate change, pest attack, and diseases. Acknowledging these problems, various attempts have been made to avert or lower the loss of crop yield. To prevent the disease, it is crucial to detect the disease at an early stage. And efficient disease management is a very crucial step in this regard. Agricultural organizations have been working for disease detection at an early stage at local clinics. During the past decades the world has totally turned into ”Global Village” and because of that enormous data is available online including information on disease diagnosis [11] and the leverage of which is internet penetration worldwide. More recently, mobile phone technology incredibly has become famous due to the proliferation of mobile-based tools in all parts of the world. All these factors escort us to a point where disease detection is technically feasible and available at an unparalleled scale. Unlike other countries, Pakistan lacks modern technology due to which, we are unable to detect diseases in time and to reach farmers in order to raise awareness about rehabilitation. The blue-collar approaches make it very slow for policy-making organizations to gather data and draw results for immediate movement. The intensity behind this research work is to dispense an efficient system that can detect the disease straight-away whether a farmer or agricultural organization uses it. We intended to develop mobile as well as a web-based tool using deep learning for the detection of crop diseases. Deep learning has proved its worth successfully in many different domains such as end-to-end learning. Now we are going to demonstrate the technical feasibility of our proposed approach by utilizing 87,900 images on healthy and infected leaves of crop plants that are openly available on the online system PlantVillage [2].

Sample leaf images from the dataset
Figure 1.1: Sample leaf images from the dataset

A DCNN includes the mapping between an input to an output. Deep learning is probability-based means it never gives us the definite answer however it gives us the probabilities. The term CNN itself stipulates that a mathematical function called convolution is used within the network. Convolution is a specific type mathematical operation on two functions which produces a third function that expresses how another changes one’s form. A CNN consists of two main input and output layers, and multiple hidden layers. Typically the hidden layers consist of a series of convolutionary layers. The activation function is commonly a Rectified Linear Units (RELU). The purpose of RELU is to normalize the values after the application of convolution to convert the values in a specific range. Additional convolutions such as pooling, fully connected layers and normalization layers follow the RELU. Pooling is to choose the best or one thing out of the pool of things. The nodes in neural networks are computational units which take weighted inputs from the incoming edges and provide an outgoing edge with numerical output. node enumerates an output value by adding a specific function to the previous layer’s input values. In a neural network, model learning progresses through iterative changes to these weights and biases. DCNN is learned by changing network parameters in such a way as to improve mapping during the training. For thepurpose of plant disease identification, we needed a large and verified data-set of healthy and diseased images to train an accurate image classifier, but such dataset did not exist until very recently, and even small dataset were not publicly available. In order to tackle this issue, the PlantVillage project began to collect a large dataset of diseased and healthy crop plants and made them available publicly. We announce here on the classification of 26 diseases (presence or absence) in 14 crop species using 87,900 with deep learning (DL).

# Chapter 2: Motivation and Problem Statement

# 2.1: Motivation

With the increase in population, the needs have also been increased. As agriculture is the vital source for providing food but, unfortunately, because of lack the modern technology, the agricultural organization are unable to reach farmers in time for necessary precautionary measures. As a results farmers have to suffer from compromised lower crop yield. We are aimed to work for a solution that can prevent farmers from suffering a loss to some extent.

# 2.2: Problem Statement

Plant disease affects not only the production of human food but also natural systems. The majority of smallholder farmers do not have access to the resources that can identify the diseases accurately and timely. Due to the lack of timely and accurate agricultural information, they have to suffer from lower crop yield.

# Chapter 3: Literature Review

The Deep Learning (DL) is subcategory of ML. This field is still evolving. Machine Learning has made enormous evolution in the past few years. Many advances were found in the first phase, such as handwritten text recognition, back-propagation and resolving training problems. In the second phase was to develop algorithms for health-sectors, text-recognition, earthquake-predictions, marketing, finance, image-recognition, and object detection. In 2012 a deep convolutionary neural network accomplished a top-5 error of 15.3% when classifying images into 1000 possible categories [1]. In the next three years, numerous advances in convolutionary neural networks reduced the error rate to 3.57. With the passage of time as Deep Learning architectures started to evolve, researchers applied them to classification, segmentation, object detection, video processing, natural language processing, image recognition, and speech recognition. Different agriculture application has also been developed using these architectures. For example, Leaf counting was performed using Deep CNN with average accuracy of 95% [25]. Leaf classification was performed using deep convolutional neural network classifier among 32 different species with average accuracy of 97.3% [7]. Fruit counting was performed by using simulated deep convolutional neural network with an average accuracy of 91% [19]. Classification of land cover and crop type was performed by using deep learning classifier with accuracy of crop type identification of 95% [18]. Identification of plants was performed by using Deep convolutional neural network [10], [16]. In [26] identification of plants was performed among 100 different species utilizing 10,000 images using deep learning with an accuracy of 91.78%. In addition deep learning techniques are also used in for crucial tasks such as crop plant disease identification and classification which is main topic of this thesis. For example, in [20] plant disease detection was performed using deep convolutional neural network classifier. To sum up, used DL Architectures are shown in the table along with the selected plants and their results.

Deep Learning Techniques Dataset Used Plants Accuracy Reference
Convolutional Neural Network Plant Village Maize 92.85% [21]
LeNet Plant Village Banana 98.54% [4]
Alex-Net, VGG16, VGG-19, Squeeze-Net, Goog-LeNet, Inception-v-3, Inception-ResNet-v-2, ResNet-50, Resnet-101 Real Field Dataset Apricot, Walnut, Peach, Cherry 97.14% [24]
Inception-v-3 Experimental Field Dataset Cassava 93% [3]
Convolutional Neural Network Images Taken From The Research Center Cucumber 82.3% [8]
Super Resolution Convolutional Neural Network (SCRNN) Plant Village Tomato 90% [15]
Caffe-Net Downloaded From The Internet Pear, cherry, peach, apple, grapevine 96.3% [22]
Resnet-50, Inception-V-2, Mobile-Net-V-1 Real Environment Banana 99% of ResNet-50 [17]
Mobile-Net, Modified-Mobile-Net, Reduced-Mobile-Net Plant Village dataset 24 Types Of Plants 98.34% of reduced MobileNet [14]

Table 3.1: DL Architectures along with selected plant species and results

From this table, we can conclude that while some Deep Learning Architectures/- Models have been developed for the identification of the diseases of plants but this is still a prolific research field and should lead to improvements for better plant disease identification. So we needed a large and verified data set of healthy and diseased images to train an accurate image classifier for plant disease diagnosis, but such a dataset did not exist until very recently. Plant Village collected a huge dataset of 87,900 images of plant health to enable the development of smartphone assisted disease diagnosis and made it publicly and freely available [12].

# Chapter 4: Materials and Methods

# 4.1: Materials

Our dataset is consists of 87,900 pictures of healthy and diseased plant leaves. All the images in the dataset were taken at experimental research stations affiliated with Land Grant Universities in the USA (Penn State, Florida State, Cornell, and others) [12]. These images consist of 26 major crop diseases (4 bacterial diseases, 17 Fungal diseases, 2 viral diseases, 2 mold diseases, and 1 disease caused by a mite). These images also have 12 healthy leaves of 12 crop species that are not visibly affected by a disease. Table 4.1 Summarizes the dataset.

Crop Classes
Apple Apple-Healthy, Apple-Cedar-Rust, Apple-Black-Rot, Apple-Scab
Raspberry Raspberry-Healthy
Soybean Soybean-Healthy
Squash Squash-Powdery-Mildew
Strawberry Strawberry-Leaf-Scorch, Strawberry-Healthy
Tomato Tomato-Healthy, Tomato-Late-Blight, TomatoBacterial-Spot, Tomato-Early-Blight, TomatoLeaf-Mold, Tomato-Septoria-Leaf-Spot, TomatoMosaic-Virus, Tomato-Two-Spotted-Spider-Mite, Tomato-Target-Spot, Tomato-Yellow-Leaf-CurlVirus
Potato Potato-Early-Blight, Potato-Late-Blight, PotatoHealthy
Blueberry Blueberry-Healthy
Cherry Cherry-Healthy, Cherry-Powdery-Mildew
Corn Corn-Healthy, Corn-Common-Rust, Corn-Gray-Leaf Spot, Corn-Northern-Leaf-Blight
Grape Grape-Healthy, Grape-Leaf-Blight, Grape-BlackRot, Grape-Black-Measles(Esca)
Orange Orange-Huanglongbing (Citrus-Greening)
Peach Peach-Healthy, Peach-Bacterial-Spot
Bell-Pepper Bell-Pepper-Bacterial-Spot, Bell-Pepper-Healthy

Table 4.1: List of Crops with their respective classes in the Dataset.

# 4.2: Methods

Since these diseases can severely affect plants, we landed up with four different models for 38 different classes (Table 4.1) to achieve maximum accuracy. Blueprint of our proposed system for disease detection is showed in the figure 4.1.

To train the model, we focused on 4 different architectures, namely VGG16, Resnet152, MobileNet, and MobileNetV2.

VGG16 was proposed by Andrew Zisserman and Karen Simonyan of the Visual Geometry Community Lab at Oxford University. This model secured 1st and 2nd place in ImageNet Large Scale Visual Recognition Challenge (ILSVRC) in 2014. The VGG16 network is trained on an ImageNet dataset which has 14 million images and 1000 classes, and this model achieves 92.7% top-5 test accuracy.

Resnet was proposed by Microsoft Research Asia [13] and won the ImageNet Large Scale Visual Recognition Challenge (ILSVRC) and MS-COCO competition in 2015. ResNet architecture has several variants all of them have the similar concept but have different number of layers, for example ResNet-18, ResNet-50, ResNet-101 and so on. The name Resnet followed by numbers simply insinuate the Resnet architecture witch has number of layers of neural network. The main idea manoeuvred in these models, residual network connections, is found to greatly enhance gradient flow, thus enabling the training of tens or even hundreds of layers of much deeper models.

Blueprint of our proposed system for disease detection
Figure 4.1: Blueprint of our proposed system for disease detection

MobileNet is a model built primarily from depthwise separable convolutions to create lightweight deep convolutional neural networks and provides an efficient model for smartphone and integrated vision applications [6].

To train these models we used Google Colaboratory framework. Google Colab is a free cloud service created by Google, in which the person who has a Gmail account can write, execute codes for Machine learning as well as for Deep learning. In Google Colab different runtime environments and Various versions of python are available. It can also download large datasets to google drive at higher speed directly from the servers. With Google Colab, you can also mount your drive and it can fetch the appropriate file after the authentication. The most important feature of Google Colab that distinguishes it from other free cloud services is it provides GPU and it is totally free. To summarize, we have 4 experimental configurations in total, which are described in the next section

# 4.2.1: Experiment # 1

In this experiment, we used a python deep learning library called PyTorch, and the model we used in this experiment is Resnet152. We used transfer learning to train the model because it always yields better results. This experiment runs for a total of 50 epochs and achieves testing accuracy of 98.5%.

Model Accuracy
Figure 4.2: Model Accuracy
Model Loss
Figure 4.3: Model Loss

# 4.2.2: Experiment # 2

In this experiment, we used a python deep learning library called TensorFlow, and we created a custom model. This experiment runs for a total of 80 epochs and achieves an accuracy of 94.72%.

Accuracy of the classifier for all classess
Figure 4.4: Accuracy of the classifier for all classes
Graph of all Classes and their Identifications
Figure 4.4: Graph of all Classes and their Identifications

# Chapter 5: Implementation Details

The very first was to gather the data and train the model to get the results. After the collection of the dataset which is consisted of 87,900 different plant images, we divided the dataset into train-test splits of 25-75, 50-50, and 25-75. We made these splits to get a sense of how our proposed approach will perform on the unseen data and also keep track of if our proposed approach is underfitting or overfitting. After training the model with the best performance reaching a 98.58% on a held-out test set we developed an API using Flask for this model to interact with our mobile application. After the development of the API, we developed a mobile application to interact with the API which interacts with the model to give the final results.

# 5.1: Snippets of Model Training Code

Here are some snippets of our code to train the model.

import torch
import numpy as np
import matplotlib.pyplot as plt
import torch
import time
import numpy as np
from torch import nn, optim
import torch.nn.functional as F
from torchvision import datasets, transforms, models
import torchvision
from collections import OrderedDict
from torch.autograd import Variable
from PIL import Image
from torch.optim import lr_scheduler

Figure 5.1: Libraries used in the model training
data_dir = '/content/DataSet'
train_dir = data_dir + '/train'
valid_dir = data_dir + '/val'
nThreads = 4
batch_size = 32

Figure 5.2: Load the dataset
data_transforms = {
    'train': transforms.Compose([
        transforms.RandomRotation(30),
        transforms.RandomResizedCrop(224),
        transforms.RandomHorizontalFlip(),
        transforms.ToTensor(),
        transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    ]),
    'val': transforms.Compose([
        transforms.Resize(256),
        transforms.CenterCrop(224),
        transforms.ToTensor(),
        transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    ]),
}

data_dir = '/content/DataSet'
image_datasets = {x: datasets.ImageFolder(os.path.join(data_dir, x),
                                          data_transforms[x])
                  for x in ['train', 'val']}

dataloaders = {x: torch.utils.data.DataLoader(image_datasets[x], batch_size=batch_size,
                                             shuffle=True, num_workers=4)
              for x in ['train', 'val']}

dataset_sizes = {x: len(image_datasets[x]) for x in ['train', 'val']}

class_names = image_datasets['train'].classes

Figure 5.3: Applying Data Augmentation
model = models.resnet152(pretrained=True)
for param in model.parameters():
    param.requires_grad = False

from collections import OrderedDict

classifier = nn.Sequential(OrderedDict([
                          ('fc1', nn.Linear(2048, 512)),
                          ('relu', nn.ReLU()),
                          ('fc2', nn.Linear(512, 39)),
                          ('output', nn.LogSoftmax(dim=1))
                          ]))

model.fc = classifier

Figure 5.4: Building the Classifier
def train_model(model, criterion, optimizer, scheduler, num_epochs=20):
    since = time.time()
    best_model_wts = copy.deepcopy(model.state_dict())
    best_acc = 0.0

    for epoch in range(1, num_epochs+1):
        print('Epoch {}/{}'.format(epoch, num_epochs))
        print('-' * 10)

        for phase in ['train', 'val']:
            if phase == 'train':
                scheduler.step()
                model.train()  
            else:
                model.eval()  

            running_loss = 0.0
            running_corrects = 0

            for inputs, labels in dataloaders[phase]:
                inputs, labels = inputs.to(device), labels.to(device)
                optimizer.zero_grad()

                with torch.set_grad_enabled(phase == 'train'):
                    outputs = model(inputs)
                    loss = criterion(outputs, labels)
                    _, preds = torch.max(outputs, 1)

                    if phase == 'train':
                        loss.backward()
                        optimizer.step()

                running_loss += loss.item() * inputs.size(0)
                running_corrects += torch.sum(preds == labels.data)

            epoch_loss = running_loss / dataset_sizes[phase]
            epoch_acc = running_corrects.double() / dataset_sizes[phase]
            print('{} Loss: {:.4f} Acc: {:.4f}'.format(
                phase, epoch_loss, epoch_acc))

            if phase == 'val' and epoch_acc > best_acc:
                best_acc = epoch_acc
                best_model_wts = copy.deepcopy(model.state_dict())
        print()

    time_elapsed = time.time() - since
    print('Training complete in {:.0f}m {:.0f}s'.format(
        time_elapsed // 60, time_elapsed % 60))
    print('Best valid accuracy: {:4f}'.format(best_acc))
    model.load_state_dict(best_model_wts)
    return model

Figure 5.5: Function to train the model
num_epochs = 80

criterion = nn.NLLLoss()
optimizer = optim.Adam(model.fc.parameters(), lr=0.001)
exp_lr_scheduler = lr_scheduler.StepLR(optimizer, step_size=5, gamma=0.1)
model_ft = train_model(model, criterion, optimizer, exp_lr_scheduler, num_epochs=num_epochs)

Figure 5.6: : Start Training
def test(model, dataloaders, device):
  model.eval()
  accuracy = 0
  model.to(device)
    
  for images, labels in dataloaders['val']:
    images = Variable(images)
    labels = Variable(labels)
    images, labels = images.to(device), labels.to(device)
    output = model.forward(images)
    ps = torch.exp(output)
    equality = (labels.data == ps.max(1)[1])
    accuracy += equality.type_as(torch.FloatTensor()).mean()
    print("Testing Accuracy: {:.3f}".format(accuracy/len(dataloaders['val'])))

test(model, dataloaders, device)

Figure 5.7: Model validation after Training
model.class_to_idx = dataloaders['train'].dataset.class_to_idx
model.epochs = num_epochs
checkpoint = {'input_size': [3, 224, 224],
                 'batch_size': dataloaders['train'].batch_size,
                  'output_size': 39,
                  'state_dict': model.state_dict(),
                  'data_transforms': data_transforms,
                  'optimizer_dict':optimizer.state_dict(),
                  'class_to_idx': model.class_to_idx,
                  'epoch': model.epochs}
torch.save(checkpoint, 'plants9615_checkpoint.pth')

Figure 5.8: Saving the model for Further use

# 5.2: Snippets of App User Interface

User interface for the mobile application is shown in the upcoming pictures.

Sign Up Screen
Figure 5.9: Sign Up Screen
Login Screen
Figure 5.10: Login Screen
Home Screen
Figure 5.11: Home Screen
Community Screen
Figure 5.12: Community Screen
User Screen
Figure 5.13:User Screen
Add Post Screen
Figure 5.14:Add Post Screen
Logout Screen
Figure 5.15: Logout Screen
Prediction # 1 Screen
Figure 5.16: Prediction # 1 Screen
Prediction # 2 Screen
Figure 5.17: Prediction # 2 Screen
Prediction # 3 Screen
Figure 5.18: Prediction # 3 Screen
Prediction # 4 Screen
Figure 5.19: Prediction # 4 Screen
Prediction # 5 Screen
Figure 5.20: Prediction # 5 Screen

# Chapter 6: Results

All results were observed on the premise that the trained model has to identify the crop genus and the state of the infection. After training model with different configurations the overall accuracy we procured on the collected dataset varied from 75% to 98.58% which showing us the strong promise of a DL approach to similar problems. Mean accuracy’s across our experiments is shown in the table given below.

Experiment Category Dataset Splits Model Used Epochs Mean Accuracy
1 Transfer Learning 70% Train, 30% Validation, Testing VGG16 30 94.72%
2 Transfer Learning 70% Train, 30% Validation, Testing Resnet152 30 96.43%
3 Transfer Learning 70% Train, 30% Validation, Testing Resnet152 50 98.5849%
4 Custom Model 70% Train, 30% Validation, Testing Created Custom Model 50 96%

Table 6.1: Mean accuracy’s across all experiments

# References

[1] Ilya Sutskever Alex Krizhevsky and Geoffrey E. Hinton. ImageNet Classification with Deep Convolutional Neural Networks. Online Available at: https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

[2] Abdallah Ali. PlantVillage Dataset Dataset of diseased plant leaf images and corresponding labels. Available at: https://www.kaggle.com/xabdallahali/plantvillage-dataset

[3] Peter McCloskey Babuali Ahmed Ally James Legg Amanda Ramcharan, Kelsee Baranowski and David P. Hughes. Deep Learning for Image-Based Cassava Disease Detection. Available at: . https://www.frontiersin.org/articles/10.3389/fpls.2017.01852/full?report=reader.

[4] Bouaziz Bassem Amara Jihen and Algergawy Alsayed. A Deep Learningbased Approach for Banana Leaf Diseases Classification. Available at: . https://dl.gi.de/handle/20.500.12116/944.

[5] Maria Val Martin Amos P. K. Tai and Colette L. Heald. Threat to future global food security from climate change and ozone air pollution. Available online at. https://www.nature.com/articles/nclimate2317.

[6] Bo Chen Dmitry Kalenichenko Weijun Wang Tobias Weyand Marco Andreetto Andrew G. Howard, Menglong Zhu and Hartwig Adam. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications. Available at: . https://arxiv.org/pdf/1704.04861.pdf.

[7] Feras Dayoub Niko Sunderhauf David Hall, Chris McCool and Ben Upcroft. Evaluation of Features for Leaf Classification in Challenging Conditions. Available at: . https://ieeexplore.ieee.org/abstract/document/7045965.

[8] Hiroyuki Uga Satoshi Kagiwada Erika Fujita, Yusuke Kawasaki and Hitoshi Iyatomi. Basic Investigation on a Robust and Practical Plant Diagnostic System. Available at: . https://ieeexplore.ieee.org/abstract/document/7838282.

[9] International Fund for Agricultural Development (IFAD) andUnited Nations Environment Programme (UNEP). Smallholders, food security, and the environment. Available online at. https://www.ifad.org/documents/38714170/39135645/smallholders_report.pdf/133e8903-0204-4e7d-a780-bca847933f2e.

[10] Monica G.Larese Guillermo L.Grinblat, Lucas C.Uzal and Pablo M.Granitto. Deep learning for plant identification using vein morphological patterns. Available at: . https://www.sciencedirect.com/science/article/pii/S0168169916304665.

[11] David. P. Hughes and Marcel Salathe. An open access repository of images on plant health to enable the development of mobile disease diagnostics. Available online at. https://arxiv.org/abs/1511.08060

[12] David P. Hughes and Marcel Salathe. An open access repository of images on plant health to enable the development of mobile disease diagnostics. Available at: . https://arxiv.org/ftp/arxiv/papers/1511/1511.08060.pdf

[13] Shaoqing Ren Jian Sun (Microsoft Research) Kaiming He, Xiangyu Zhang. Deep Residual Learning for Image Recognition. Available at: .https://arxiv.org/pdf/1512.03385.pdf.

[14] Mingyang Wu Kamal KC, Zhendong Yin and Zhilo Wu. Depthwise separable convolution architectures for plant disease classification.Available at: . https://www.sciencedirect.com/science/article/pii/S0168169918318696.

[15] Takashi Togami Kyosuke Yamamoto and Norio Yamaguchi. Super-Resolution of Plant Disease Images for the Acceleration of Image-based Phenotyping and Vigor Diagnosis in Agriculture. Available at: . https://www.mdpi.com/1424-8220/17/11/2557.

[16] Sue Han Lee and Chee Seng Chan. Deep-plant: Plant identification with convolutional neural networks. Available at: . https://ieeexplore.ieee.org/abstract/document/7350839.

[17] Henry Ruiz Nancy Safari Sivalingam Elayabalan Walter Ocimati Michael Gomez Selvaraj, Alejandro Vergara and Guy Blomme. AI-powered banana diseases and pest detection. Available at: . https://link.springer.com/article/10.1186/s13007-019-0475-z.

[18] S. Skakun Nataliia Kussul, Mykola Lavreniuk and Andrii Shelestov. Deep Learning Classification of Land Cover and Crop Types Using Remote Sensing Data. Available at: . https://ieeexplore.ieee.org/document/7891032.

[19] Maryam Rahnemoonfar and Clay Sheppard. Deep Count: Fruit Counting Based on Deep Simulated Learning. Available at: . https://www.mdpi.com/1424-8220/17/4/905.

[20] David Hughes Sharada Prasanna Mohanty and Marcel Salathe. Using Deep Learning for Image-Based Plant Disease Detection. Available at: . https://www.frontiersin.org/articles/10.3389/fpls.2016.01419/full.

[21] Malusi Sibiya and Mbuyu Sumbwanyambe. A Computational Procedure for the Recognition and Classification of Maize Leaf Diseases Out of Healthy Leaves Using Convolutional Neural Networks. Available at: . https://www.mdpi.com/2624-7402/1/1/9.

[22] Andras Anderla Dubravko Culibrk Srdjan Sladojevic, Marko Arsenovic and Darko Stefanovic. Deep Neural Networks Based Recognition of Plant Diseases by Leaf Image Classification. Available at: . https://www.hindawi.com/journals/cin/2016/3289801/.

[23] Richard N. Strange. and Peter R. Scott. Plant Disease: A Threat to Global Food Security. Available online at. https://www.annualreviews.org/doi/full/10.1146/annurev.phyto.43.113004.133839.

[24] MUAMMER TURKOGLU and DAVUT HANBAY. Plant disease and pest detection using deep learning-based features. Available at: . https://journals.tubitak.gov.tr/elektrik/abstract.htm?id=24806.

[25] Faina Khoroshevsky Alon Shpigler Aharon Bar Hillel Yotam Itzhaky, Guy Farjon. Leaf Counting: Multiple Scale Regression and Detection Using Deep CNNs. Available at: . https://www.plant-phenotyping.org/lw_resource/datapool/systemfiles/elements/files/63b7a231-949c-11e8-8a88-dead53a91d31/current/document/0031.pdf.

[26] Guan Wang Yu Sun, Yuan Liu and Haiyan Zhang. Deep Learning for Plant Identification in Natural Environment. Available at: . https://www.hindawi.com/journals/cin/2017/7361042/.