Medical image classification is the process of separating data into a specified number of classes. In this project, we aimed to classify three different brain tumors (glioma, meningioma and pituitary) using convolutional neural network (CNN) on T1-weighted MR images. The weights were initialized by transferring to CNN from DenseNet121 network, which was previously trained with ImageNet dataset.
In addition, data augmentation was performed on MR images using affine and pixel-level transformations.
The features obtained from the first fully connected layer of the trained CNN were also classified by support vector machine (DVM), k nearest neighbor (kNN), and Bayes methods. The Matlab files (*.m) of the machine learning methods are given in the Matlab_codes folder.
We couldn't upload trained weights file because there is a 100MB file upload limit on GitHub. You can download pre-trained weight file from HERE
If you find this code useful in your research, please cite this study. Gurkahraman, K., & Karakis, R. (2021) Brain Tumors Classification with Deep Learning using Data Augmentation. Journal of the Faculty of Engineering and Architecture of Gazi University. 36 (2): 997-1011, https://dergipark.org.tr/tr/download/article-file/1181914.
1- Download all files and folders.
2- If you want to see the performance of the system, download pre-trained weight from HERE
.Then run that file in ** brain_tumor_prediction.py** by using images in /Dataset_DICOM directory.
3- Run all codes in ** brain_tumor_train.py** to classify brain tumors
4- Run all codes in ** brain_tumor_savetraintestlist.py** to save the image file list for the training and testing of the other machine learning classifiers in Matlab.
5- Run the required codes in ** brain_tumor_featureextraction.py** to obtain features from the CNN model.
6- Run the required codes in ** brain_tumor_prediction.py** to predict brain tumor class using the MR image file from Dataset_DICOM directory.
Keras
Tensorflow
Python 3.6.0
Numpy
Keras 2.2.0
Tensorflow
h5py 2.9.0
The dataset was obtained from the figshare Brain Tumor Database. More details are available to the link below.
More Information About figshare Brain Tumor Database
The accuracy values of the developed CNN and CNN-based DVM, kNN, and Bayes classifiers are 0.9860, 0.9979, 0.9907, and 0.8933, respectively.