This project detects and classifies brain tumor MRI images into three classes: Glioma tumor, Meningioma tumor, Pituitary and No tumor. Processed images are used to train convolutional neural networks to classify the images into four classes.
Data can be downloaded from https://www.kaggle.com/sartajbhuvaji/brain-tumor-classification-mri
The downloaded data folder should be placed inside the current foleder (where the code files exist) and named “data”. Before the next step, make sure the folder structure is Code --> Data --> Training, Testing. Once the raw data is in place, go ahead and first run the jupyter file named “preprocessing.ipnyb”. This file will pre-process the data and automatically place the processed data folder (named “processed_data”) inside “data” folder. Now the data is ready to be used in the models.
I experimented with different models. Following are the details of the model architectures showed better performance:
- final-Nasnet: Uses NASNetMobile base architecture.
- final-Nasnet-balance-dataset: Model with class weights to balance the dataset
- Inception: Uses Inception as the base mdoel.
- RESNet - Uses Resnet50 as the base architecture.