Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 31

PROJECT REPORT GUIDELINES

Abstract
Acknowledgement
Table of Contents
Table of Figures
CHAPTER 1: INTRODUCTION
1.1 Overview
1.2 Objectives
1.3 Purpose, Scope, and Applicability
1.3.1 Purpose
1.3.2 Scope
1.3.3 Applicability
1.4 Organization of Report
CHAPTER 2: LITERATURE SURVEY
2.1. Introduction
2.2. Summary of papers
2.3. Drawbacks of Existing System
2.4. Problem Statement
2.5. Proposed Solution
CHAPTER 3: REQUIREMENT
ENGINEERING
3.1Software and Hardware Tools Used
3.2Conceptual/ Analysis Modeling
3.2.1 Use case diagram
3.2.2 Sequence diagram
3.2.3 Activity diagram
3.2.4 State chart Diagram
3.3 Software Requirements Specification
CHAPTER 4: PROJECT PLANNING
4.1Project Planning and Scheduling

CHAPTER 5: SYSTEM DESIGN


5.1 System Architecture
5.2 Component Design / Module Decomposition
5.3 Interface Design
5.4 Data Structure Design
5.5 Algorithm Design
CHAPTER 6: APPLICATIONS & CONCLUSION
6.1 Applications
6.2 Conclusion

REFERENCES
Abstract

The proposed system helps in identification of plant disease and provides remedies that can be used as a defense mechanism against the disease. The database

obtained from the Internet is properly segregated and the different plant species are identified and are renamed to form a proper database then obtain test-database which

consists of various plant diseases that are used for checking the accuracy and confidence level of the project .Then using training data we will train our classifier and then

output will be predicted with optimum accuracy . We use Convolution Neural Network(CNN) which comprises of different layers which are used for prediction. A

prototype drone model is also designed which can be used for live coverage of large agricultural fields to which a high resolution camera is attached and will capture

images of the plants which will act as input for the software, based of which the software will tell us whether the plant is healthy or not. With our code and training model

we have achieved an accuracy level of 78% .Our software gives us the name of the plant species with its confidence level and also the remedy that can be taken as a cure.

Chapter 1: Introduction

Ayurveda is the ancient Indian system healing using medicinal plants available naturally in the Indian subcontinent, also called as the mother of healing arts.

History says, Ayurveda originated more than 5,000 years ago and was developed by ancient Indian sages like, Charka, Sushruta and Vaghbhata [25].AcharyaCharaka has

said that all herbs on the earth contains medicinal values, curing the diseases and also teaches us how to balance of our body, sense of organs, mind and soul. According to

World Health Organization (WHO), 65% to 80% of world population currently uses medicinal plants as remedies for various diseases [12]. Because of environmental

factors and lack of awareness about medicinal plants in human beings, plants are becoming extinct and rare. Botanist identifies the medicinal plants based on biological
characteristics. This is lengthy process and consumes more time to identify plants species because one plant may have a similar kind of morphological features with another

plant. Incorrect identification will create a bad impression about Ayurvedic medicines and produce unexpected side effects in human beings. It is difficult for a person to

remember names of every medicinal plant hence it is very much essential to build an automatic identification and classification system for greater benefit. The purpose of

automatic identification and classification of medicinal plants is to educate and provide correct knowledge to common people and farmers, which will help to increase the

cultivation of medicinal plants. This system also provides medicinal information details and species database to the suppliers, agents, pharmacy students, pharmaceutical

companies, research students, Ayurveda practitioners, herbal plant researchers, botanists and to the cosmetic industry. Plants are identified based on leaves, flowers, bark,

seed, fruits, roots, stem and other parameters like height, region of its growth and environmental factors. For identification of plants many authors consider only leaves of

the plants, because leaves are of two- dimensional nature and are available at all the time [26]. But less research is done in identification of medicinal plants using flower

and fruits/seeds because they are three-dimensional in nature and available only in specific seasons. This paper will give brief review about medicinal plants identification

and classification using different technologies used in preprocessing, feature extraction and classification phases. Following section will explain the related work of

medicinal plants identification and classification using image reprocessing techniques, machine learning techniques and computer vision.

Overview:

Flora recognition is an intelligent system which has an ability to identify the plant species from the photographs and provide the medicinal information along

with the diseases that can be cured by the plants within no matter of seconds.

Objectives:

The project aims at designing an automated system for flora Identification that helps in providing medicinal knowledge to common people.

 The objective of this project is to reduce manual work and increase the efficiency by the automatic identification of medicinal plants using image processing techniques.

 This helps in identification of which part of the plant has medicinal value for which disease this medicine is going to be used.

Purpose:

MedLeaf - a mobile application for medicinal plant identification based on leaf image.

The application consists of two main functionalities, i.e. medicinal plant identification and

document searching of medicinal plant. MedLeaf is computer-aided medicinal plant

recognition system that use technology of image processing, computer vision and intelligent

information processing techniques. They used Local Binary Pattern to extract leaf texture and

Probabilistic Neural Network to classify the image. Now, we have been developed MedLeaf
using combinations of leaf features such as shape, color and texture. MedLeaf will help

botanical garden or natural reserve park management to discover new plant species, plant

taxonomy, exotic plant detection, edible/poisonous plant identification and so on. Also, it will

help individual, groups and communities to find unused and undeveloped their skill to

optimize the potential of medicinal plants. As the results, it will increase of their resources,

capitals, and economic wealth.

Scope:

The existing system takes only leaf image as an input.

It does not include ornamental plants.

Existing projects are not a real time work.

It identifies the Medicinal values alone.

Applicability:

Proposed system takes plant as an input and classifies it based on leaf and flowers.

It includes all types of plants.

Proposed system is a real time work.

This system includes the diseases that can be cured by the respective plants along with

the medicinal values.

Organisation of Report:

Chapter 1 : This chapter givesthe introduction about Medicinal Plants,aim,objective, problem statement and problem solution for the project.

Chapter 2 : This chapter gives the overview of the existing projects.

Chapter 3 : This chapter tells the methods used to implement the project.

Chapter 4 : This chapter tells about how the project can be implemented.

Chapter 5 : This chapter gives the conclusion and feature scope.

Chapter 2:
LITERATURE SURVEY

S Title Autors Techni Advantages Disadva

l.no ques ntages

1 MedLeaf:M DestaSandyaPrasvita,YeniHerdiyeni. Identif 1.MedLeaf It works

. obile Application For ication is based on will help botanical garden only on android

Medicinal Plant leaf. or natural reserve park mobile and less

Identification Based on management to discover accuracy.

Leaf Image new plant species, plant

taxonomy, exotic plant

detection,

edible/poisonous plant

identification and so on.

2.it will help

individual, groups and

communities to find

unused and undeveloped

their skill to optimize the

potential of medicinal

plants

2 Automatic Adams Begue,VenithaKowlessur Identif Highest Doesn’t

. Recognition of ication of leaf under accuracy of 90.1% was include ornamental

Medicinal Plants using laboratory setup. obtained from the random plants and less

Machine Learning forest classifier. number of datasets.

techniques

3 Recognitio AmalaSabu,SreekumarK,Rahul R Nair Identif It seem to be It takes

. n of Ayurvedic ication of medicinal sufficient for building apps only leaf as an input.

medicinal Plants from plants based on leaf. for real life use.

Leaves:A computer

Vision Approach

4 Fully Thi-Lan Le, Duc-Tuan Tran, Van-Nam Among This Even the

. automatic leaf-based Hoang different parts of the application provides both improved KDES

plant identification, plant, leaf is widely search modalities: text- obtains the best result

application for used for plant based and image-based. this descriptor is

Vietnamese medicinal identification because computed overall

plant search it is usually the most image.


abundant type of data

available in botanical

reference collections

and the easiest to

obtain in the field

studies.

CHAPTER 3:
REQUIREMENT ENGINEERING

HARDWARE:
System : Pentium IV 2.4 GHz, intel i3/i4/i5.
Hard Disk : 500GB min.
Ram : 4 GB min

SOFTWARE:

Operating system : Windows/Linux.


Packages : Open CV.
Coding Language : Python.
IDE : Jupyter Notebook

Functional Requirements:

 The Software must be able to detect the leaf.

 It should be able to extract texture features of the leaves.

 It should display Leaf name

 It should display Medicinal characteristic

Non Functional Requirements

 Detection of Disease must be accurate

 The detection process should be done effectively and efficiently

 The software should never fail in middle of the operation

Conceptual/ Analysis Modeling


During the detailed phase, the view of the application developed during the high level design is broken down into modules and programs. Logic design is done

for every program and then documented as program specifications. For every program, a unit test plan is created.

Data Flow Diagram:

 The DFD is also called as bubble chart. It is a simple graphical formalism that can be used to represent a system in terms of input data to the system, various processing

carried out on this data, and the output data is generated by this system.

 The data flow diagram (DFD) is one of the most important modeling tools. It is used to model the system components. These components are the system process, the data

used by the process, an external entity that interacts with the system and the information flows in the system.

 DFD shows how the information moves through the system and how it is modified by a series of transformations. It is a graphical technique that depicts information flow

and the transformations that are applied as data moves from input to output.

 DFD is also known as bubble chart. A DFD may be used to represent a system at any level of abstraction. DFD may be partitioned into levels that represent increasing

information flow and functional detail.

DFD DIAGRAM:
Sequence Diagram:

A sequence diagram in Unified Modeling Language (UML) is a kind of interaction diagram that shows how processes operate with one another and in what

order. It is a construct of a Message Sequence Chart. Sequence diagrams are sometimes called event diagrams, event scenarios, and timing diagrams.

Use case Diagram:


A use case diagram in the Unified Modeling Language (UML) is a type of
behavioral diagram defined by and created from a Use-case analysis. Its purpose is to
present a graphical overview of the functionality provided by a system in terms of
actors, their goals (represented as use cases), and any dependencies between those
use cases. The main purpose of a use case diagram is to show what system functions
are performed for which actor. Roles of the actors in the system can be depicted.

Activity Diagram:

Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. In the

Unified Modeling Language, activity diagrams can be used to describe the business and operational step-by-step workflows of components in a system. An activity

diagram shows the overall flow of control.


Class Diagram:

The class diagram is the main building block of object-oriented modeling. It is used for general conceptual modeling of the structure of the application, and for

detailed modeling translating the models into programming code. Class diagrams can also be used for data modeling.
Chapter 4:
PROJECT PLANNING

4.1 Project Planning and Scheduling:


Chapter 5:
SYSTEM DESIGN

System Architecture
Algorithm Design

Convolutional Neural Network (CNN) — Deep Learning


In neural networks, Convolutional neural network (ConvNets or CNNs) is one of the main categories to do images recognition, images classifications. Objects

detections, recognition faces etc., are some of the areas where CNNs are widely used.

CNN image classifications takes an input image, process it and classify it under certain categories (Eg., Dog, Cat, Tiger, Lion). Computers sees an input image

as array of pixels and it depends on the image resolution. Based on the image resolution, it will see h x w x d( h = Height, w = Width, d = Dimension ). Eg., An image of 6

x 6 x 3 array of matrix of RGB (3 refers to RGB values) and an image of 4 x 4 x 1 array of matrix of grayscale image.
Figure 1 : Array of RGB Matrix

Technically, deep learning CNN models to train and test, each input image will pass it through a series of convolution layers with filters (Kernals), Pooling,

fully connected layers (FC) and apply Softmax function to classify an object with probabilistic values between 0 and 1. The below figure is acomplete flow of CNN to

process an input image and classifies the objects based on values.


Figure 2 : Neural network with many convolutional layers

Convolution Layer

Convolution is the first layer to extract features from an input image. Convolution preserves the relationship between pixels by learning image features using

small squares of input data. It is a mathematical operation that takes two inputs such as image matrix and a filter or kernel.

Figure 3: Image matrix multiplies kernel or filter matrix

Consider a 5 x 5 whose image pixel values are 0, 1 and filter matrix 3 x 3 as shown in below
Figure 4: Image matrix multiplies kernel or filter matrix

Then the convolution of 5 x 5 image matrix multiplies with 3 x 3 filter matrix which is called “Feature Map” as output shown in below

Figure 5: 3 x 3 Output matrix

Convolution of an image with different filters can perform operations such as edge detection, blur and sharpen by applying filters. The below example shows

various convolution image after applying different types of filters (Kernels).


Figure 7 : Some common filters

Strides

Stride is the number of pixels shifts over the input matrix. When the stride is 1 then we move the filters to 1 pixel at a time. When the stride is 2 then we move

the filters to 2 pixels at a time and so on. The below figure shows convolution would work with a stride of 2.
Figure 6 : Stride of 2 pixels

Padding

Sometimes filter does not fit perfectly fit the input image. We have two options:

Pad the picture with zeros (zero-padding) so that it fits

Drop the part of the image where the filter did not fit. This is called valid padding which keeps only valid part of the image.

Non Linearity (ReLU)

ReLU stands for Rectified Linear Unit for a non-linear operation. The output is ƒ(x) = max(0,x).

Why ReLU is important :ReLU’s purpose is to introduce non-linearity in our ConvNet. Since, the real world data would want our ConvNet to learn would be

non-negative linear values.


Figure 7 :ReLU operation

There are other non linear functions such as tanh or sigmoid that can also be used instead of ReLU. Most of the data scientists use ReLU since performance

wise ReLU is better than the other two.

Pooling Layer

Pooling layers section would reduce the number of parameters when the images are too large. Spatial pooling also called subsampling or downsampling which

reduces the dimensionality of each map but retains important information. Spatial pooling can be of different types:

Max Pooling

Average Pooling

Sum Pooling

Max pooling takes the largest element from the rectified feature map. Taking the largest element could also take the average pooling. Sum of all elements in

the feature map call as sum pooling.


Figure 8 : Max Pooling

Fully Connected Layer

The layer we call as FC layer, we flattened our matrix into vector and feed it into a fully connected layer like a neural network.
Figure 9 : After pooling layer, flattened as FC layer

In the above diagram, the feature map matrix will be converted as vector (x1, x2, x3, …). With the fully connected layers, we combined these features together

to create a model. Finally, we have an activation function such as softmax or sigmoid to classify the outputs as cat, dog, car, truck etc.,
Figure 10 : Complete CNN architecture

Provide input image into convolution layer

Choose parameters, apply filters with strides, padding if requires. Perform convolution on the image and apply ReLU activation to the matrix.

Perform pooling to reduce dimensionality size

Add as many convolutional layers until satisfied

Flatten the output and feed into a fully connected layer (FC Layer)

Output the class using an activation function (Logistic Regression with cost functions) and classifies images.

Chapter 9

Testing
Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not.

Testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements.

Testing Principle
Before applying methods to design effective test cases, a software engineer must understand the basic principle that guides software testing. All the

tests should be traceable to customer requirements.

Testing Methods
There are different methods that can be used for software testing. They are,

1. Black-Box Testing
The technique of testing without having any knowledge of the interior workings of the application is called black-box testing. The tester is

oblivious to the system architecture and does not have access to the source code. Typically, while performing a black-box test, a tester will

interact with the system's user interface by providing inputs and examining outputs without knowing how and where the inputs are worked upon.

2. White-Box Testing
White-box testing is the detailed investigation of internal logic and structure of the code. White-box testing is also called glass testing or open-

box testing. In order to perform white-box testing on an application, a tester needs to know the internal workings of the code. The tester needs to

have a look inside the source code and find out which unit/chunk of the code is behaving inappropriately.

Levels of Testing
There are different levels during the process of testing. Levels of testing include different methodologies that can be used while conducting

software testing. The main levels of software testing are:

 Functional Testing:
This is a type of black-box testing that is based on the specifications of the software that is to be tested. The application is tested by providing

input and then the results are examined that need to conform to the functionality it was intended for. Functional testing of software is conducted

on a complete, integrated system to evaluate the system's compliance with its specified requirements. There are five steps that are involved while

testing an application for functionality.

 The determination of the functionality that the intended application is meant to perform.
 The creation of test data based on the specifications of the application.
 The output based on the test data and the specifications of the application.
 The writing of test scenarios and the execution of test cases.
 The comparison of actual and expected results based on the executed test cases.

 Non-functional Testing
This section is based upon testing an application from its non-functional attributes. Non-functional testing involves testing software from the

requirements which are non-functional in nature but important such as performance, security, user interface, etc. Testing can be done in different
levels of SDLC. Few of them are

Unit Testing
Unit testing is a software development process in which the smallest testable parts of an application, called units, are individually and

independently scrutinized for proper operation. Unit testing is often automated but it can also be done manually. The goal of unit testing is to

isolate each part of the program and show that individual parts are correct in terms of requirements and functionality. Test cases and results are

shown in the Tables.

Unit Testing Benefits


 Unit testing increases confidence in changing/ maintaining code.

 Codes are more reusable.

 Development is faster.

 The cost of fixing a defect detected during unit testing is lesser in comparison to that of defects detected at higher levels.

 Debugging is easy.

 Codes are more reliable.

Unit testing:

Sl # Test Case : - UTC-1

Name of Test: - Uploading image

Items being tested: - Tested for uploading different images

Sample Input: - Upload Sample image

Image should upload properly


Expected output: -

upload successful
Actual output: -

Remarks: - Pass.

Sl # Test Case : - UTC-2

Name of Test: - Detecting Leaf

Items being tested: - Test for different leaf images


Sample Input: - Tested for different images data sets

Detected Leaf name should be displayed


Expected output: -

Detected Leaf name should be displayed


Actual output: -

Remarks: - Leaf name displayed

Sl # Test Case : - UTC-3

Name of Test: - Detecting characteristics of the leaf

Items being tested: - Test for characteristics of different leaf images

Sample Input: - Tested for different images data sets

Medicinal characteristics of leaf should be displayed


Expected output: -

Medicinal characteristics of leaf is displayed


Actual output: -

Remarks: - Medicinal characteristics of leaf name displayed

Integration Testing:

Integration testing is a level of software testing where individual units are combined and tested as a group. The purpose of this level of testing is

to expose faults in the interaction between integrated units. Test drivers and test stubs are used to assist in Integration Testing. Integration testing

is defined as the testing of combined parts of an application to determine if they function correctly. It occurs after unit testing and before

validation testing. Integration testing can be done in two ways: Bottom-up integration testing and Top-down integration testing.
1. Bottom-up Integration
This testing begins with unit testing, followed by tests of progressively higher-level combinations of units called modules or builds.

2. Top-down Integration

In this testing, the highest-level modules are tested first and progressively, lower-level modules are tested thereafter.

In a comprehensive software development environment, bottom-up testing is usually done first, followed by top-down testing. The process

concludes with multiple tests of the complete application, preferably in scenarios designed to mimic actual situations. Table 8.3.2 shows the test

cases for integration testing and their results.

Sl # Test Case : - ITC-1

Name of Test: - Working of leaf Detection and Displaying Medicinal characteristics

Item being tested: - Selecting different images and verifying names of Leaf and its characteristics

Sample Input: - Select image

Should show exact Leaf name and its characteristics


Expected output: -

Leaf name and its characteristics should be displayed


Actual output: -

Remarks: - Pass.

System testing:

System testing of software or hardware is testing conducted on a complete, integrated system to evaluate the system's compliance with its

specified requirements. System testing falls within the scope of black-box testing, and as such, should require no knowledge of the inner design

of the code or logic. System testing is important because of the following reasons:

 System testing is the first step in the Software Development Life Cycle, where the application is tested as a whole.
 The application is tested thoroughly to verify that it meets the functional and technical specifications.
 The application is tested in an environment that is very close to the production environment where the application will be deployed.

 System testing enables us to test, verify, and validate both the business requirements as well as the application architecture.

System Testing is shown in below tables

Sl # Test Case : - STC-1

Name of Test: - System testing in various versions of OS

Item being tested: - OS compatibility.

Sample Input: - Execute the program in windows XP/ Windows-7/8/10

Expected output: - Performance is better in windows-7/10

Actual output: - Same as expected output, performance is better in windows-7/10

Remarks: - Pass

CHAPTER 6:
APPLICATIONS & CONCLUSION
Our work is to enhance the research in identification and classification of medicinal plants as herbs, shrubs and trees using flowers and fruits/seeds
features including leaf.
Automatic identification and classification of medicinal plants will provide medicinal knowledge to common people and farmers which help in
increasing production of such essential plants.
This automatic classification system also helps botanists, consumers, forestry services, taxonomists, pharmaceutical companies and Ayurveda
practioners to identify and classify the medicinal plants without any human assistance.

REFERENCES

[1] Manojkumar P., Surya C. M., and Varun P. Gopi, “Identification of Ayurvedic Medicinal Plants by Image Processing of Leaf Samples”, 2017 Third

International Conference on Research in Computational Intelligence and Communication Networks (ICRCICN), pp 978- 1- 5386-1931-5.

[2] Mr. K.Nithiyanandhan and Prof.T.Bhaskara Reddy, “Analysis of the Medicinal Leaves by using Image Processing Tech niques and ANN”, Vol 8, No. 5,

ISSN No. 0976-5697, MayJune 2017.


[3] Adams Begue, VenithaKowlessur, FawziMahomoodally, Upasana Singh and Sameerchand, “Automatic Recognition of Medicinal Plants using Machine

Learning Techniques”, International Journal of Advanced Computer Science and Applications, Vol. 8, No. 4, 2017.

[4] H. X. Kan, L. Jin, and F. L. Zhou,” Classification of Medicinal Plant Leaf Image Based on Multi-Feature Extraction”, Pattern Recognition and Image

Analysis, Vol. 27, No. 3, 2017, pp. 581–587, 1054-6618. © Pleiades Publishing, Ltd.

[5] Riddhi H. Shaparia, Dr. Narendra M. Patel and Prof. Zankhana H. Shah,” Flower Classification using Texture and Color Features”, International

Conference on Research and Innovations in Science, Engineering &Technology, Volume 2, 2017, Pages 113–118.

[6] Marco Seeland, Michael Rzanny, NedalAlaqraa, Jana Wa ¨ldchen, Patrick Ma ¨der, “Plant species classification using flower images—A comparative

study of local feature representations”, PLOS ONE | DOI:10.1371/journal.pone.0170629 February 24, 2017.

[7] PradeepkumarChoudhary, Rahul Khandekar, AakashBorkar, and PunitChotaliya, “Image processing algorithm for fruit identification”, International

Research Journal of Engineering and Technology (IRJET), Vol 4 Issue 3, e-ISSN: 2395 -0056, p-ISSN: 2395- 0072, Mar -2017.

[8] D Venkataraman and Mangayarkarasi N, “Computer Vision Based Feature Extraction of Leaves for Identification of Medicinal Values of Plants”, IEEE

International Conference on Computational Intelligence and Computing Research, 978-1-5090-0612-0/16/$31.00 ©2016 IEEE

You might also like