Preface

With self-driving cars (SDCs) being an emerging subject in the field of artificial intelligence, data scientists have now focused their interest on building autonomous cars. This book is a comprehensive guide to using deep learning and computer vision techniques to develop SDCs.

The book starts by covering the basics of SDCs and deep neural network techniques that are required to get up and running with building your autonomous car. Once you are comfortable with the basics, you'll learn how to implement the convolution neural network. As you advance, you'll use deep learning methods to perform a variety of tasks such as finding lane lines, improving the image classifier, and road sign detection. Furthermore, you'll delve into the basic structure and workings of a semantic segmentation model, and even get to grips with detecting cars using semantic segmentation. The book also covers advanced applications such as behavior cloning and vehicle detection using OpenCV and advance deep learning methodologies.

By the end of this book, you'll have learned how to implement various neural networks to develop autonomous vehicle solutions using modern libraries from the Python environment.

Who this book is for

This book is for you if you're a deep learning engineer, AI engineer, or anyone looking to implement or start with deep learning and computer vision techniques to build self-driving blueprint solutions. This book will also help you solve real-world problems using the Python ecosystem. Some Python programming experience and a basic understanding of deep learning are expected.

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 Kerascovers 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.

To get the most out of this book

Let's look at what you need to get the most out the book:

  • Some Python programming experience and a basic understanding of deep learning are expected.
  • The execution of the code while reading the book will help you to get the most out of it.

Software/Hardware covered in the book

OS Requirements

Install Python 3.7 with latest Anaconda environment

Window, Linux or Mac minimum 8 GB RAM

Install deep learning libraries TensorFlow 2.0 and KERAS 2.3.4

Window, Linux or Mac minimum 8 GB RAM

Install image processing library OpenCV

Window, Linux or Mac minimum 8 GB RAM

 

If you are using the digital version of this book, we advise you to type the code yourself or access the code via the GitHub repository (link available in the next section). Doing so will help you avoid any potential errors related to the copying and pasting of code.

Download the example code files

You can download the example code files for this book from your account at www.packt.com. If you purchased this book elsewhere, you can visit www.packt.com/support and register to have the files emailed directly to you.

You can download the code files by following these steps:

  1. Log in or register at www.packt.com.
  2. Select the SUPPORT tab.
  3. Click on Code Downloads & Errata.
  4. Enter the name of the book in the Search box and follow the onscreen instructions.

Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:

  • WinRAR/7-Zip for Windows
  • Zipeg/iZip/UnRarX for Mac
  • 7-Zip/PeaZip for Linux

The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/Applied-Deep-Learning-and-Computer-Vision-for-Self-Driving-CarsIn case there's an update to the code, it will be updated on the existing GitHub repository.

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!

Download the color images

We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: https://static.packt-cdn.com/downloads/9781838646301_ColorImages.pdf.

Conventions used

There are a number of text conventions used throughout this book.

CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "In this function, anything below 0 will be set to 0."

A block of code is set as follows:

In[1]: import tensorflow as tf
In[2]: from tensorflow import keras
In[3]: from tensorflow.keras import layers

Bold: Indicates a new term, an important word, or words that you see onscreen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "The project is now called Waymo."

Warnings or important notes appear like this.
Tips and tricks appear like this.

Get in touch

Feedback from our readers is always welcome.

General feedback: If you have questions about any aspect of this book, mention the book title in the subject of your message and email us at [email protected].

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packt.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.

Piracy: If you come across any illegal copies of our works in any form on the Internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.

Reviews

Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!

For more information about Packt, please visit packt.com.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.119.11.28