ISDe project presentation

VisionLab Image Classification Server

A FastAPI web server for classifying prepared and uploaded images, transforming images before inference, computing histograms, and downloading prediction outputs.

FastAPI Torchvision Chart.js Pillow GitHub Repo
Classification output with score chart and download buttons
Project overview

A browser interface around image classification utilities.

The project extends an image classification server with four delivered features: image histograms, image transformation before classification, downloadable outputs, and uploaded-image classification.

4 assigned issues
4 configured models
1,000 sample images
GitHub board tracking project issues

Main project board used to track issue progress.

Project organization

One main board, issue boards, dedicated branches, and pair programming.

The presentation describes a workflow based on GitHub Boards, one board per issue, one branch per issue, and pair programming for review and shared knowledge.

Main GitHub board

Main board

Used by the full team to track the general state of project progress.

Issue-specific GitHub board

Issue boards

Each issue had its own board to split the work into smaller subtasks.

One branch for every issue

Branch workflow

Each issue was developed on a dedicated branch.

Team working together at laptops

Pair programming

Used for constant review and better knowledge sharing across the team.

Four implemented issues

The feature set follows the presentation issue split.

Each issue maps to a visible app flow and to backend helpers in the repository.

Issue #1

Image Histogram

OpenCV reads the image in grayscale, NumPy computes histogram bins, and Chart.js renders the histogram.

Issue #2

Image Transformation

Pillow ImageEnhance adjusts color, brightness, contrast, and sharpness before classification.

Issue #3

Download Results

The app exports prediction output through JSONResponse and StreamingResponse endpoints.

Issue #4

Upload Image

Users can upload a local image, validate it, classify it, and view the result without saving the upload.

Application screens

Core flows shown with presentation screenshots.

The showcase uses screenshots from the project presentation to show the actual browser flows for histogram, transformation, upload, and download outputs.

Histogram screen
Image histogram flow
Transformed image classification screen
Transformed image classification
Classification output with downloads
Download JSON and plot outputs
Upload image screen
Uploaded-image classification
Contribution

Completed as part of the Industrial Software Development course.

This was a course project for Industrial Software Development, part of the MSc Computer Engineering program context at the University of Cagliari.

Università degli Studi di Cagliari logo

Università degli Studi di Cagliari

Facoltà di Ingegneria e Architettura

The project was developed as part of the course program in Cagliari at the Faculty of Engineering and Architecture.