All projects
Completed

SmartApple AI Detection & Classification

Orchard Intelligence: an AI-powered computer vision system that detects and classifies apples from images with adjustable confidence thresholds. Built as a Final Year Project, combining a YOLO/Ultralytics-based detection model with a persistent Python classification service to avoid model-reload overhead on each request.

Client
Final Year Project
Duration
6 month

Built with

  • React
  • Vite
  • Tailwind CSS
  • Express
  • Python
  • PyTorch
  • YOLO / Ultralytics

The problem it solves

Counting apples and judging their ripeness is done by eye, which is slow and inconsistent across a whole orchard. The aim of this Final Year Project was to turn that into a computer-vision system someone could actually use from a web page, not a notebook experiment.

Who it's for

Growers and packing operations that count or grade produce, and anyone who wants to see an AI model turned into a working app. The same approach fits counting and grading other fruit or products from photos.

What it does

  • Apple detection

    A YOLO object-detection model finds every apple in a photo and draws a box around each one.

  • Adjustable confidence

    A slider sets how sure the model must be before it counts something as an apple, passed all the way down to the model.

  • Ripeness classification

    Each detected apple is cropped and labelled ripe or unripe by a second model, with a confidence score.

  • Results summary

    Total apples found, ripe and unripe counts and the average confidence, shown together.

  • Zoom and pan

    Move around the annotated photo to check individual apples, even in a crowded orchard shot.

  • Batch classification

    All the apples in a photo are classified in one request instead of one round trip per apple.

How it works

4 steps, each one in the walkthrough video above

  1. 01Upload an orchard photo

    Upload a photo of apples, on the tree or in a crate, and set the confidence threshold for detection.

  2. 02193 apples detected

    The detector boxes every apple it finds. This orchard photo came back with 193, and the annotated image can be zoomed and panned.

  3. 03Ripeness classification

    Every detected apple is then classified as ripe or unripe, each with its own confidence score.

  4. 04Model statistics

    The statistics view brings the run together, with the counts and confidence from both models.

How it's built

  • React and Vite with Tailwind CSS on the front end; a Node.js and Express back end that receives the uploads.
  • Detection uses YOLO (Ultralytics) trained on a custom apple dataset; classification uses a PyTorch model fine-tuned to tell ripe from unripe. Training was done in a Jupyter notebook.
  • Two ways of running the models, chosen on purpose: detection runs fresh for each request, while the classifier stays loaded as a long-running Python service, so it doesn't pay the multi-second model-loading cost on every call.
  • The model files (about 360 MB) are versioned with Git LFS instead of being committed as raw files.

What this shows I can build

  • AI apps

    AI-powered tools such as image detection and predictive maintenance, built around your data and needs.

More projects

Want something like this built?

Tell me what your business needs and I'll suggest the simplest way to build it.

Get in touch