This project focuses on the detection of Alzheimer's disease using the OASIS-1 dataset. It employs a multimodal approach, integrating Exploratory Data Analysis (EDA), Convolutional Neural Networks (CNN), and anomaly detection techniques to analyse MRI data.
The dataset used in this project is OASIS-1 (Open Access Series of Imaging Studies).
- Source: OASIS-1 Dataset
- Description: A cross-sectional MRI data set in young, middle-aged, nondemented, and demented older adults.
The project is organized into sequential steps, each implemented in a Jupyter Notebook:
- EDA_STEP_1.ipynb: Exploratory Data Analysis. Visualizing distributions, correlations, and initial data insights.
- DATAprep_STEP_2.ipynb: Data preprocessing. Cleaning, normalization, and preparation of MRI slices for modeling.
- Baseline_STEP_3.ipynb: Establishing baseline models for performance comparison.
- CNN_STEP_4.ipynb: Implementation of Convolutional Neural Networks for classification/detection.
- Testing_STEP_5.ipynb: Evaluation of the trained models on test sets.
- Anomaly_STEP_6.ipynb: Anomaly detection to identify outliers or unusual patterns in the imaging data.
- GRAD_STEP_7.ipynb: Gradient-based visualization (e.g., Grad-CAM) to explain model decisions and highlight regions of interest in MRI scans.
OUTPUTS/: Contains intermediate outputs, preprocessed data, and model artifacts.PROCESSED/: Directory for processed image files.eda_outputs/: Generated figures and statistics from the EDA step.explainability_outputs/: Visualizations from the explainability step.gradcam_outputs/: Grad-CAM heatmaps.logs/: Training logs.models/: Saved trained models (.h5files likecnn_v1_best.h5,cnn_v1_final.h5).results/: Evaluation results and metrics.
To run this project, you will need the following libraries:
- Python 3.x
- TensorFlow / Keras
- NumPy
- Pandas
- Matplotlib
- Seaborn
- Tune (if used for hyperparameter tuning)
- OpenCV (cv2)
- Scikit-learn
- Nibabel (for MRI file handling)
- Clone the repository.
- Download the OASIS-1 dataset from the link provided above.
- Ensure the data paths in the notebooks correspond to your local setup.
- Run the notebooks in the numerical order (STEP_1 to STEP_7) to reproduce the pipeline.