license: apache-2.0
tags:
- crop-disease-detection
- computer-vision
- pytorch
- efficientnet
- agriculture
- plant-diseases
datasets:
- plant-village
- dhan-shomadhan
- custom
language: en
Crop Disease Detection Model (EfficientNet-B3)
Overview
This model detects and classifies crop diseases using computer vision and deep learning. Built on EfficientNet-B3 and trained on a curated dataset of 13,000+ images, the model can recognize 17 disease classes across five major crops:
- Corn (Common Rust, Gray Leaf Spot, Northern Leaf Blight, Healthy)
- Potato (Early Blight, Late Blight, Healthy)
- Rice (Brown Spot, Leaf Blast, Neck Blast, Healthy)
- Wheat (Yellow Rust, Brown Rust, Healthy)
- Sugarcane (Red Rot, Bacterial Blight, Healthy)
✅ Accuracy: 94.8%
✅ Precision: 95.4%
✅ Recall: 94.5%
The model contributes to SDG 2 – Zero Hunger, SDG 12 – Responsible Consumption, and SDG 13 – Climate Action by enabling early intervention and sustainable agriculture practices.
Model Details
- Architecture: EfficientNet-B3 (pretrained on ImageNet)
- Classifier Head: Replaced with
Linear(1536 → 17) - Framework: PyTorch
- Total Parameters: ~10.7M
- Training:
- 5-fold cross-validation
- Early stopping (best at epoch 29)
- Augmentation & normalization
How to Use
💡 This model requires preprocessing consistent with training (image resizing, normalization). For ready-to-use prediction.
Inference Example (PyTorch)
import torch
from torchvision import transforms
from PIL import Image
import requests
from huggingface_hub import hf_hub_download
# Download the model file from Hugging Face
model_path = hf_hub_download(repo_id="VisionaryQuant/5_Crop_Disease_Detection", filename="best_crop_disease_model.pt")
# Load the model (make sure your architecture matches)
model = torch.load(model_path, map_location=torch.device('cpu'))
model.eval()
# Preprocess input image
image = Image.open("your_crop_image.jpg").convert("RGB")
transform = transforms.Compose([
transforms.Resize((300, 300)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
])
input_tensor = transform(image).unsqueeze(0)
# Run inference
with torch.no_grad():
logits = model(input_tensor)
probs = torch.nn.functional.softmax(logits, dim=1)
predicted_idx = torch.argmax(probs, dim=1).item()
# Map class index to label
idx2label = {0: "Corn___Common_Rust", 1: "Corn___Gray_Leaf_Spot", ..., 16: "Sugarcane___Healthy"} # Add full mapping
print("Prediction:", idx2label[predicted_class])
Real-World Applications
Smart Farming: Disease detection via mobile/drones
Scalable Monitoring: Surveying across large farmlands
Yield Optimization: Early diagnosis = lower crop loss
Citation
If you use this model, please cite it as:
BibTeX:
@misc{5cropdiseasedetection2025,
title = {Crop Disease Detection using EfficientNet-B3},
author = {Abdullahi Olalekan Abdulmumeen},
year = {2025},
url = {https://huggingface.co/VisionaryQuant/5_Crop_Disease_Detection}
}
APA:
Abdulmumeen, A. O. (2025). Crop disease detection using EfficientNet-B3 [Model]. Hugging Face. https://huggingface.co/VisionaryQuant/5_Crop_Disease_Detection
Contact & Credits
Developed by Abdullahi Olalekan Abdulmumeen
For the NaijaFarmConsultAI 3MTT Knowledge Showcase project