Case Study · 2026
CropDx — Crop Disease Detector
A field-first crop disease detection assistant. A farmer uploads a leaf photograph and receives a confidence-rated disease prediction, plain-language explanations, and practical next steps — in 10 languages, with a voice guide, on a low-power Android device.

CropDx — Crop Disease Detector — 2026
The Problem
Farmers were losing harvests to diseases they couldn't name
In Kwara State, a farmer watching maize leaves yellow doesn't have an agronomist on speed dial. By the time extension officers visit, the disease has spread. Existing AI solutions assumed conditions the field doesn't have: fast internet, new phones, English literacy, and constant connectivity.
- ✗Diseases are identified late — after spread, when treatment is costliest
- ✗Existing tools need stable internet and modern phones; villages have neither
- ✗Language: the farmer speaks Yoruba or Hausa, not English
- ✗Most ML demos are CNN-heavy — heavy, opaque, and unexplainable to the user
Why this solution
An inspectable model that runs anywhere and speaks the farmer's language
I deliberately chose a classical ML pipeline over a CNN — not because CNNs are bad, but because a 113-feature HSV/GLCM pipeline with an RBF SVM is small enough for low-power devices, fast enough on 2G connections, and its decisions can be inspected and explained feature by feature.
- ✓Inspectability: feature-based model means we can point at WHAT triggered a diagnosis
- ✓Offline-first: browser voice guide (SpeechSynthesis) needs zero AI credits or API keys
- ✓10 languages: English, Hausa, Yoruba, Igbo, French, Arabic, Spanish, Portuguese, Swahili, Hindi
- ✓Fail-closed billing: the Whop Field Pass integration degrades safely if Whop is down
How it works
01
Upload
Farmer photographs the affected leaf; image is validated and sent to the Flask API
02
Feature extraction
113 features pulled via HSV colour stats, GLCM texture and OpenCV morphology
03
Inference
Calibrated RBF SVM scores the disease with a confidence percentage
04
Guidance
SQLite-backed database returns symptoms + grouped, practical recommendations
05
Voice guide
Device SpeechSynthesis reads the result in the farmer's language — free, offline, no API
Challenges I faced
⚠️ Class imbalance & CNN cost
→ fixed: Chose a classical pipeline trained on PlantVillage — CPU-friendly training, no GPU required, inspectable output
⚠️ No internet in the field
→ fixed: Voice guide uses the browser/device SpeechSynthesis API with curated translations — no cloud dependency at all
⚠️ Trust — farmers won't act on a black box
→ fixed: Confidence-rated outputs with plain-language symptoms and grouped next steps, so the farmer can verify before acting
⚠️ Billing must never block diagnosis
→ fixed: Whop Field Pass is fail-closed server-side: if checkout is misconfigured, diagnosis still works
Results
10
languages in the voice guide
113
engineered image features
0
AI credits needed per diagnosis
2G
connection is enough
🧰 Built with
💡 What it taught me
The best model isn't the most accurate one — it's the one a farmer will actually use. Constraints (no internet, low-end phones, local languages) made the engineering better, not worse.