Hands-On Vision and Behavior for Self-Driving Cars Explore visual perception, lane detection, and object classification with Python 3 and OpenCV 4
A practical guide to learning visual perception for self-driving cars for computer vision and autonomous system engineers Key Features * Explore the building blocks of the visual perception system in self-driving cars * Identify objects and lanes to define the boundary of driving surfaces using open...
Gespeichert in:
| Hauptverfasser: | , |
|---|---|
| Format: | E-Book |
| Sprache: | Englisch |
| Veröffentlicht: |
Birmingham
Packt Publishing
2020
Packt Publishing, Limited Packt Publishing Limited |
| Ausgabe: | 1 |
| Schlagworte: | |
| ISBN: | 9781800201934, 1800201931, 1800203586, 9781800203587 |
| Online-Zugang: | Volltext |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Inhaltsangabe:
- Cover -- Copyright -- About PACKT -- Contributors -- Table of Contents -- Preface -- Section 1: OpenCV and Sensors and Signals -- Chapter 1: OpenCV Basics and Camera Calibration -- Technical requirements -- Introduction to OpenCV and NumPy -- OpenCV and NumPy -- Image size -- Grayscale images -- RGB images -- Working with image files -- Working with video files -- Working with webcams -- Manipulating images -- Flipping an image -- Blurring an image -- Changing contrast, brightness, and gamma -- Drawing rectangles and text -- Pedestrian detection using HOG -- Sliding window -- Using HOG with OpenCV -- Introduction to the camera -- Camera terminology -- The components of a camera -- Considerations for choosing a camera -- Strengths and weaknesses of cameras -- Camera calibration with OpenCV -- Distortion detection -- Calibration -- Summary -- Questions -- Chapter 2: Understanding and Working with Signals -- Technical requirements -- Understanding signal types -- Analog versus digital -- Serial versus parallel -- Universal Asynchronous Receive and Transmit (UART) -- Differential versus single-ended -- I2C -- SPI -- Framed-based serial protocols -- Understanding CAN -- Ethernet and internet protocols -- Understanding UDP -- Understanding TCP -- Summary -- Questions -- Further reading -- Open source protocol tools -- Chapter 3: Lane Detection -- Technical requirements -- How to perform thresholding -- How thresholding works on different color spaces -- RGB/BGR -- HLS -- HSV -- LAB -- YCbCr -- Our choice -- Perspective correction -- Edge detection -- Interpolated threshold -- Combined threshold -- Finding the lanes using histograms -- The sliding window algorithm -- Initialization -- Coordinates of the sliding windows -- Polynomial fitting -- Enhancing a video -- Partial histogram -- Rolling average -- Summary -- Questions
- Technical requirements -- Detecting pedestrians, vehicles, and traffic lights with SSD -- Collecting some images with Carla -- Understanding SSD -- Discovering the TensorFlow detection model zoo -- Downloading and loading SSD -- Running SSD -- Annotating the image -- Detecting the color of a traffic light -- Creating a traffic light dataset -- Understanding transfer learning -- Getting to know ImageNet -- Discovering AlexNet -- Using Inception for image classification -- Using Inception for transfer learning -- Feeding our dataset to Inception -- Performance with transfer learning -- Improving transfer learning -- Recognizing traffic lights and their colors -- Summary -- Questions -- Further reading -- Chapter 8: Behavioral Cloning -- Technical requirements -- Teaching a neural network how to drive with behavioral cloning -- Introducing DAVE-2 -- Getting to know manual_control.py -- Recording one video stream -- Modeling the neural network -- Training a neural network for regression -- Visualizing the saliency maps -- Integrating the neural network with Carla -- Self-driving! -- Training bigger datasets using generators -- Augmenting data the hard way -- Summary -- Questions -- Further reading -- Chapter 9: Semantic Segmentation -- Technical requirements -- Introducing semantic segmentation -- Defining our goal -- Collecting the dataset -- Modifying synchronous_mode.py -- Understanding DenseNet for classification -- DenseNet from a bird's-eye view -- Understanding the dense blocks -- Segmenting images with CNN -- Adapting DenseNet for semantic segmentation -- Coding the blocks of FC-DenseNet -- Putting all the pieces together -- Feeding the network -- Running the neural network -- Improving bad semantic segmentation -- Summary -- Questions -- Further reading -- Section 3: Mapping, Controls, and Signals
- Chapter 10: Steering, Throttle, and Brake Control -- Technical requirements -- Why do you need controls? -- What is a controller? -- Types of controllers -- PID -- MPC -- Implementing PID in CARLA -- Installing CARLA -- Cloning Packt-Town04-PID.py -- Walking through your Packt-Town04-PID.py control script -- PIDLongitudinalController -- PIDLateralController -- Running the script -- An example MPC in C++ -- Summary -- Questions -- Further reading -- Chapter 11: Mapping Our Environments -- Technical requirements -- Why you need maps and localization -- Maps -- Localization -- Types of mapping and localization -- Simultaneous localization and mapping (SLAM) -- Open source mapping tools -- SLAM with an Ouster lidar and Google Cartographer -- Ouster sensor -- The repo -- Getting started with cartographer_ros -- Cartographer_ros configuration -- Docker image -- Summary -- Questions -- Further reading -- Assessments -- Chapter 1 -- Chapter 2 -- Chapter 3 -- Chapter 4 -- Chapter 5 -- Chapter 6 -- Chapter 7 -- Chapter 8 -- Chapter 9 -- Chapter 10 -- Chapter 11 -- Other Books You May Enjoy -- Index
- Section 2: Improving How the Self-Driving Car Works with Deep Learning and Neural Networks -- Chapter 4: Deep Learning with Neural Networks -- Technical requirements -- Understanding machine learning and neural networks -- Neural networks -- Neurons -- Parameters -- The success of deep learning -- Learning about convolutional neural networks -- Convolutions -- Why are convolutions so great? -- Getting started with Keras and TensorFlow -- Requirements -- Detecting MNIST handwritten digits -- What did we just load? -- Training samples and labels -- One-hot encoding -- Training and testing datasets -- Defining the model of the neural network -- LeNet -- The code -- The architecture -- Training a neural network -- CIFAR-10 -- Summary -- Questions -- Further reading -- Chapter 5: Deep Learning Workflow -- Technical requirements -- Obtaining the dataset -- Datasets in the Keras module -- Existing datasets -- Your custom dataset -- Understanding the three datasets -- Splitting the dataset -- Understanding classifiers -- Creating a real-world dataset -- Data augmentation -- The model -- Tuning convolutional layers -- Tuning MaxPooling -- Tuning the dense layer -- How to train the network -- Random initialization -- Overfitting and underfitting -- Visualizing the activations -- Inference -- Retraining -- Summary -- Questions -- Chapter 6: Improving Your Neural Network -- Technical requirements -- A bigger model -- The starting point -- Improving the speed -- Increasing the depth -- A more efficient network -- Building a smarter network with batch normalization -- Choosing the right batch size -- Early stopping -- Improving the dataset with data augmentation -- Improving the validation accuracy with dropout -- Applying the model to MNIST -- Now it's your turn! -- Summary -- Questions -- Chapter 7: Detecting Pedestrians and Traffic Lights
- Hands-On Vision and Behavior for Self-Driving Cars: Explore visual perception, lane detection, and object classification with Python 3 and OpenCV 4

