A deep learning project that uses transfer learning and custom CNN architectures to classify brain tumors from MRI scans into four categories: Glioma, Meningioma, Pituitary, and No Tumor.
This project implements two different deep learning approaches:
- Transfer Learning with Xception: Leveraging a pre-trained model for enhanced accuracy
- Custom CNN: A dedicated convolutional neural network built from scratch
Both models are deployed through a user-friendly Streamlit web interface that provides:
- Real-time tumor classification
- Confidence scores
- Saliency maps for model interpretability
- AI-generated explanations of the model's focus areas
- Pre-trained on ImageNet dataset
- 36 convolutional layers
- 21 million parameters
- Features:
- Max pooling
- Dropout layers for regularization
- Softmax activation for classification
- Performance metrics:
- High accuracy on test set
- Robust against overfitting
- 4 convolutional layers
- 4.7 million parameters
- Architecture:
- Multiple Conv2D layers with ReLU activation
- MaxPooling2D layers
- Dropout for regularization
- Dense layers with L2 regularization
- Softmax output layer
# Clone the repository
git clone https://github.com/stonewerner/brain-tumor-ML.git
cd brain-tumor-ML
# Install required packages
pip install -r requirements.txt
- tensorflow >= 2.0
- streamlit
- numpy
- pandas
- pillow
- plotly
- opencv-python
- google-generativeai
- python-dotenv
streamlit run app.py
- Image Upload: Support for jpg, jpeg, and png formats
- Model Selection: Choose between Transfer Learning and Custom CNN
- Visualization:
- Original MRI scan
- Saliency map highlighting model focus areas
- Results Display:
- Predicted tumor type
- Confidence scores
- Interactive probability chart
- AI-generated explanation of the classification
The project includes robust data handling:
- Image preprocessing and augmentation
- Brightness adjustment for training data
- Proper train/validation/test splits
- Standardized image sizing
- Saliency Maps: Visual explanation of model decisions
- Region Focus: Highlights critical areas in MRI scans
- AI Explanations: Generated using Google's Gemini model
- Confidence Metrics: Probability distribution across classes
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Stone Werner - stonewerner.com
Project Link: https://github.com/stonewerner/brain-tumor-ML