A brain tumor is a very critical disease which causes deaths of many individuals. Currently, doctors locate the position and the area of brain tumor by looking at the MR Images of the brain of the patient manually. This results in inaccurate detection of the tumor and is considered very time consuming. This project deals with such a system, which uses computer, based procedures to detect tumor blocks using Convolution Neural Network Algorithm for MRI images of different patients.
The complete project report can be found here.
- The main aim of the application is tumor identification.
- The main reason behind the development of this application is to provide proper treatment as soon as possible and protect the human life which is in danger.
- This application is helpful to doctors as well as patient.
- The manual identification is not so fast, more accurate and efficient for user. To overcome those problems this application is designed.
The dataset selected for our model is acquired from the internet. In this dataset, there were different folders with a different set of images, one with a healthy brain image and the other with a brain tumor image. The MRI images present in the dataset are of different dimensions. This dataset is selected because acquiring data sets from hospitals is not a very simple task. The data set used is available on the internet website Kaggle and the link to reach there is provided below.
https://www.kaggle.com/datasets/navoneel/brain-mri-images-for-brain-tumor-detection.
Using these datasets, we have trained our model to predict brain tumor in MR images of any brain.
To run this project locally, you need to install the following :
- Python
- PIP
- VS Code
- Tensor Flow
- Keras
- Matplotlib
- NumPy
- SciKit Learn
- Flask
When the model is applied to the testing data set for 32 epochs, a validation accuracy of upto 85.19% is obtained and the validation loss is also less.
fig. Model Loss
As seen in the above figure, when the model is applied to the validation and testing set, the loss gradually decreases with the increasing number of epochs.
fig. Model Accuracy
The accuracy of the convolutional neural network model achieved after applying it to the testing set was 97.79%. with a very minimal loss with increasing epochs.
fig. Model History
From above figures, it can be confirmed that the accuracy increases with the increase in the number of epochs and there is a decrease in loss of the testing set.
fig. Model Summary
The main model is created using python. But we have also created a simple web application using flask and html to manually test the results by uploading images with a user-friendly interface.
fig. Non-tumor Brain MR Image
fig. Inititial Interface
fig. Uploading MRI Image of Non-tumor Brain
fig. Predicted Output for Sample Input 1
fig. Tumor Brain MR Image
fig. Uploading MRI Image of Tumor Brain
fig. Predicted Output for Sample Input 2
Hence, the predicted output identifies the tumor and non-tumor brain MRI images.
The created model achieves an accuracy of 97.79% when applied to the training set and an accuracy of upto 85.19% when applied to the validation set. It is observed on extermination that the proposed approach needs a vast training set for better accurate results. In future, different datasets would be applied to this model, to further increase the overall accuracy. The proposed approach can be further improvised through in cooperating weakly trained algorithms that can identify the abnormalities with a minimum training data and also self-learning algorithms would aid in enhancing the accuracy of the algorithm and reduce the computational time.