Machine Learning Algorithms in Autonomous Driving
Autonomous cars are very closely associated with Industrial IoT. IoT combined with other technologies such as machine learning, artificial intelligence, local computing etc are providing the essential technologies for autonomous cars. Very inquisitive questions for many is how are these autonomous cars functioning. What actually is working inside to make them work without drivers taking control of the wheel. Very well known that these days cars are equipped with a lot of sensors, actuators, and controllers. These end devices are driven by software sitting on various function-specific software running on ECUs ( Electronic Control Units). Machine learning software is also part of this set.
Machine learning is essential in self-driving cars because it continuously renders the surrounding environment and makes predictions of possible changes to those surroundings. Machine learning tasks in a self-driving car are mainly divided into four sub-tasks: object detection, object Identification or recognition, object classification, and object localization, and prediction of movement.
Machine learning algorithms can be loosely divided into four categories:
- regression algorithms;
- pattern recognition;
- cluster algorithms;
- decision matrix algorithms.
The type of regression algorithms that can be used for self-driving cars are:
- a Bayesian regression;
- neural network regression;
- decision forest regression.
In ADAS, images (radar or camera) play a very important role in localization and actuation, while the biggest challenge for self driving cars or for any algorithm is to develop an image-based model for prediction and feature selection. The type of regression algorithms that can be used for self-driving cars are a Bayesian regression, neural network regression, and decision forest regression, among others.
More about Neural networks, types and applications
Pattern Recognition Algorithms (Classification)
In ADAS, the images obtained through sensors possess all types of environmental data; filtering of the images is required to recognize instances of an object category by ruling out the irrelevant data points. Pattern recognition algorithms are good at ruling out unusual data points. Recognition of patterns in a data set is an important step before classifying the objects. These types of algorithms can also be defined as data reduction algorithms.
These algorithms help in reducing the data set by detecting object edges and fitting line segments (polylines) and circular arcs to the edges. Line segments are aligned to edges up to a corner, then a new line segment is started. Circular arcs are fit to sequences of line segments that approximate an arc. The image features (line segments and circular arcs) are combined in various ways to form the features that are used for recognizing an object.
The support vector machines (SVM) with histograms of oriented gradients (HOG) and principal component analysis (PCA) are the most common recognition algorithms used in ADAS. The Bayes decision rule and K nearest neighbor (KNN) are also used.
Sometimes the images obtained by the system are not clear and it is difficult to detect and locate objects. It is also possible that the classification algorithms may miss the object and fail to classify and report it to the system. The reason could be low-resolution images, very few data points or discontinuous data. This type of algorithm is good at discovering structure from data points. Like regression, it describes the class of problem and the class of methods. Clustering methods are typically organized by modeling approaches such as centroid-based and hierarchical. All methods are concerned with using the inherent structures in the data to best organize the data into groups of maximum commonality. The most commonly used type of algorithm is K-means, Multi-class Neural Network. More about Why 85% of Machine Learning Projects Fail and how to avoid this.
Decision Matrix Algorithms
This type of algorithm is good at systematically identifying, analyzing, and rating the performance of relationships between sets of values and information. These algorithms are mainly used for decision making. Whether a car needs to take a left turn or it needs to brake depends on the level of confidence the algorithms have on the classification, recognition, and prediction of the next movement of objects. These algorithms are models composed of multiple decision models independently trained and whose predictions are combined in some way to make the overall prediction while reducing the possibility of errors in decision making. The most commonly used algorithms are gradient boosting (GDM) and AdaBoosting.
This article was written by Anil Gupta, Co-founder of Magnos Technologies LLP. He has about 23 years of experience in Connected Cars, Connected Devices, Embedded software, Automotive Infotainment, Telematics, GIS, Energy, and Telecom domain. Recently Anil wrote a book entitled Artificial Intelligence, Machine Learning, Internet of Things and more – Frequently Asked Questions.