Skip to content

AhmAshraf1/MRI-Brain-Tumor-Classification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧠 MRI Brain Tumor Classification NASNetMobile

Kaggle Python TensorFlow License

πŸ“‹ Table of Contents

🎯 Project Overview

This project implements a deep learning solution for brain tumor classification using Convolutional Neural Networks (CNN) and transfer learning with NASNetMobile. The model classifies brain MRI images into multiple categories to assist in medical diagnosis and treatment planning.

Key Features

  • βœ… Multi-class brain tumor classification
  • βœ… Transfer learning with NASNetMobile architecture
  • βœ… Data augmentation for improved generalization
  • βœ… Comprehensive model evaluation with multiple metrics
  • βœ… Visualization of training progress and predictions

Objectives

  1. Develop an accurate automated brain tumor classification system
  2. Leverage pre-trained NASNetMobile for efficient feature extraction
  3. Achieve high accuracy and reliability for clinical assistance
  4. Provide interpretable results through visualization

πŸ“Š Dataset Information

Dataset Source

Dataset: Brain tumors 256x256
Source: Kaggle Dataset

Dataset Structure

Brain-Tumors-256x256/
β”œβ”€β”€ Training/
β”‚   β”œβ”€β”€ glioma/
β”‚   β”œβ”€β”€ meningioma/
β”‚   β”œβ”€β”€ notumor/
β”‚   └── pituitary/
└── Testing/
    β”œβ”€β”€ glioma/
    β”œβ”€β”€ meningioma/
    β”œβ”€β”€ notumor/
    └── pituitary/

Tumor Categories

Category Description Clinical Significance
Glioma Most common primary brain tumor originating from glial cells Aggressive, requires immediate treatment
Meningioma Tumor arising from meninges (protective membranes) Usually benign, slow-growing
Pituitary Tumor in the pituitary gland Affects hormone regulation
No Tumor Normal brain MRI without tumor presence Normal

Dataset Statistics

πŸ“Š Dataset Distribution:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Training Set:
  β€’ Glioma:       722 images (~29%)
  β€’ Meningioma:   351 images (~14%)
  β€’ No Tumor:      731 images (~29.5%)
  β€’ Pituitary:      675 images (~27%)
  β€’ Total:         2479 images

Validation Set:
  β€’ Glioma:        89 images
  β€’ Meningioma:    43 images
  β€’ No Tumor:      91 images
  β€’ Pituitary:     84 images
  β€’ Total:        307 images

Testing Set:
  β€’ Glioma:        90 images
  β€’ Meningioma:    44 images
  β€’ No Tumor:      91 images
  β€’ Pituitary:     85 images
  β€’ Total:        310 images

Data Characteristics

  • Image Format: PNG/JPEG
  • Image Size: 256 Γ— 256 pixels
  • Color Mode: RGB (3 channels)
  • Data Split: ~80% Training, ~10% Validation ~10% Testing

πŸ—οΈ Model Architecture

Transfer Learning with NASNetMobile

NASNetMobile is a lightweight neural architecture search (NAS) network optimized for mobile devices while maintaining high accuracy. It was discovered through automated neural architecture search on ImageNet.

Architecture Highlights

  • Base Model: NASNetMobile (pre-trained on ImageNet)
  • Input Shape: (224, 224, 3)
  • Parameters: ~5.3M trainable parameters
  • Architecture Type: Transfer Learning

Custom Head Architecture

  1. Global Average Pooling: Reduces spatial dimensions
  2. Dense Layer (256 units): Feature extraction with ReLU activation
  3. Dropout (0.5): Regularization to prevent overfitting
  4. Batch Normalization: Stabilizes training
  5. Dense Layer (128 units): Additional feature learning
  6. Dropout (0.3): Additional regularization
  7. Output Layer (4 units): Softmax activation for multi-class classification

πŸ”§ Data Preprocessing

Preprocessing Pipeline

1. Resizing & Normalization

Target Size: 224 Γ— 224 pixels (NASNetMobile requirement)

# Pixel values normalized to [0, 1]
pixel_values = pixel_values / 255.0

2. Data Augmentation (Training Set)

Data augmentation techniques applied to improve model generalization:

Augmentation Parameters Purpose
Rotation Β±15 degrees Handle different scan orientations
Width Shift Β±10% Account for positioning variations
Height Shift Β±10% Account for positioning variations
Shear 0.2 Handle perspective distortions
Zoom Β±20% Scale invariance
Horizontal Flip Yes Mirror symmetry
Fill Mode Nearest Handle boundary pixels

3. Class Weights

Calculated to handle class imbalance:

Class Weights:
  β€’ Glioma:       0.29
  β€’ Meningioma:   0.29
  β€’ No Tumor:     0.14
  β€’ Pituitary:    0.27

πŸŽ“ Training Process

Training Configuration

Optimizer: Adam
  - Learning Rate: 0.001

Loss Function: Sparse Categorical Crossentropy

Metrics: 
  - Accuracy
  - Precision
  - Recall
  - F1-Score

Batch Size: 8
Epochs: 15
Validation Split: 10% of training data

Callbacks & Techniques

1. Early Stopping

Monitor: val_loss
Patience: 8 epochs
Restore Best Weights: True

2. Learning Rate Reduction

Monitor: val_loss
Factor: 0.3
Patience: 2 epochs
Min LR: 1e-10

3. Model Checkpoint

Save Best Model: True
Monitor: val_loss

Training Strategy

  1. Freeze Base Model: Initial training with frozen NASNetMobile layers
  2. Feature Extraction: Train only custom head (15 epochs)
  3. Fine-Tuning: Unfreeze last 35 layers of NASNetMobile
  4. Full Training: Train entire model with reduced learning rate to be 0.0001 (25 epochs)

πŸ“ˆ Results & Performance

Overall Performance Metrics

╔═══════════════════════════════════════════════════════════╗
β•‘           FINAL MODEL PERFORMANCE SUMMARY                 β•‘
╠═══════════════════════════════════════════════════════════╣
β•‘  Training Accuracy:        98.3%                          β•‘
β•‘  Validation Accuracy:      93.8%                          β•‘
β•‘  Test Accuracy:           95.2%                           β•‘
β•‘-----------------------------------------------------------β•‘
β•‘  Training Loss:            0.0508                         β•‘
β•‘  Validation Loss:          0.1714                         β•‘
β•‘  Test Loss:               0.2374                          β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Detailed Classification Report

Classification Report

Confusion Matrix Analysis

confusion matrix

Key Observations:

  • Strong diagonal indicates good classification
  • Minimal confusion in giloma tumor type
  • Highest accuracy on "No Tumor" and "Pituitary" class (98.0%)
  • Some confusion between Glioma and Meningioma (5 cases)

πŸ“Š Visualizations

Training History

Training & Validation Accuracy Over Epochs

Accuracy Curves

Training & Validation Loss Over Epochs

Loss Curves

πŸ’» Installation

  1. Clone the Repository
git clone https://github.com/yourusername/brain-tumor-classification.git
cd brain-tumor-classification
  1. Create Virtual Environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install Dependencies
pip install -r requirements.txt

πŸ” Model Interpretation

Key Findings

  1. High Accuracy Across All Classes

    • The model achieves >95% accuracy for all tumor types
    • Minimal false positives/negatives critical for medical applications
  2. Strong Generalization

    • Small gap between training (98%) and test (95%) accuracy
    • Effective data augmentation prevents overfitting
  3. Clinical Relevance

    • High precision (0.95) reduces false alarms
    • High recall (0.95) ensures tumor detection
    • Balanced performance suitable for screening tool

Limitations & Considerations

This model is for research/educational purposes only.

  1. Dataset Limitations:

    • Limited to 4 classes
    • Single dataset source
    • Imbalanced classes
    • Small size dataset
  2. Edge Cases:

    • May struggle with rare tumor variants
    • Performance on low-quality or corrupted images not evaluated
    • Multi-tumor cases not addressed

πŸš€ Future Improvements

Short-term Enhancements

  • Increase Dataset Size: Collect more diverse MRI samples
  • Add More Classes: Include additional tumor types
  • Performance: Improve Model performance and time

Long-term Goals

  • 3D MRI Analysis: Process full 3D MRI volumes instead of 2D slices
  • Tumor Segmentation: Add pixel-level tumor boundary detection
  • Multi-modal Fusion: Incorporate CT, PET scans alongside MRI
  • Real-time Deployment: Create web/mobile application for inference
  • Clinical Integration: Develop DICOM compatibility

Research Directions

  1. Attention Mechanisms: Implement self-attention for better feature focus
  2. Few-shot Learning: Handle rare tumor types with limited data
  3. Uncertainty Quantification: Provide confidence intervals for predictions
  4. Multi-task Learning: Simultaneously predict tumor type, grade, and size

πŸ“š References

Datasets

Related Medical Projects


πŸ‘₯ Contributing

Contributions are welcome! Please follow guidelines

βš–οΈ Ethical Considerations

Medical Ethics

  • This model is NOT approved for clinical diagnosis
  • Always consult qualified medical professionals
  • Patient privacy must be maintained at all times
  • Informed consent required for any medical data usage

Data Privacy

  • All patient identifiable information must be removed
  • Comply with HIPAA, GDPR, and local regulations
  • Secure storage and transmission of medical images

Bias & Fairness

  • Model trained on limited demographic data
  • May not generalize across all populations
  • Continuous monitoring for bias required
  • Diverse dataset collection recommended

πŸ“§ Contact & Support

Kaggle: @ahmedashrafhelmi
Project Link: Brain Tumor Classification Notebook

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors