Skip to main content
arrow_backProjects/Leaf Inference Engine

Deep Learning CV Pipeline

Leaf Inference Engine

Plant disease detector: point a camera at a leaf and get a diagnosis. A custom CNN classifies 38 disease states at roughly 95% accuracy, served through a FastAPI backend that a Next.js proxy calls without ever exposing the model API directly.

TensorFlowFastAPIStreamlit
Leaf Inference Engine preview

targetProblem Statement

Farmers needed a fast, low-latency way to diagnose plant disease from a photo, without specialized agricultural equipment or reliable network access in rural areas.

boltReal-world Impact

Engineered a rapid diagnosis service attaining 95% accuracy over 87,000+ data points, directly accessible through a proxy-secured Next.js interface.

account_treeSystem Architecture

Data pipelines offline build standard `.h5` model payloads. Deployed runtime splits frontend (Next.js server proxy intercepting keys) from backend inference node (Railway Docker housing FastAPI + loaded Keras engine).

[Next.js Client] ──► [Next.js API Route (Proxy)]
                          │
                     (Secure X-API-Key)
                          ▼
            [FastAPI (Railway Container)]
                          │
             (Check Magic Bytes / Size / Heuristics)
                          ▼
          [CNN Inference (.h5 Model in Memory)]
                          │
         [JSON Prediction Probability Weights]
                          │
             [Gemini Treatment Assistant]
CNN Model BuilderVercel UI ProxyFastAPI Inference NodeHeuristic Rejector

memoryAI / System Intelligence

A heuristic check rejects non-leaf images before inference runs, so a photo of a hand or a wall doesn't come back as a confident wrong diagnosis. A Gemini-powered companion then suggests organic treatment options for whatever gets identified.

psychologyKey Architectural Decisions

Proxy Security Layer

Never exposed the FastAPI endpoints or the AI keys to the browser. The Next.js API layer safely scrubs and forwards multipart form data to Railway securely shielding against rate-limit DDOS vectors.

Single Source Data Pipeline

Maintained a canonical config.py + data_pipeline.py structure ensuring preprocessing constraints during dataset compilation matched absolutely with the validation transformations in production.