mango-disease-ai 🥭
AI-powered Amropali mango disease detection — classify 7 diseases, visualize with Grad-CAM, and generate PDF reports.
What It Does
mango-disease-ai is a Python package built on the AA-ENet model — a lightweight CNN–Transformer hybrid developed by the AIUB R&D ICCA Research Group — that detects 7 Amropali mango diseases from images.
| Feature | Description |
|---|---|
| 🔍 Disease Classification | Detects 7 diseases with confidence scores |
| 🧠 Mango Validation | Auto-rejects non-mango images using CLIP |
| 🌡️ Grad-CAM Heatmap | Shows exactly where the AI focused on the image |
| 📄 PDF Report | Generates a professional diagnosis report |
| 🌐 Public REST API | Callable from mobile apps, web apps, Postman |
Detectable Diseases
- Anthracnose — Colletotrichum gloeosporioides
- Bacterial Canker — Xanthomonas campestris pv. mangiferaeindicae
- Healthy — No disease detected
- Powdery Mildew — Oidium mangiferae
- Scab — Elsinoë mangiferae
- Sooty Mould — Capnodium mangiferae
- Stem End Rot — Lasiodiplodia theobromae
Installation
pip install mango-disease-ai
Note: The first run will automatically download the CLIP model (~600 MB) from HuggingFace Hub. Subsequent runs use the cached version.
Quick Start
Analyze an image
from mango_disease_ai import analyze
# Works with file path, PIL Image, bytes, or file-like objects
result = analyze("mango_leaf.jpg")
print(result["predicted_class"]) # e.g. "Anthracnose"
print(result["confidence"]) # e.g. 0.9312 (93.12%)
print(result["is_mango"]) # True
# Disease details
info = result["disease_info"]
print(info["scientific_name"]) # "Colletotrichum gloeosporioides"
print(info["symptoms"]) # list of symptom strings
print(info["remedies"]) # list of treatment strings
# All 7 class scores
for score in result["all_scores"]:
print(f"{score['class']:20s} {score['score']:.4f}")
Generate a PDF report
from mango_disease_ai import analyze, generate_pdf
result = analyze("mango_leaf.jpg")
pdf_bytes = generate_pdf(result, user_name="Dr. Arpon")
with open("diagnosis_report.pdf", "wb") as f:
f.write(pdf_bytes)
Display the Grad-CAM heatmap
import base64
from mango_disease_ai import analyze
result = analyze("mango_leaf.jpg")
# Decode the Grad-CAM base64 PNG and save
heatmap_bytes = base64.b64decode(result["gradcam_base64"])
with open("heatmap.png", "wb") as f:
f.write(heatmap_bytes)
Fast mode (no Grad-CAM — ~2× faster)
from mango_disease_ai import analyze
result = analyze("mango_leaf.jpg", include_gradcam=False)
# gradcam_base64 and original_base64 will be None
Works with PIL Images
from PIL import Image
from mango_disease_ai import analyze
pil_img = Image.open("mango.jpg")
result = analyze(pil_img)
Return Value
analyze() returns a dictionary:
{
"is_mango": True, # bool — was it validated as a mango?
"mango_confidence": 0.97, # float — CLIP mango detection score
"predicted_class": "Anthracnose",
"confidence": 0.9312, # top class confidence (0.0–1.0)
"all_scores": [
{"class": "Anthracnose", "score": 0.9312},
{"class": "Healthy", "score": 0.0412},
# ... all 7 classes
],
"disease_info": {
"scientific_name": "Colletotrichum gloeosporioides",
"description": "...",
"symptoms": ["Dark brown spots...", ...],
"remedies": ["Apply copper-based fungicides...", ...]
},
"gradcam_base64": "iVBORw0KGgo...", # base64 PNG string
"original_base64": "iVBORw0KGgo...", # base64 PNG string
}
If is_mango is False, all other fields except mango_confidence will be None or empty.
Public REST API
A public internet API is also available at Hugging Face Spaces. Any mobile app or web app can call it via HTTP — no Python needed.
Endpoints
| Method | URL | Description |
|---|---|---|
| GET | /api/health |
Server health check |
| GET | /api/diseases |
List all 7 diseases |
| POST | /api/analyze |
Analyze image → JSON result |
| POST | /api/report |
Analyze image → PDF download |
Example (Python requests)
import requests
with open("mango_leaf.jpg", "rb") as f:
response = requests.post(
"https://YOUR-SPACE.hf.space/api/analyze",
files={"image": f},
)
result = response.json()
print(result["predicted_class"])
print(result["confidence"])
Example (curl)
curl -X POST "https://YOUR-SPACE.hf.space/api/analyze" \
-F "image=@mango_leaf.jpg"
Interactive API Docs
Visit https://YOUR-SPACE.hf.space/docs for the full interactive documentation (Swagger UI).
Model Architecture
AA-ENet (Amropali Attention-Enhanced Network):
Input Image (224×224)
│
EfficientNet-B0 Backbone (pretrained)
│
1×1 Conv Reduction → 192 channels
│
CBAM Attention (Channel + Spatial)
│
Transformer Encoder (1 layer, 4 heads) + [CLS] token
│
GAP + CLS concatenation → Dropout → Linear
│
7-class softmax output
- Parameters: ~5.8M
- Training data: 3,500 Amropali mango images (500 per class)
- Inference time: ~1–2 seconds (CPU)
- Input: 224×224, ImageNet normalization
License
MIT License — see LICENSE file.
Attribution
Research Group: AIUB R&D ICCA
Institution: American International University-Bangladesh
Model: AA-ENet (EfficientNet-B0 + CBAM + Transformer Encoder)
Dataset: 3,500 Amropali mango images
If you use this in research, please cite our work.
Metadata
Release files for mango-disease-ai 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mango_disease_ai-0.1.0.tar.gz | 34.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mango_disease_ai-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 51.5 MB
Release files / mango_disease_ai-0.1.0.tar.gz
| Download URL | mango_disease_ai-0.1.0.tar.gz |
|---|---|
| Size | 34.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
21cb749408a031d7badba56b5eafe9328a5df9a38ef6b100679e9b3d114f01b6
|
|
BLAKE2b-256 checksum How to use checksums |
7219bacab35268c18f5fcd1a577014eae9ec6306c589785bc8b3716ca84dd87b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|
Release files / mango_disease_ai-0.1.0-py3-none-any.whl
| Download URL | mango_disease_ai-0.1.0-py3-none-any.whl |
|---|---|
| Size | 17.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
24c5e1b50b9d9ab9d571b0a452fbf6ba9e064d4bdee38173d24a0de2b8140c69
|
|
BLAKE2b-256 checksum How to use checksums |
e8ccbf16472b11433b959c65f7814b8e5ec139326b8cbc43167e61daa363b070
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|