  Abnormal development of tissues in the body as a result of swelling and
morbid enlargement is known as a tumor. They are mainly classified as Benign
and Malignant. Tumour in the brain is fatal as it may be cancerous, so it can
feed on healthy cells nearby and keep increasing in size. This may affect the
soft tissues, nerve cells, and small blood vessels in the brain. Hence there is
a need to detect and classify them during the early stages with utmost
precision. There are different sizes and locations of brain tumors which makes
it difficult to understand their nature. The process of detection and
classification of brain tumors can prove to be an onerous task even with
advanced MRI (Magnetic Resonance Imaging) techniques due to the similarities
between the healthy cells nearby and the tumor. In this paper, we have used
Keras and Tensorflow to implement state-of-the-art Convolutional Neural Network
(CNN) architectures, like EfficientNetB0, ResNet50, Xception, MobileNetV2, and
VGG16, using Transfer Learning to detect and classify three types of brain
tumors namely - Glioma, Meningioma, and Pituitary. The dataset we used
consisted of 3264 2-D magnetic resonance images and 4 classes. Due to the small
size of the dataset, various data augmentation techniques were used to increase
the size of the dataset. Our proposed methodology not only consists of data
augmentation, but also various image denoising techniques, skull stripping,
cropping, and bias correction. In our proposed work EfficientNetB0 architecture
performed the best giving an accuracy of 97.61%. The aim of this paper is to
differentiate between normal and abnormal pixels and also classify them with
better accuracy.
