Data set used from Kaggle - https://www.kaggle.com/datasets/indk214/brain-tumor-dataset-segmentation-and-classification
This project aims to assist medical professionals in detecting brain tumors from MRI scans using deep learning. It explores the effectiveness of CNNs in medical image classification and serves as a reference for future diagnostic tools.
Data Download: From Kaggle using kagglehub
- Data Preprocessing: Rescaling, rotation, zoom, and brightness adjustment
- Model Architecture: CNN (or EfficientNet if applied), trained on 224x224 MRI images
- Training: Augmented data, validation split, early stopping, and checkpointing
- Evaluation: Accuracy score, confusion matrix, classification report
- Prediction: Model can predict on new/unseen brain MRI scans
- Python 3
- TensorFlow / Keras
- NumPy, Matplotlib
- KaggleHub
- Jupyter Notebook
To improve generalization we applied the following :
rotation_range=10– minor rotationswidth/height_shift=0.05– shift tumor regionszoom_range=0.15– vary tumor sizesbrightness_range=[0.8, 1.2]– simulate scanning variationshorizontal_flip=False– preserved anatomical orientationvalidation_split=0.2- helps monitor how well the model generalizes to unseen data
- Total Images: 7,023 (5,712 training / 1,311 testing)
- Tumor Classes: 4 (e.g., Glioma, Meningioma, Pituitary, No Tumor)
- Epochs Trained: 5
| Metric | Value |
|---|---|
| Accuracy | 84.0% |
- Kaggle Dataset by indk214
- TensorFlow & Keras for deep learning tools
This project is a collaboration between:
Instructors :
- @scharffc
- @kaleema
- @stephsicilian