CNN Based Medicinal Plant Classification

Job ID: 39413932

Budget: ₹1,500 – ₹12,500 INR

Project Requirement Document
Title: Medicinal Plant Classification Using CNN Based on Plant Parts

Project Objective
Develop a backend system that uses a Convolutional Neural Network (CNN) model to classify medicinal plants based on their parts (leaf, root, stem, flower) from images. The system must predict the plant name and the specific plant part from the input image and retrieve the corresponding medicinal use from a structured database.

This project focuses entirely on the machine learning model, data preparation, and documentation. No user interface or cloud deployment is required.

Scope of Work
1. Dataset Collection and Labeling
The freelancer is required to collect and label the dataset based on reference image links provided by the client.

The dataset should follow a structured folder hierarchy as shown below:
link of the dataset to be used: https://www.quantitative-plant.org/dataset

Copy
Edit
dataset/
├── Neem/
│ ├── leaf/
│ ├── root/
│ └── stem/
├── Tulsi/
│ ├── leaf/
│ └── root/
Each image must be clearly labeled with:

Plant Name (e.g., Neem, Tulsi)

Plant Part (e.g., leaf, root, stem)

Labels should be combined for model classification (e.g., Neem_leaf, Neem_root).

A label mapping file (CSV or JSON) should be created to link images with class names.

The dataset must not be small; it should contain a sufficient number of images per class to ensure the model performs well on unseen or random plant parts in the future.

2. CNN Model Development
Build a CNN model using either TensorFlow/Keras or PyTorch to classify images based on combined labels such as Neem_leaf, Tulsi_root, etc.

Implement appropriate data preprocessing and augmentation techniques to improve model robustness.

Use a single-output classification approach.

The dataset should be split into:

70% training

20% validation

10% testing

Train the model and provide the final trained file in one of the following formats: .h5, .pt, or .tflite.

3. Medicinal Use Database
Create a structured database (either in JSON or SQLite) that contains the medicinal use of each plant part.

Example:

json
Copy
Edit
{
"Neem": {
"leaf": "Used for skin disorders and detoxification.",
"root": "Has antibacterial properties.",
"stem": "Used in dental hygiene."
},
"Tulsi": {
"leaf": "Treats fever, cough, and cold.",
"root": "Used for inflammation reduction."
}
}
The model should be able to return the medicinal use based on the predicted plant and part combination.

4. Project Deliverables
Model and Code
Labeled dataset organized in the correct folder structure

Trained CNN model file (.h5, .pt, or .tflite)

Complete and clean source code with all dependencies specified

JSON or SQLite medicinal use database

Instructions or scripts to run the project on a local machine

Documentation (Minimum 4 Pages in PDF or DOCX Format)
The documentation should include:

Model Architecture

Detailed explanation of the CNN layers and structure used

Purpose of each major layer or block

System Design

Workflow of the entire system from input to prediction

Dataset pipeline and class handling

Data Preprocessing

Techniques used for cleaning, augmenting, and normalizing images

Strategy for handling class imbalance if any

Model Classes Description

Clear list and explanation of all combined classes used for training (e.g., Neem_leaf, Tulsi_root)

Number of images per class

Execution Instructions

Steps to set up the local environment (Python version, libraries)

How to run the training and inference scripts locally

Sample commands and expected outputs

Performance Results

A table summarizing:

Training accuracy

Validation accuracy

Test accuracy

If available: precision, recall, F1-score

Mention specific areas where the model underperformed or showed errors

Include sample misclassified images if possible

Timeline
The complete project, including model, dataset, and documentation, must be delivered within 4 days from the date of assignment.

Notes
No frontend or deployment functionality is required.

The freelancer must collect and prepare the dataset using publicly available sources as suggested by the client.

Ensure the dataset has enough volume and variety to allow future scalability and robustness of the model.