Convolutional neural networks (CNNs) are a type of deep learning algorithm that has been used in a variety of real-world applications. CNNs can be trained to classify images, detect objects in an image, and even predict the next word in a sentence with incredible accuracy. CNNs can also be applied to more complex tasks such as natural language processing (NLP). CNNs are very good at solving classification problems because they’re able to identify patterns within data sets. This blog post will explore some CNN applications and discuss how CNN models can be used to solve real-world problems.
Before getting into the details of CNN applications, let’s quickly understand what are CNNs?
What is a Convolutional Neural Network (CNN)?
CNNs work by using layers with filters placed along each dimension (horizontal or vertical) capturing specific information about the visual field. In 1982, Fukushima worked on visual cortex modeling by building a neural network that worked the same way as the human brain, based on the following two concepts. A. Neurons are replicated across the visual field. B. There are complex cells that pool the information from simple cells (orientation-selective units). As a result, the shift of the picture will change the activation of simple cells, but will not influence the integrated activation of the complex cell (convolutional pooling). In CNN, a small input window is swiped over the whole image. If the input window gets activated, a particular pattern is identified. Yan Lecun in 1990 first trained the CNN for handwritten digits recognition based on Fukushima’s work on visual cortex modeling (simple/complex cells hierarchy) and using backpropagation.
How are the convolutional neural networks trained?
The first-layer, simple convolution/pool combinations usually detect simple features, such as oriented edge detections. During the forward pass, the filter is slid (more precisely, convolve) across the width and height of the input volume, and dot products between the entries of the filter and the input at any position are computed. As the filter is slid over the width and height of the input volume, a 2-dimensional activation map is produced that gives the responses of that filter at every spatial position. The CNN learn filters that activate when they see some type of visual features such as an edge of some orientation or a blotch of some color on the first layer, or eventually entire honeycomb or wheel-like patterns on higher layers of the network. After the first convolution/pool layer, the objective is to detect combinations of features from previous layers. Here is a great read on the convolutional neural networks (CNN).
The diagram below represents the convolutional filter along with the input image.
Pooling layers are important to Convolutional Neural Networks. They help to reduce computational overhead and increase the receptive fields of proceeding convolutional operations. They aim to produce downsampled volumes that closely resemble the input volume while, ideally, also being computationally and memory efficient.
The most common form of a ConvNet architecture stacks a few CONV-RELU layers (as shown in below diagram), follows them with POOL layers, and repeats this pattern until the image has been merged spatially to a small size. At some point, it is common to transition to fully-connected layers. The last fully-connected layer holds the output, such as the class scores. The image below represents the convolutional neural network including convolutional layers, polling layer.
Check out some of the my following posts on CNN:
- Convolutional Neural Network (CNN) – Simply Explained
- CNN Basic Architecture for Classification & Segmentation
- Keras CNN Image Classification Example
Real-world applications of Convolutional neural network (CNN)
Convolutional neural networks (CNNs) are remarkably successful in many computer vision tasks. Here are some real-world applications of CNN:
- Face detection: CNNs have been used to detect faces within images. The network takes an image as the input and produces a set of values that represent characteristics of faces or facial features at different parts of the image. CNN has shown improved accuracy over previous algorithms, identifying faces 97% of the time according to various research papers. CNN can also be used to help reduce the amount of distortion in a face. CNNs can detect features such as eyes, nose, and mouth with great accuracy reducing distortions from things like angles or shadows on faces.
- Facial emotion recognition: CNNs have been used to help distinguish between different facial expressions such as anger, sadness, or happiness. CNNs can also be adapted to perform well with various lighting conditions and angles of faces within images.
- Object detection: CNN has been applied to object recognition across images by classifying objects based on shapes and patterns found within an image. CNN models have been created that can detect a wide range of objects from everyday items such as food, celebrities, or animals to more unusual ones including dollar bills and guns. Object detection is performed using techniques such as semantic or instance segmentation. CNNs have been used to localize and identify objects within images as well as create different views of those objects such as for use in drones or self-driving cars.
- Self-driving or autonomous cars: CNN has been used within the context of automated vehicles to enable them to detect obstacles or interpret street signs. CNNs have been used in conjunction with reinforcement learning, a branch of machine learning that focuses on positive and negative feedback from the environment to improve how CNN models respond when encountering certain situations.
- Auto translation: CNN is being used within the context of deep learning for automated translation between language pairs such as English and French. CNNs have been used to translate between language pairs such as Chinese and English with a high degree of accuracy, removing the need for word-for-word translation or bilingual human assistants.
- Next word prediction in sentence: CNNs have been used to predict the next word of a sentence given some context. CNN models can process multiple sentences and learn which words typically follow others, such as “I am from India” followed by “I speak Hindi.”
- Handwritten character recognition: CNNs can be used to recognize handwritten characters. CNNs take the image of a character as an input and break it down into smaller sections, identifying points that can connect or overlap with other points in order to determine the shape of the larger character. CNN models have been created that are able to identify different languages including Chinese, Arabic, and Russian even when they’re written differently.
- X-ray image analysis: CNNs have been used for medical imaging to identify tumors or other abnormalities in X-ray images. CNN models can take an image of a human body part, such as the knee, and determine where within that image there might be a tumor based on previous similar images processed by CNN networks. CNN models can also be used to determine abnormalities from X-ray images. CNNs have been used to determine which area of an X-ray image contains a tumor or other abnormalities such as fractured bones.
- Cancer detection: CNNs have been used to detect cancer in medical images such as mammograms and CT scans. CNN models take the image of a patient and compare it against database images that contain similar characteristics, identifying when there are signs present within an image that indicate malignancy or damage to cells due both to genetics and environmental factors such as smoking habits. CNN models are able to produce highly accurate results and CNNs have even been able to identify cancerous cells with an accuracy of 95% compared to the 85-90% rate that pathologists were capable of identifying.
- Visual question answering: CNN has also been applied to visual question answering which is the task of asking a natural language question about an image and then providing an accurate answer based on that image. CNNs can take an image as input and return a natural language answer to any question asked about that image.
- Image captioning: CNN is also being used for the task of generating short captions describing what’s contained within new images fed into CNN networks or processing multiple images at once with existing ones, such as those found on social media sites. CNN models can take a sequence of images as input and generate one or more sentences that describe what’s contained within those images.
- Biometric authentication: CNN has been used for biometric authentication of user identity by identifying certain physical characteristics associated with a person’s face. CNN models can train on images or videos of people and generate an output vector that identifies specific facial features, such as the distance between eyes, nose shape, lip curvature, etc. CNN models have also identified different emotional expressions based on facial images or videos of people, such as happy or sad. CNNs can also detect if a person is blinking in an image and determine the overall shape of facial images containing multiple frames, identifying key points on each frame that are useful for training CNN models to understand what’s contained within those images.
- Document classification: CNNs have been used to classify documents into different categories. CNN models can identify which category a document belongs to based on the content of that document, such as articles about sports or politics. CNN networks are able to use both text and images in order to better understand what’s contained within a specific document by identifying keywords and phrases related to the topic of that document. CNN models have also been used to summarize documents based on their content, identifying key points within a document and explaining what’s contained in those key points.
- 3D medical image segmentation: CNN has been used for the task of segmenting medical imaging scans, such as MRI images. CNN models can take an image slice from a three-dimensional scan and determine where within that image there are different tissue types based on previous similar images processed by CNN networks
CNN has been used in a variety of real-world applications, including cancer detection and biometric authentication. CNN can also be applied to visual question answering or image captioning where CNN networks take an input image and generate natural language answers about that image. CNNs have even been able to summarize documents based on their content by identifying key points within those documents. If you want to learn more about CNNs, there are many CNN-based projects on GitHub that you can use to build CNN models for your own applications. Alternatively, feel free to reach out to us via email.