Skip to content

Binary classification of chest X-rays (Pneumonia vs Normal) using CNN and hand-crafted features (PHOG, Gabor, Fourier, DCT). Includes a web App for real-time prediction

License

Notifications You must be signed in to change notification settings

Haninehr/Pneumonia-Vs.-Normal-Classification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pneumonia vs. Normal Classification

Pneumonia Icon

Author: Rouibah Hanine

This project performs binary classification of chest X-ray images: Pneumonia vs Normal.

Two main approaches were developed:

  1. Direct training of a Convolutional Neural Network (CNN) on images
  2. Hand-crafted feature extraction (PHOG, Gabor, Fourier, DCT) using two strategies:
    • Sequential processing
    • Concatenated features
      followed by classification with SGDClassifier (logistic loss)

Structure du projet

Pneumonia Vs. Normal Classification/
├──Code/
├────── CNN.py # Train CNN directly
├────── Data_Augmentation.py # Script d'augmentation
├────── FeaturesExtraction_Sequentiel.py # Sequential Features Extraction
├────── FeaturesExtraction_Concatenated.py # Concatenated Features Extraction
├────── Train_Sequentiel_Features.py # Train with Sequential Features
├────── Train_Concatenated_Features.py # Train with Concatenated Features
├──Data # Extarcted Features
├──Datasets
├──Models
├──UI #Interface of prediction
├──Report

Prediction Interface

In addition to the models, a user-friendly web interface was developed for real-time prediction.
APP screenshot

Features

  • Select model: CNN or ML (Concatenated Features)
  • Upload a chest X-ray image
  • Instant result: Sick (Pneumonia) or Not Sick (Normal)
  • Confidence percentage
  • Automatically saves the uploaded image with prediction

requirements

-Flask

How To Run

->py -m flask run --port 8000

Report

Key facts from the report

-Training set: 3,200 Pneumonia + 708 Normal
-Validation set: 651 Pneumonia + 621 Normal
-Strong initial class imbalance → addressed with targeted data augmentation
-Augmentation rules:
-20% of Pneumonia images
-100% of Normal images
-Applied transformations: rotation ±15°, shift 5%, zoom 10%, horizontal flip
📄 Full Report (PDF)

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Binary classification of chest X-rays (Pneumonia vs Normal) using CNN and hand-crafted features (PHOG, Gabor, Fourier, DCT). Includes a web App for real-time prediction

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published