BrainScan AI

Brain Tumor Detection AI

A personal deep learning project to explore TensorFlow and Keras capabilities in medical image analysis

Brain Tumor Detection Project Banner
Personal Project

Project Overview

BrainScan AI est un projet personnel visant à développer un système de classification des tumeurs cérébrales basé sur l'apprentissage profond. Le projet utilise un réseau de neurones convolutif (CNN) pour analyser des images IRM et classifier les tumeurs en quatre catégories : gliome, méningiome, absence de tumeur et tumeur pituitaire. Cette implémentation met l'accent sur une analyse approfondie des données, une architecture CNN optimisée et une évaluation détaillée des performances.

Learning Objectives

  • Maîtriser l'analyse exploratoire des données médicales
  • Concevoir et optimiser une architecture CNN pour la classification d'images médicales
  • Implémenter des techniques avancées d'évaluation de modèles (ROC, matrices de confusion)
  • Développer une solution complète avec TensorFlow 2.18 et Keras 3.7

Technical Details

Python CNN TensorFlow Keras Deep Learning OpenCV

Key Features

  • 93% overall classification accuracy
  • Multi-class tumor classification (Glioma, Meningioma, No tumor, Pituitary)
  • Optimized CNN architecture with early stopping
  • Optimized for 256x256 MRI scans with data augmentation

Model Performance

Confusion Matrix

Confusion Matrix

Detailed classification results across tumor types

Classification Accuracy by Type

  • Glioma: 96% accuracy (Precision: 0.96, Recall: 0.83)
  • Meningioma: 89% accuracy (Precision: 0.89, Recall: 0.89)
  • No Tumor: 98% accuracy (Precision: 0.98, Recall: 1.00)
  • Pituitary: 91% accuracy (Precision: 0.91, Recall: 0.99)

Technical Implementation

Model Architecture

Model: Sequential
_________________________________________________________________
Layer (type)                Output Shape              Param #   
=================================================================
rescaling (Rescaling)       (None, 256, 256, 3)      0         
conv2d (Conv2D)            (None, 256, 256, 16)     448       
max_pooling2d (MaxPooling)  (None, 128, 128, 16)     0         
conv2d_1 (Conv2D)          (None, 128, 128, 32)     4,640     
max_pooling2d_1 (MaxPool)  (None, 64, 64, 32)       0         
conv2d_2 (Conv2D)          (None, 64, 64, 64)       18,496    
max_pooling2d_2 (MaxPool)  (None, 32, 32, 64)       0         
flatten (Flatten)          (None, 65536)            0         
dense (Dense)              (None, 128)              8,388,736 
dense_1 (Dense)            (None, 4)                516       
=================================================================
Total params: 8,412,836 (32.09 MB)
Trainable params: 8,412,836 (32.09 MB)
Non-trainable params: 0 (0.00 B)
                        

Analyse des Données

Distribution des Images

Distribution équilibrée des classes : Gliome (23.1%), Méningiome (23.4%), Sans tumeur (27.9%), Pituitaire (25.5%)

Courbes ROC

Courbes ROC

Analyse des performances par classe avec courbes ROC et scores AUC

Motifs Moyens

Motifs Moyens par Type

Visualisation des caractéristiques moyennes par type de tumeur

Détails du Dataset

  • Total d'images : 5712 images d'entraînement, 1311 images de test
  • Taille des images : 256x256 pixels, 3 canaux
  • Source : Brain Tumor MRI Dataset (Kaggle)
  • Prétraitement : Redimensionnement, normalisation et augmentation des données

Détails d'Entraînement

  • Taille de batch : 32
  • Epochs : 20 (avec early stopping)
  • Optimiseur : Adam
  • Métriques : Accuracy, Loss, ROC-AUC

Complete Implementation Details

Below is the complete implementation of the brain tumor detection model, including data processing, model architecture, training, and evaluation.