Professional Documents
Culture Documents
Finding Solution
A PROJECT REPORT
Submitted by
RAGULRAJKUMAR S (951518104046 )
VISHVA S (951518104073)
YOGESHWARAN G (951518104075)
Of
BACHELOR OF ENGINEERING
IN
COMPUTER SCIENCE AND ENGINEERING
KALASALINGAM INSTITUTE OF TECHNOLOGY
1
BONAFIDE CERTIFICATE
SIGNATURE SIGNATURE
Technology, Technology,
2
ACKNOWLEDGEMENT
Science and Engineering who inspired me and gave me time to make this project to work
a grand success.
Computer Science and Engineering for his valuable guidance throughout and it is great
I extend my heartfelt thanks and profound gratitude to all the faculty members of
3
ABSTRACT
4
LISTOFCONTENTS
ABSTRACT 4
LIST OF FIGURES 8
LIST OF ABBREVIATION 8
1. INTRODUCTION 9
2. SYSTEM PROPOSAL 10
5
5.2. Software Requirements
5.3. Software Description
5.4. Feasibility Study
6. TESTING OF PRODUCTS 27
6.1. Unit Testing
6.1.1. Functional Testing
6.3.1. Bottom Up
6
7.2. Future Enhancement
8. SAMPLE CODING AND SAMPLE 34
SCREENSHOT
9. REFERENCES 54
7
LIST OF FIGURES
LIST OF ABBREVIATIONS
TITLE EXPANSION
OS Operating System
CAE Convolutional Auto Encoder
CNN Convolutional Neural Network
8
CHAPTER 1
INTRODUCTION
Leaves being the most sensitive part of plants show disease symptoms at the
earliest. The crops need to be monitored against diseases from the very first stage
of their life-cycle to the time they are ready to be harvested. Initially, the method
used to monitor the plants from diseases was the traditional naked eye
observation that is a time-consuming technique which requires experts to
manually monitor the crop fields. In the recent years, a number of techniques
have been applied to develop automatic and semi-automatic plant disease
detection systems and automatic detection of the diseases by just seeing the
symptoms on the plant leaves makes it easier as well as cheaper. These systems
have so far resulted to be fast, inexpensive and more accurate than the
traditional method of manual observation by farmers In most of the cases disease
symptoms are seen on the leaves, stem and fruit. The plant leaf for the
detection of disease is considered which shows the disease symptoms. There are
many cases where farmers do not have a fully compact knowledge about the crops
and the disease that can get affected to the crops. This project can be effectively
used by farmers thereby increasing the yield rather than visiting the expert and
getting their advice. The main objective is not only to detect the disease using
image processing technologies. A feature-based approach is proposed here which
tries to overcome the limitations of previous work in terms of accuracy and
portability and the essence of the research lies in provision of high accuracy and
portability to mobile devices. . Convolutional Autoencoder (CAE) network and
Convolutional Neural Network(CNN) have been used to automatically detect the
plant diseases. It is a hybrid model, this model will detect the Bacterial spot
diseases present in the peach plant using images of plant leaves.
9
CHAPTER 2
SYSTEM PROPOSAL
Disadvantages
10
1. Title: A hybrid deep learning-based fruit classification using attention
model and convolution autoencoder
Year: 2020
11
set of weights and bias of ADN. In the second part of the framework, the
supervised ADN with the ground truth is implemented. The final part of the
framework makes a prediction of the category of fruit.
Year: 2021
Mamun Bin Ibne Reaz, Mohammad Tariqul Islam , Sawal Hamid Md. Ali
In this study, they have extensively studied the performance of the different
state-of-the-art convolutional neural networks (CNNs) classification network
architectures i.e. ResNet18, MobileNet, DenseNet201, and InceptionV3 on 18,162
plain tomato leaf images to classify tomato diseases. The comparative performance
of the models for the binary classification (healthy and unhealthy leaves), six-class
classification (healthy and various groups of diseased leaves), and ten-class
classification (healthy and various types of unhealthy leaves) are also reported.
12
Tomato Yellow Leaf Curl Virus, Tomato Mosaic Virus, and Two-spotted spider
mite).
Year: 2021
This paper proposes a novel hybrid model for automatic plant disease detection
based on CAE and CNN with fewer training parameters as compared to other state-
of-the-art systems present in the literature. Although there are various techniques
present in the literature used for automatic plant disease detection, but a hybrid
system of CAE combined with a CNN has not been proposed until now in any
existing research work to the best of our knowledge. Dimensionality reduction
using CAE in the proposed model results in reduction of number of training
parameters of the model.
13
. In this paper, a novel hybrid model was proposed for automatic plant disease
detection that was based on two Deep Learning techniques named Convolutional
Autoencoder (CAE) network and Convolutional Neural Network (CNN). The
proposed hybrid model first obtained compressed domain representations of leaf
images using the encoder network of CAE and then used the compressed domain
representations for classification using CNN. Due to dimensionality reduction
using CAE, the number of features, and hence the number of training parameters
reduced significantly as compared to existing state-of-the-art systems.
4. Title: Image based Plant leaf disease detection using Deep learning
Year: 2021
Image Preprocess – During learning process the image preprocesses with high
resolution and it selects the Region of Interest which differentiates the leaf images
from its surroundings. The image size changed to decrease the training time. Image
Augmentation – Image augmentation used for increase the dataset and the network
14
can able to learn more features from image during training phase. The various
transformations applied on training dataset to increase the dataset. The affine
transformation and perspective transformation applied, this function performs
rotations of image on different axis by various degrees. Pretrained model-The
CNN pretrained on Image Net dataset. When pretrained model used the new
classifier can be added related to leaf disease classification rather than original
classifiers.
15
CHAPTER 3
SYSTEM DIAGRAMS
16
3.3.UML Diagram
17
3.3.3. ACTIVITY DIAGRAM
18
CHAPTER 4
IMPLEMENTATIONS
4.1. Modules
Dataset collection
Pre-training using CAE
Dimensionality reduction using CAE
Disease identification using CNN
4.2. Module Description
Dataset collection:
The collected data set has been passed through a model which has
CAE encoder and decoder, this model several layers in it, using this model the data
set that we have will be pre-trained time before getting to the CNN.
After the pre-training stage the CAE encoder alone work to reduce the
dimensionality of the images that we have in our dataset, Here image will be
compressed into small, not compressing the size but compressing the pixel values
of the images.
19
Disease identification using CNN:
20
CHAPTER 5
SYSTEM REQUIREMENTS
Mouse : Logitech.
Ram : 8GB
O/S : Windows 7
Language :Python
Python
Python is one of those rare languages which can claim to be both simple and
powerful. You will find yourself pleasantly surprised to see how easy it is to
concentrate on the solution to the problem rather than the syntax and structure of
the language you are programming in. The official introduction to Python is
Python is an easy to learn, powerful programming language. It has efficient high-
21
level data structures and a simple but effective approach to object-oriented
programming. Python's elegant syntax and dynamic typing, together with its
interpreted nature, make it an ideal language for scripting and rapid application
development in many areas on most platforms. I will discuss most of these features
in more detail in the next section.
Features of
Python Simple
Easy to Learn
As you will see, Python is extremely easy to get started with. Python has an
extraordinarily simple syntax, as already mentioned.
22
High-level Language
When you write programs in Python, you never need to bother about the
low-level details such as managing the memory used by your program, etc.
Portable
Due to its open-source nature, Python has been ported to (i.e. changed to
make it work on) many platforms. All your Python programs can work on any of
these platforms without requiring any changes at all if you are careful enough to
avoid any system-dependent features.
z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation,
Sharp Zaurus, Windows CE and PocketPC!
You can even use a platform like Kivyto create games for your computer and for
iPhone, iPad, and Android.
Interpreted
Python, on the other hand, does not need compilation to binary. You just run
the program directly from the source code. Internally, Python converts the source
23
code into an intermediate form called byte codes and then translates this into the
native language of your computer and then runs it. All this, actually, makes using
Python much easier since you don't have to worry about compiling the program,
making sure that the proper libraries are linked and loaded, etc. This also makes
your Python programs much more portable, since you can just copy your Python
program onto another computer and it just works!
Object Oriented
Extensible
If you need a critical piece of code to run very fast or want to have some
piece of algorithm not to be open, you can code that part of your program in C or
C++ and then use it from your Python program.
Embeddable
You can embed Python within your C/C++ programs to give scripting
capabilities for your program's users.
Extensive Libraries
The Python Standard Library is huge indeed. It can help you do various
things involving regular expressions, documentation generation, unit testing,
24
threading, databases, web browsers, CGI, FTP, email, XML, XML-RPC, HTML,
WAV files, cryptography, GUI (graphical user interfaces), and other system-
dependent stuff. Remember, all this is always available wherever Python is
installed. This is called the Batteries Included philosophy of Python.
Besides the standard library, there are various other high-quality libraries which
you can find at the Python Package Index.
The feasibility study is carried out to test whether the proposed system is
worth being implemented. The proposed system will be selected if it is best enough
in meeting the performance requirements.
• Economic Feasibility
• Technical Feasibility
• Behavioural Feasibility
Economic Feasibility
Technical Feasibility
25
This study centre around the system’s department hardware, software and to
what extend it can support the proposed system department is having the required
hardware and software there is no question of increasing the cost of implementing
the proposed system. The criteria, the proposed system is technically feasible
and the proposed system can be developed with the existing facility.
Behavioural Feasibility
26
CHAPTER 6
TESTING OF PRODUCTS
The most important phase in Software development life cycle is System testing.
The number and nature of errorsin a newly designed system depends on the system
specification and the time frame given for the design.
Types of Testing
27
6.5. White box Testing
Codes are more reusable. In order to make unit testing possible, codes
need to be modular. This means that codes are easier to reuse.
The project is divided into various modules and unit testing has been
done.
Functional testing
Performance testing
28
Stress testing
Structured testing
Structural testing, also known as glass box testing or white box testing
is an approach where the tests are derived from the knowledge of the software's
structure or internal implementation.The other names of structural testing includes
clear box testing, open box testing, logic driven testing or path driven testing.
29
Path Coverage - This technique corresponds to testing all possible
paths which means that each statement and branch are covered.
and integrated software is tested. The purpose of this test is to evaluate the
system's compliance with the specified requirements. The process of testing an
integrated system to verify that it meets specified. System test falls under the black
box testing category of software testing. White box testing is the testing of the
internal workings or code of a software application. In contrast, black box or
system testing is the opposite. System test involves the external workings of the
software from the user's perspective.
That is a very basic description of what is involved in system testing. You need to
build detailed test cases and test suites that test each aspect of the application as
seen from the outside without looking at the actual source code.
30
Integration Testing is a level of software testing where individual
units are combined and tested as a group.
6.3.1. BOTTOM-UP:
6.3.2. TOP-DOWM:
31
the item being tested is not known to the tester. These tests can be functional or
non-functional, though usually functional.
Following are some techniques that can be used for designing black box
tests.
White Box Testing (also known as Clear Box Testing, Open Box
Testing, Glass Box Testing, Transparent Box Testing, Code-Based Testing or
Structural Testing) is a software testing method in which the internal
structure/design/ implementation of the item being tested is known to the tester.
The tester chooses inputs to exercise paths through the code and determines the
appropriate outputs. Programming know-how and the implementation knowledge
is essential. White box testing is testing beyond the user interface and into the
nitty-gritty of a system.
32
CHAPTER 7
CONCLUSION AND FUTURE ENHANCEMENT
7.1. Conclusion
With the help of this project we can help lot of farmers who is not really
experienced to understand the disease .In this project, the deep learning models
CAE and CAE are analyse the plant leaf disease images. The PLANT VILLAGE
data is taken as input data and applied into pre-processing method. In pre-
processing method the images are resized and converted into array. Then it
processed into feature selection method, in this method the dataset is split into
training dataset and testing dataset.Then the dataset is compressed using CAE
model after training it, then the compressed images given to the CNN model to
train and classify the images into 9 classes, if the plant had any disease then we
provide the solution for the disease the plant has .
In this project we are going to detect and give solution to a single plant ,in
future the project will be capable of detecting more number of plants.
And creating a mobile application for detecting the diseases.
Using Drones to scan the plants.
33
CHAPTER 8
SAMPLE COADINGS AND SAMPLE SCREEN SHOTS
import tensorflow as t
import matplotlib.pyplot as plt
from tensorflow.keras.layers
import
Input,Dense,Conv2D,MaxPooling2D,Reshape,UpSampling2D,LeakyReLU,Flatte
n,
BatchNormalization,Dropout
from tensorflow.keras.models import Model
import pathlib as ph
import PIL.Image
import numpy as np
np.random.seed(42)
t.random.set_seed(42)
bs=64
h=128
w=128
c=3
data_dir=ph.Path('D:/Final Project data/Data/Train')
#print(data_dir)
ts=list(data_dir.glob('Tomato_healthy/*'))
print(len(ts))
PIL.Image.open(str(ts[0]))
import os
34
os.environ["CUDA_VISIBLE_DEVICES"]="-1"
#%%
import numpy as
np import glob
Tomato_Bacterial_spot=glob.glob('D:/Final Project
data/Data/train/Tomato_Bacterial_spot*.*')
Tomato_Early_blight=glob.glob('D:/Final
Project data/Data/train/Tomato_Early_blight*.*')
Tomato_Late_blight=glob.glob('D:/Final
Project data/Data/train/Tomato_Late_blight/*.*')
Tomato_Leaf_Mold=glob.glob('D:/Final Project
data/Data/train/Tomato_Leaf_Mold/*.*')
Tomato_Septoria_leaf_spot=glob.glob('D:/FinalProjectdata/Data/train/Tomato_Se
ptoria_leaf_spot/*.*')
Tomato_Spider_mites_Two_spotted_spider_mite=glob.glob('D:/FinalProjectdata/
Data/train/Tomato_Spider_mites_Two_spotted_spider_mite/*.*')
Tomato Target_Spot=glob.glob('D:/Final Project
data/Data/train/Tomato Target_Spot/*.*')
Tomato Tomato_YellowLeaf Curl_Virus=glob.glob('D:/FinalProjectdata/Data/
train/Tomato Tomato_YellowLeaf Curl_Virus/*.*')
Tomato Tomato_mosaic_virus=glob.glob('D:/FinalProjectdata/Data/train/Tomat
o Tomato_mosaic_virus/*.*')
Tomato_healthy=glob.glob('D:/Final Project data/Data/train/Tomato_healthy/*.*')
data=[]
labels=[]
for i in Tomato_Bacterial_spot:
35
image=t.keras.preprocessing.image.load_img(i, color_mode='rgb',
target_size= (h,w))
image=np.array(image)
data.append(image)
labels.append(0)
for i in Tomato_Early_blight:
image=t.keras.preprocessing.image.load_img(i, color_mode='rgb',
target_size= (h,w))
image=np.array(image)
data.append(image)
labels.append(1)
for i in Tomato_Late_blight:
image=t.keras.preprocessing.image.load_img(i, color_mode='rgb',
target_size= (h,w))
image=np.array(image)
data.append(image)
labels.append(2)
for i in Tomato_Leaf_Mold:
image=t.keras.preprocessing.image.load_img(i, color_mode='rgb',
target_size= (h,w))
image=np.array(image)
data.append(image)
labels.append(3)
36
for i in Tomato_Septoria_leaf_spot:
image=t.keras.preprocessing.image.load_img(i, color_mode='rgb',
target_size= (h,w))
image=np.array(image)
data.append(image)
labels.append(4)
for i in Tomato_Spider_mites_Two_spotted_spider_mite:
image=t.keras.preprocessing.image.load_img(i, color_mode='rgb',
target_size= (h,w))
image=np.array(image)
data.append(image)
labels.append(5)
37
for i in Tomato Tomato_mosaic_virus:
image=t.keras.preprocessing.image.load_img(i, color_mode='rgb',
target_size= (h,w))
image=np.array(image)
data.append(image)
labels.append(8)
for i in Tomato_healthy:
image=t.keras.preprocessing.image.load_img(i, color_mode='rgb',
target_size= (h,w))
image=np.array(image)
data.append(image)
labels.append(9)
data = np.array(data)
labels = np.array(labels)
ytrain=ytrain.reshape(-1,)
ytrain[:5]
ytest=ytest.reshape(-1,)
ytest[:5]
38
class_names=['Tomato_Bacterial_spot','Tomato_Early_blight','Tomato_Late_blig
ht',
'Tomato_Leaf_Mold','Tomato_Septoria_leaf_spot','Tomato_Spider_mites_Two_s
potted_spider_mite','Tomato Target_Spot','Tomato Tomato_YellowLeaf Cur
l_Virus','Tomato Tomato_mosaic_virus', 'Tomato_healthy']
print(class_names)
plt.figure(figsize=(15,15))
for i in range(10):
ax=plt.subplot(5,2,i+1)
plt.imshow(X_train[i], cmap=plt.get_cmap('gray'))
plt.title(class_names[ytrain[i]])
plt.axis("off")
#%%
inputs=Input(shape=(h,w,c))
#Encoder
encoder=Conv2D(128,(3,3),activation='relu',padding='same')(inputs)
encoder=MaxPooling2D(2,2)(encoder)
##
encoder=Conv2D(128,(3,3),activation='relu',padding='same')(inputs)
encoder=MaxPooling2D(2,2)(encoder)
##
encoder=enocder=Conv2D(64,(3,3),activation='relu',padding='same')(encoder)
encoder=MaxPooling2D(2,2)(encoder)
39
##
encoder=enocder=Conv2D(64,(3,3),activation='relu',padding='same')(encoder)
encoder=MaxPooling2D(2,2)(encoder)
##
encoder=Conv2D(32,(3,3),activation='relu',padding='same')(encoder)
encoder=MaxPooling2D(2,2)(encoder)
##
encoder=Conv2D(32,(3,3),activation='relu',padding='same')(encoder)
encoder=MaxPooling2D(2,2)(encoder)
##
##encoder=Conv2D(16,(3,3),activation='relu',padding='same')(encoder)
##encoder=MaxPooling2D((2,2))(encoder)
##
encoder=Conv2D(16,(3,3),activation='relu',padding='same')(encoder)
encoder=MaxPooling2D((2,2))(encoder)
print(encoder.shape)
##bottle neck
encoder=Flatten()(encoder)
u=encoder.shape[1]
print(u)
encoder=Dense(10,activation='relu')(encoder)
encoder=Dropout(0.2)(encoder)
encoder_m=Model(inputs,encoder)
encoder_m.summary()
#Decoder decoder=Dense(u,activation='relu')
(encoder)
40
decoder=Dropout(0.2)(decoder)
decoder=Reshape((2,2,16))(decoder)
##
decoder=UpSampling2D((2,2))(decoder) decoder=Conv2D(16,
(3,3),activation='relu',padding='same')(decoder) ##
decoder=UpSampling2D((2,2))(decoder) decoder=Conv2D(32,
(3,3),activation='relu',padding='same')(decoder) ##
decoder=UpSampling2D((2,2))(decoder) decoder=Conv2D(32,
(3,3),activation='relu',padding='same')(decoder) ##
decoder=UpSampling2D((2,2))(decoder) decoder=Conv2D(64,
(3,3),activation='relu',padding='same')(decoder) ##
##decoder=UpSampling2D((2,2))(decoder) ##decoder=Conv2D(64,
(3,3),activation='relu',padding='same')(decoder) ##
decoder=UpSampling2D((2,2))(decoder) decoder=Conv2D(128,
(3,3),activation='relu',padding='same')(decoder) ##
decoder=UpSampling2D((2,2))(decoder) decoder=Conv2D(3,
(3,3),activation='relu',padding='same')(decoder)
decoder_m=Model(inputs,decoder)
decoder_m.summary() #%
%
from tensorflow.keras.optimizers import Adam
41
decoder_m.compile(optimizer='adam',loss='mse',metrics=['accuracy'])
decoder_m.fit(X_train,X_train,batch_size=16,epochs=3,validation_data=(X_test,
X_test))
#%%
decoder_m.save('D:/Final Project data/Model/cae.h5') #%
%
Xtrain=decoder_m.predict(X_train,verbose=1) #%
%
Xtest=decoder_m.predict(X_test,verbose=1)
#%%
inputs=Input(shape=(h,w,c))
#Encoder
encoder=Conv2D(128,(3,3),activation='relu',padding='same')(inputs)
encoder=MaxPooling2D(2,2)(encoder)
##
encoder=Conv2D(128,(3,3),activation='relu',padding='same')(inputs)
encoder=MaxPooling2D(2,2)(encoder)
##
encoder=enocder=Conv2D(64,(3,3),activation='relu',padding='same')(encoder)
encoder=MaxPooling2D(2,2)(encoder)
##
encoder=enocder=Conv2D(64,(3,3),activation='relu',padding='same')(encoder)
encoder=MaxPooling2D(2,2)(encoder)
##
encoder=Conv2D(32,(3,3),activation='relu',padding='same')(encoder)
encoder=MaxPooling2D(2,2)(encoder)
##
42
encoder=Conv2D(32,(3,3),activation='relu',padding='same')(encoder)
encoder=MaxPooling2D(2,2)(encoder)
##
encoder=Conv2D(16,(3,3),activation='relu',padding='same')(encoder)
encoder=MaxPooling2D((2,2))(encoder)
##
encoder=Conv2D(16,(3,3),activation='relu',padding='same')(encoder)
encoder=MaxPooling2D((2,2))(encoder)
print(encoder.shape)
##bottle neck
encoder=Flatten()(encoder)
u=encoder.shape[1]
print(u)
encoder=Dense(10,activation='relu')(encoder)
encoder=Dropout(0.2)(encoder)
cnn=Dense(1000,activation='relu')(encoder)
cnn=Dropout(0.3)(cnn)
cnn=Dense(700,activation='relu')(cnn)
cnn=Dropout(0.5)(cnn)
cnn=Dense(350,activation='relu')(cnn)
cnn=Dense(10,activation='softmax')(cnn)
cnn_m=Model(inputs,cnn)
cnn_m.summary()
cnn_m.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=
['accuracy'])
43
cnn_m.fit(Xtrain,ytrain,batch_size=32,epochs=5,validation_split=0.2)
#%%
cnn_m.evaluate(X_test,ytest,verbose=2) #%
%
cnn_m.save('D:/Final Project data/Model/cnn.h5')
#%%
plt.plot(cnn.history['accuracy'])
plt.plot(cnn.history['val_accuracy'])
plt.title('model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()
#%%
plt.plot(cnn.history['loss'])
plt.plot(cnn.history['val_loss'])
plt.title('model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()
#%%
y_pred=cnn_m.predict(X_test)
y_pred=np.argmax(y_pred,axis=1)
#%%
class_names=['Tomato_Bacterial_spot', 'Tomato_Early_blight',
'Tomato_Late_blight', 'Tomato_Leaf_Mold', 'Tomato_Septoria_leaf_spot',
44
'Tomato_Spider_mites_Two_spotted_spider_mite', 'Tomato Target_Spot',
'Tomato Tomato_YellowLeaf Curl_Virus', 'Tomato Tomato_mosaic_virus',
'Tomato_healthy']
if(y_pred==0)
{
print(class_names(y_pred))
print("The solution::")
print("Plowing down crop residue soon after harvest is complete will facilitate the
decomposition of crop residue and reduce spread to younger successive plantings.
In the field, fixed-copper based products are still the primary tool for managing
bacterial spot in tomato.")
}
elif(y_pred==1)
{
print(class_names(y_pred))
print("The solution::")
print("Take 1 aspirin and crush it into powder\nTake 4 cups of water and mix
them properly.\nSpray it on your plant every 2-3 weeks through the growing
season. That will help the plant to prevent tomato blight effectively.")
}
elif(y_pred==2)
{
print(class_names(y_pred))
print("The solution::")
print("one heaping tablespoon of baking soda\none teaspoon of vegetable oil;\na
45
small amount of mild soap.\nSpray the tomato plants with this solution, and
reapply it regularly to maintain its efficiency,")
}
elif(y_pred==3)
{
print(class_names(y_pred))
print("The solution::")
print("An apple-cider and vinegar mix is believed to treat the mold effectively.
Corn and garlic spray can also be used to prevent fungi outbreaks before they even
occur. ")
}
elif(y_pred==4)
{
print(class_names(y_pred))
print("The solution::")
print("Use raised beds and rotate which bed has tomatoes from year to year\
nConsider mulching the garden to prevent watersplash from soil to the lower
leaves\nIf symptoms of Septoria leaf spot appear on the lower leaves, removing
affected leaves may reduce disease. But, avoid removing too many leaves.\nFor
gardens with a history of Septoria leaf spot, fungicides with active ingredients
such as chlorothalonil, copper, or mancozeb will help reduce disease, but they
must be applied before disease ")
}
elif(y_pred==5)
{
print(class_names(y_pred))
print("The solution::")
46
print("The postharvest interval on tomatoes is seven days. • Bifenazate (Acramite,
Chemtura, 0.75 to 1 pound per acre): This is a contact poison against two-spotted
spider mites with less toxicity to predaceous mites and beneficial arthropods.
Acramite is a good knockdown product and also kills the eggs (ovicidal action).")
}
elif(y_pred==6)
{
print(class_names(y_pred))
print("The solution::")
print("Remove old plant debris at the end of the growing season; otherwise, the
spores will travel from debris to newly planted\nRotate crops and don’t plant
tomatoes in areas where other disease-prone plants have been located in the past
year\nPay careful attention to air circulation, as target spot of tomato thrives in
humid conditions. Grow the plants in full\nWater tomato plants in the morning so
the leaves have time to dry")
}
elif(y_pred==7)
{
print(class_names(y_pred))
print("The solution::")
print("Unfortunately, there is no cure for TYLCV(Tomato Yellow leaf Curl
Virus), so the only answer is removing infected plants to prevent the disease from
spreading. Inspect your plants to find the symptoms of TYLCV, and remove any
that show symptoms.")
}
elif(y_pred==8)
47
{
print(class_names(y_pred))
print("The solution::")
print("The unfortunate reality when it comes to Mosaic Viruses is that there isn’t
a cure. If you notice that your tomato, or houseplant has this infection, the best
course of action is to safely remove and destroy them. For those looking to plant
tomatoes, choose a location that does not have root debris as this type of virus
thrives in root systems")
}
elif(y_pred==9)
{
print(class_names(y_pred))
}
48
SCREEN SHOTS
49
50
51
52
53
CHAPTER 9
REFERENCE
54
using deep learning. Int. J. Recent Technol. Eng. 9 (1), 909–914.
⚫ Chen, Junde, Chen, Jinxiu, Zhang, D., Sun, Y., Nanehkaran, Y.A., 2020.
Using deep transfer learning for image-based plant disease identification.
Comput. Electron. Agric. 173, 105393.
55