Skip to content

Raafat5566/image-processing-oop-main

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Image Processing OOP

Object-oriented digit image classification pipeline using TensorFlow/Keras.

This project includes data loading, preprocessing, model training, evaluation, prediction, and unit tests in a modular OOP structure.

Features

  • OOP pipeline for loading and preprocessing grayscale digit images.
  • CNN model builder with configurable activation, optimizer, and loss.
  • Training and evaluation modules, including confusion matrix generation.
  • Unit tests for core components.
  • Notebook workspace for experiments.

Project Structure

.
|-- main.py
|-- requirements.txt
|-- README.md
|-- notebooks/
|   |-- Conv.Model.AI.ipynb
|   |-- Conv.Model.Finalipynb.ipynb
|   `-- test.ipynb
|-- extras/
|   |-- Images.csv
|   `-- OOP Dataloader.py
`-- image_processing/
	|-- __init__.py
	|-- data_object_final.py
	|-- dataloader.py
	|-- nn.py
	|-- train.py
	|-- evaluator.py
	|-- test.py
	|-- test_unit.py
	|-- digit_classifier.py
	|-- best_model.pt
	`-- Numbers_images_dataset/

Setup

  1. Create and activate a Python virtual environment.
  2. Install dependencies:
pip install -r requirements.txt

Run

Run the pipeline with default project-local paths:

python main.py

Useful options:

python main.py --skip-tests
python main.py --epochs 10
python main.py --dataset-zip image_processing/Numbers_images_dataset.zip
python main.py --dataset-dir image_processing/Numbers_images_dataset
python main.py --image-path image_processing/Numbers_images_dataset/3/0_0_7.jpeg

Tests

python -m unittest image_processing.test_unit

Notes

  • The dataset and model artifacts can be large and are excluded through .gitignore.
  • Notebooks are intended for experimentation; production logic is in image_processing/.

About

Object-oriented digit image classification pipeline using TensorFlow/Keras — modular OOP architecture covering data loading, preprocessing, CNN training, evaluation, prediction, and unit testing.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors