Book Image

Applied Deep Learning and Computer Vision for Self-Driving Cars

By : Sumit Ranjan, Dr. S. Senthamilarasu
Book Image

Applied Deep Learning and Computer Vision for Self-Driving Cars

By: Sumit Ranjan, Dr. S. Senthamilarasu

Overview of this book

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.
Table of Contents (18 chapters)
1
Section 1: Deep Learning Foundation and SDC Basics
5
Section 2: Deep Learning and Computer Vision Techniques for SDC
10
Section 3: Semantic Segmentation for Self-Driving Cars
13
Section 4: Advanced Implementations

Smoothing the image

In this section, we will smooth the image with a Gaussian filter. Applying the GaussianBlur function from the OpenCV library reduces the noise in our image.

We will apply it using OpenCV, as follows:

  1. Start by importing OpenCV and numpy:
In[1]: import cv2
In[2]: import numpy as np
  1. In the next step, read the input image:
In[3]: image = cv2.imread('test_image.jpg')
In[4]: lanelines_image = np.copy(image)
  1. Now, we will convert the image into grayscale:

In[5]: gray_conversion= cv2.cvtColor(lanelines_image, cv2.COLOR_RGB2GRAY)
  1. Apply GaussianBlur using the OpenCV library:

In[6]: blur_conversion = cv2.GaussianBlur(gray_conversion, (5,5),0)
In[7]: cv2.imshow('input_image', blur_conversion)
In[8]: cv2.waitKey(0)
In[9]: cv2.destroyAllWindows()

The output is as follows:

Fig 5.3: Image after applying Gaussian blur

We smoothed the image and removed noise from it. In the next section, we will perform canny edge detection on the input image.

...