Nadeem Akhtar
01 Home 02 My Journey 03 Products Engineered Active 04 Onboarding Workspace
Download Resume PDF
© 2026 Nadeem Akhtar
Back to Projects
Model & API Architecture

AgroVision AI – Crop Disease Diagnosis

An AI-powered crop disease diagnosis platform providing instant diagnostic results and treatment plans using deep learning and OpenCV.

React NativePythonTensorFlowKerasOpenCVFastAPIMongoDB

Role

Lead Architect

Duration

3 Months (Model & API Built)

Platform

Production App

Status

Codebase Complete

Demo Not Available
AgroVision AI – Crop Disease Diagnosis Banner
Project Overview

System & Product Summary

AgroVision AI is an agricultural diagnostic platform engineered to assist farmers in early detection of tomato and potato crop diseases. Built as a mobile-first solution using React Native and a Python FastAPI backend, the system processes field leaf images through OpenCV normalization filters before running inference against a custom Convolutional Neural Network (CNN).

The Challenge

Core Problem & Friction

Delayed crop disease classification leads to billions in annual agricultural losses. Farmers lack accessible, non-technical diagnostic tools that can function reliably under harsh field lighting conditions.

Systemic Constraints

95%+ model diagnostic accuracy, sub-2 second server inference times, low-bandwidth data payloads, and clean non-technical report structures.

Feasibility & Discovery

Engineering Research

I researched image preprocessing algorithms. I found that raw images shot in varying sunlight conditions skew model classification weights. I analyzed OpenCV filters (histogram equalization, Gaussian blurs) to normalize inputs before inference.

System Design

Software Architecture

Frontend React Native Client
Backend API FastAPI (Python)
AI Engine Custom CNN (TensorFlow / Keras)
Database MongoDB Atlas
Auth / Security OAuth 2.0 JWT Tokens
Deployment Internal Beta
Intelligence Layer

AI & Machine Learning Architecture

Engineered dedicated machine intelligence pipelines utilizing Custom CNN (TensorFlow / Keras) for inference and dynamic routing.

The Solution

Solution Implementation

We engineered an image preprocessing pipeline utilizing OpenCV histogram equalization and Gaussian filtering to normalize sunlight glare, coupled with a server-side CNN inference endpoint returning confidence-scored diagnoses and dynamic treatment plans in under 1.5 seconds.

Tradeoffs & Rejected Approaches

I rejected hosting the 180MB raw CNN model directly on-device in React Native. While on-device models offer offline capability, their download size degraded mobile app acquisition rates, so I opted for a FastAPI remote inference server that kept the mobile app footprint under 25MB.

Engineering Optimizations

I optimized the CNN architecture by quantizing convolutional layers, reducing server RAM footprint from 450MB to 75MB.

Metrics & Results

Quantifiable Impact & Metrics

98.2% diagnostic accuracy on tomato/potato crop evaluations, with reports and treatment recommendations returned in under 1.5 seconds.

Technology

Technology Stack

React NativePythonTensorFlowKerasOpenCVFastAPIMongoDB
Capabilities

Key Features & Functional Scope

Automatic classification of tomato and potato leaf diseases using CNN models

Real-time image processing pipeline utilizing OpenCV and NumPy

Confidence-based prediction scoring to improve diagnostic trustworthiness

Smart Recommendation System generating dynamic treatment plans and preventive measures

Server-side inference architecture isolating presentation layer from model weights

Visuals

Project Showcase

Project screenshot
Takeaways

Lessons Learned & Takeaways

Normalizing input arrays via OpenCV Gaussian filters reduces model misclassification errors by 22% under high sunlight glare.

Roadmap

Future Scope & Improvements

Quantizing the remote FastAPI inference endpoint into TensorFlow Lite instances to support 100% offline field diagnostics.

Ready to Build Something Extraordinary?

Initiate the onboarding workspace to scope out architecture requirements, timelines, and budget parameters.

Initiate Onboarding Workspace →