Explore self-driving car technology using deep learning and artificial intelligence techniques and libraries such as TensorFlow, Keras, and OpenCV
▶Book Description
Thanks to a number of recent breakthroughs, self-driving car technology is now an emerging subject in the field of artificial intelligence and has shifted data scientists' focus to building autonomous cars that will transform the automotive industry. This book is a comprehensive guide to use deep learning and computer vision techniques to develop autonomous cars.
Starting with the basics of self-driving cars (SDCs), this book will take you through the deep neural network techniques required to get up and running with building your autonomous vehicle. Once you are comfortable with the basics, you'll delve into advanced computer vision techniques and learn how to use deep learning methods to perform a variety of computer vision tasks such as finding lane lines, improving image classification, and so on. You will explore the basic structure and working of a semantic segmentation model and get to grips with detecting cars using semantic segmentation. The book also covers advanced applications such as behavior-cloning and vehicle detection using OpenCV, transfer learning, and deep learning methodologies to train SDCs to mimic human driving.
By the end of this book, you'll have learned how to implement a variety of neural networks to develop your own autonomous vehicle using modern Python libraries.
▶What you will learn
⦁Implement deep neural network from scratch using the Keras library
⦁Understand the importance of deep learning in self-driving cars
⦁Get to grips with feature extraction techniques in image processing using the OpenCV library
⦁Design a software pipeline that detects lane lines in videos
⦁Implement a convolutional neural network (CNN) image classifier for traffic signal signs
⦁Train and test neural networks for behavioral-cloning by driving a car in a virtual simulator
⦁Discover various state-of-the-art semantic segmentation and object detection architectures
▶Key Features
⦁Build and train powerful neural network models to build an autonomous car
⦁Implement computer vision, deep learning, and AI techniques to create automotive algorithms
⦁Overcome the challenges faced while automating different aspects of driving using modern Python libraries and architectures
▶Who This Book Is For
If you are a deep learning engineer, AI researcher, or anyone looking to implement deep learning and computer vision techniques to build self-driving blueprint solutions, this book is for you. Anyone who wants to learn how various automotive-related algorithms are built, will also find this book useful. Python programming experience, along with a basic understanding of deep learning, is necessary to get the most of this book.
▶What this book covers
⦁ Chapter 1, The Foundation of Self-Driving Cars, talks about the history and evolution of SDCs. It briefs you on different approaches used in SDCs. It also covers details about the advantages and disadvantages of SDCs, the challenges in creating them, as well as the levels of autonomy of an SDC.
⦁ Chapter 2, Dive Deep into Deep Neural Networks, covers how to go from a simple neural network to a deep neural network. We will learn about many concepts such as the activation function, normalization, regularization, and dropouts to make the training more robust, so we can train a network more efficiently.
⦁ Chapter 3, Implementing a Deep Learning Model Using Keras, covers the step-by-step implementation of a deep learning model using Keras. We are going to implement a deep learning model using Keras with the Auto-mpg dataset.
⦁ Chapter 4, Computer Vision for Self-Driving Cars, introduces advanced computer vision techniques for SDCs. This is one of the important chapters to get into computer vision. In this chapter, we will cover different OpenCV techniques that help in image preprocessing and feature extraction in SDC business problems.
⦁ Chapter 5, Finding Road Markings Using OpenCV, walks you through writing a software pipeline to identify the lane boundaries in a video from the front-facing camera in a SDC. This is a starter project using OpenCV to get into SDCs.
⦁ Chapter 6, Improving the Image Classifier with CNN, covers how to go from a simple neural network to a advance deep neural network. In this chapter, we will learn about the theory behind the convolutional neural network, and how a convolutional neural network helps to improve the performance of an image classifier. We will implement an image classifier project using the MNIST dataset.
⦁ Chapter 7, Road Sign Detection Using Deep Learning, looks at the training of a neural network to implement a traffic sign detector. This is the next step toward SDC implementation. In this chapter, we will create a model that reliably classified traffic signs, and learned to identify their most appropriate features independently.
⦁ Chapter 8, The Principles and Foundations of Semantic Segmentation, covers the basic structure and workings of semantic segmentation models, and all of the latest state-of-the-art methods.
⦁ Chapter 9, Implementation of Semantic Segmentation, looks at the implementation of ENET semantic segmentation architecture to detect pedestrians, vehicles, and so on. We will learn about the techniques we can apply to semantic segmentation using OpenCV, deep learning, and the ENet architecture. We will use the pre-trained ENet model to perform semantic segmentation on both images and video streams.
⦁ Chapter 10, Behavioral Cloning Using Deep Learning, implements behavioral cloning. Here, cloning means that our learning program will copy and clone human behavior such as our steering actions to mimic human driving. We will implement a behavior cloning project and test it in a simulator.
⦁ Chapter 11, Vehicle Detection Using OpenCV and Deep Learning, implements vehicle detection for SDCs using OpenCV and the pre-trained deep learning model YOLO. Using this model, we will create a software pipeline to perform object prediction on both images and videos.
⦁ Chapter 12, Next Steps, summarizes the previous chapters and ways to enhance the learning. This chapter also briefs you on sensor fusion, and covers techniques that can be tried out for advanced learning in SDCs.