Inspiration

At the age of 18, I was diagnosed with "You have something in your brain, but we don't know what it is." It took me 6 months of endless doctor appointments at different clinics to figure out what tumor I have. I was blessed to have the resources to get opinions from best neurosurgeons in Europe, but not everyone has the opportunity for that. That's where Brain Scan comes in.

What it does

The EfficientNet-B0 based model analyzes MRI scans and within seconds tells you the probability of a scan showing signs of a tumor. It also applies heatmap to the image to highlight the regions the model flagged, giving medical professionals a visual starting point rather than just a black box verdict.

How I built it

I used transfer learning on a pretrained EfficientNet-B0, fine-tuned in two phases: first training only the classification head, then unfreezing the full model for fine-tuning. The web app was built using Streamlit.

Challenges I ran into

The dataset I used for the model training was too small (250 images) which limited GradCAM spatial precision. I also ran into Windows-specific multiprocessing issues with PyTorch DataLoader, and had to debug gradient flow when freezing/unfreezing EfficientNet layers during two-phase training.

Accomplishments that I'm proud of

Training a 94% accurate tumor classifier in under a day with no prior ML experience, building a full end-to-end pipeline from dataset to a running web app, and implementing GradCAM on top of it.

What I learned

I learned how transfer learning works in practice, how to debug gradient flow in PyTorch, and how tools like GradCAM can make AI decisions more transparent, which is especially critical in medical contexts.

What's next for Brain Scan AI: Brain Tumor Classifier via MRI Scans

I'm planning to go for a PhD focusing primarily on the research of rare brain tumors through AI models. This is a great start for building a motivation letter to get into a prestigious PhD program. Of course, the base project can be developed further: next logical step would be building a classifier that tells the user the type of tumor the scan shows.

Built With

Share this project:

Updates