Malaria Detection using Deep Learning
Nikhil Gupta
Pilani, Rajasthan
- 0 Collaborators
Designed a Convolutional Neural Network algorithm to detect malaria from the cell images ...learn more
Project status: Published/In Market
Intel Technologies
Intel Integrated Graphics
Overview / Usage
**Automated Diagnosis of Malaria:**The first step is usually the acquisition of digital images of blood smears, which largely depends on the equipment and materials being use. The Image acquisition section breaks down the different approaches for the different types of microscopy, blood slides (thin or thick), and staining.
Following image acquisition, most systems perform one or several pre-processing methods to remove noise and to normalize lighting and colour variations inherent in the image acquisition and staining process. The Pre-processing section sorts the publications according to the pre-processing methods implemented.
The next step usually involves the detection and segmentation (outlining) of individual blood cells and maybe other objects that can be visible in a blood slide image, such as parasites or platelets. The section titled Red blood cell detection and segmentation gives an overview of all the segmentation methods that have been used for microscopic malaria diagnosis.
For most articles, cell segmentation is followed by the computation of a set of features, which describe the visual appearance of the segmented objects in a mathematical succinct way. The section titled Feature extraction and selection presents the different features and potential feature selection strategies that can be found in the literature.
In the last step, a mathematical discrimination method that classifies the segmented objects into different classes based on the computed features is implemented.
Deep Learning for Malaria Detection:
Manual diagnosis of blood smears is an intensive manual process that requires expertise in classifying and counting parasitized and uninfected cells. This process may not scale well, especially in regions where the right expertise is hard to find. Some advancements have been made in leveraging state-of-the-art image processing and analysis techniques to extract hand-engineered features and build machine learning-based classification models. However, these models are not scalable with more data being available for training and given the fact that hand-engineered features take a lot of time.
Deep learning models, or more specifically convolutional neural networks (CNNs), have proven very effective in a wide variety of computer vision tasks.
Convolutional Neural Networks (CNNs) is a class of deep, feed-forward Artificial Neural Networks (ANNs), specialized at analysing image data.
Neural Networks have a remarkable ability to derive meaning from large amounts of complicated (imprecise) data. Patterns and trends can be discovered that are not visible for a human expert. All these characteristics make ANN very suitable for processing images and especially pattern recognition in images. The networks that excels in this area are called Convolutional Neural Networks.
Methodology / Approach
A Convolutional Neural Network (ConvNet/CNN) is a Deep Learning algorithm which can take in an input image, assign importance (learnable weights and biases) to various aspects/objects in the image and be able to differentiate one from the other. The pre-processing required in a ConvNet is much lower as compared to other classification algorithms. While in primitive methods filters are hand-engineered, with enough training, ConvNets have the ability to learn these filters/characteristics.
The architecture of a ConvNet is analogous to that of the connectivity pattern of Neurons in the Human Brain and was inspired by the organization of the Visual Cortex. Individual neurons respond to stimuli only in a restricted region of the visual field known as the Receptive Field. A collection of such fields overlap to cover the entire visual area.
_Splitting the data:_The malaria cells data is split into two different folders of training set and test set and each folder is sub divided into two different folders of separate ‘Parasitized Cells’ and ‘Uninfected Cells’. The training set and test set are divided in the ration of 80% and 20% in which the 80% data is copied to the training set folder and the rest 20% data is copied to the test set folder.
_Building the CNN Model:_Convolutional neural networks (CNNs) are the current state-of-the-art model architecture for image classification tasks. CNNs apply a series of filters to the raw pixel data of an image to extract and learn higher-level features, which the model can then use for classification. CNNs contains three components:
· Convolutional layers, which apply a specified number of convolution filters to the image. For each subregion, the layer performs a set of mathematical operations to produce a single value in the output feature map. Convolutional layers then typically apply a [ReLU activation function](https://en.wikipedia.org/wiki/Rectifier_(neural_networks%29) to the output to introduce nonlinearities into the model.
The convolutions that are performed are very alike to 1-D convolutions known from signal processing that take the form of time series. The main difference is of course the change in dimensionality and that convolution in ANNs are actually a slightly modified version of convolutions that is called cross correlation in signal processing.
Normally there are multiple convolutional layers, each with different filters. The filters are trained in such a way that they all will ’detect’ separate features in an image, from low-level features such as edges and corners up to high-level patterns like honeycomb or grid patterns. A lot of these filters have fixed weights for the whole image, and do not have different values for the left part of the image than the right part. This is called parameter sharing and is very effective to bring down the total amount of parameters to train. After the convolution of the input image with all these convolutional layers it gives an output of multiple activation maps that shows all the locations where certain features are present in the image.
· Rectified Linear Unit (ReLU): A neuron using a rectifier as the activation function is also known as a Rectified Linear Unit (ReLU).The activation function is expressed as; f(x) = max(0, x), i.e. the output of the neuron is thresholded at zero, so only positive arguments are propagated as outputs.
· Pooling layers, are used to reduce the dimensionality of the feature maps and to prevent overfitting. There are multiple pooling techniques like L2-pooling, average pooling and MAX pooling, where MAX pooling is the most popular and will be explained here.
A MAX pooling layer produces a map that shows the most dominant feature in divided parts of the feature map. MAX pooling layers leads to improved generalization. It is often enough information to know what is the most dominant feature in an approximate area and not the exact location. Just like the convolutional layer it is again a filter with a small dimensionality, most of the times 2x2, that is moved with stride 2 over the activation maps and takes the max value of each 2x2 window.
Using a pooling layer as depicted means the activation maps are down sampled by a factor 2 over the width and height, thus leaving less inputs for the next layer and improves computation times. Since this inevitably also reduces the amount of information, the improvement in computation times sometimes comes at the cost of accuracy.
· Dense (fully connected) layers, which perform classification on the features extracted by the convolutional layers and down sampled by the pooling layers. In a dense layer, every node in the layer is connected to every node in the preceding layer.
Technologies Used
List of the Technologies used are :
- Python : Python is an interpreted, high-level, general-purpose programming language. Created by Guido Van Rossum and first released in 1991, Python's design philosophy emphasizes code readability with its notable use of significant whitespace. Its language constructs and object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects.
Python is dynamically typed and garbage-collected. It supports multiple programming paradigms, including procedural, object-oriented, and functional programming. Python is often described as a "batteries included" language due to its comprehensive standard library.
- Convolutional Neural Networks : Convolutional Neural Networks (CNNs) is a class of deep, feed-forward Artificial Neural Networks (ANNs), specialized at analysing image data.
Neural Networks have a remarkable ability to derive meaning from large amounts of complicated (imprecise) data. Patterns and trends can be discovered that are not visible for a human expert. All these characteristics make ANN very suitable for processing images and especially pattern recognition in images. The networks that excels in this area are called Convolutional Neural Networks.
- Anaconda Navigator : Anaconda Navigator is a desktop graphical user interface included in Anaconda that allows you to launch applications and easily manage conda packages, environments and channels without the need to use command line commands.
Repository
https://github.com/nikkkhil067/Malaria-Detection-Using-Deep-Learning.git