We may earn an affiliate commission when you visit our partners.
Course image
Sundog Education by Frank Kane, Frank Kane, Dr. Ryan Ahmed, Ph.D., MBA, Mitchell Bouchard, and Sundog Education Team

Autonomous Cars: Computer Vision and Deep Learning

Read more

Autonomous Cars: Computer Vision and Deep Learning

The automotive industry is experiencing a paradigm shift from conventional, human-driven vehicles into self-driving, artificial intelligence-powered vehicles. Self-driving vehicles offer a safe, efficient, and cost effective solution that will dramatically redefine the future of human mobility. Self-driving cars are expected to save over half a million lives and generate enormous economic opportunities in excess of $1 trillion dollars by 2035. The automotive industry is on a billion-dollar quest to deploy the most technologically advanced vehicles on the road.

As the world advances towards a driverless future, the need for experienced engineers and researchers in this emerging new field has never been more crucial.

The purpose of this course is to provide students with knowledge of key aspects of design and development of self-driving vehicles. The course provides students with practical experience in various self-driving vehicles concepts such as machine learning and computer vision. Concepts such as lane detection, traffic sign classification, vehicle/object detection, artificial intelligence, and deep learning will be presented. The course is targeted towards students wanting to gain a fundamental understanding of self-driving vehicles control. Basic knowledge of programming is recommended. However, these topics will be extensively covered during early course lectures; therefore, the course has no prerequisites, and is open to any student with basic programming knowledge. Students who enroll in this self-driving car course will master driverless car technologies that are going to reshape the future of transportation.

Tools and algorithms we'll cover include:

  • OpenCV

  • Deep Learning and Artificial Neural Networks

  • Convolutional Neural Networks

  • Template matching

  • HOG feature extraction

  • Ryan Ahmed with a PhD in engineering focusing on electric vehicle control systems, and Frank Kane, who spent 9 years at Amazon specializing in machine learning. Together, Frank and Dr. Ahmed have taught over 500,000 students around the world on Udemy alone.

    Students of our popular course, "Data Science, Deep Learning, and Machine Learning with Python" may find some of the topics to be a review of what was covered there, seen through the lens of self-driving cars. But, most of the course focuses on topics we've never covered before, specific to computer vision techniques used in autonomous vehicles. There are plenty of new, valuable skills to be learned here.

Enroll now

What's inside

Learning objectives

  • Automatically detect lane markings in images
  • Detect cars and pedestrians using a trained classifier and with svm
  • Classify traffic signs using convolutional neural networks
  • Identify other vehicles in images using template matching
  • Build deep neural networks with tensorflow and keras
  • Analyze and visualize data with numpy, pandas, matplotlib, and seaborn
  • Process image data using opencv
  • Calibrate cameras in python, correcting for distortion
  • Sharpen and blur images with convolution
  • Detect edges in images with sobel, laplace, and canny
  • Transform images through translation, rotation, resizing, and perspective transform
  • Extract image features with hog
  • Detect object corners with harris
  • Classify data with machine learning techniques including regression, decision trees, naive bayes, and svm
  • Classify data with artificial neural networks and deep learning
  • Show more
  • Show less

Syllabus

Write and execute Python code within a Jupyter Notebook using Anaconda.
Introduction

Get everything you need for the course installed: The Anaconda scientific Python development environment, the OpenCV computer vision package, the Tensorflow package for building artificial neural networks, and the code and data that make up the course materials.

Read more

Let's try out your new environment by doing real-time edge detection on a live video stream from your webcam, within a Jupyter notebook. We'll also do a quick overview of how Jupyter notebooks work.

Udemy 101: Getting the Most From This Course
Important note
Understand the history of autonomous vehicles, and the objectives of this course.

We'll cover the history of self-driving cars, which starts in 1925 and includes a lot of exciting progress that's been largely forgotten!

We'll quickly review the course outline, and give some guidance on which sections you might be able so skip given your prior experience.

Write Python code, after learning what's unique about it compared to other languages.

We'll briefly cover why whitespace is important in Python and how it's used, how to import packages of existing code libraries, and how to use lists in Python.

We'll continue diving into Python data structures with tuples and dictionaries, and examples of using them.

We'll cover the syntax of functions in Python, how to pass functions around as parameters, and lambda functions. We'll also see how boolean operations like equality and or work.

We'll see how for and while loops with in Python, and challenge you to a very simple exercise to practice what you've learned so far.

We'll walk through some examples of using the Pandas package, to slice and dice some fake video index data from cars.

We'll cover the different charts that MatPlotLib can produce from our data, and how to load and view images.

Seaborn both sits on top of Matplotlib to make it better, and introduces new kinds of visualization tools that can help you extract meaning from data. We'll walk through a bunch of examples using real fuel efficiency data for 2019 cars.

Process images, detect lane lines and edges, and sharpen and blur images.
What is computer vision and why is it important?
Humans vs. Computers Vision system
what is an image and how is it digitally stored?
[Activity] View colored image and convert RGB to Gray
[Activity] Detect lane lines in gray scale image
[Activity] Detect lane lines in colored image
What are the challenges of color selection technique?
Color Spaces
[Activity] Convert RGB to HSV color spaces and merge/split channels
Convolutions - Sharpening and Blurring
[Activity] Convolutions - Sharpening and Blurring
Edge Detection and Gradient Calculations (Sobel, Laplace and Canny)
[Activity] Edge Detection and Gradient Calculations (Sobel, Laplace and Canny)
[Activity] Project #1: Canny Sobel and Laplace Edge Detection using Webcam
Normalize images using rotation, translation, resizing, cropping, Hough transforms, and perspective transforms. Find lane lines in a video stream with Python and OpenCV.
Image Transformation - Rotations, Translation and Resizing
[Activity] Code to perform rotation, translation and resizing
Image Transformations – Perspective transform
[Activity] Perform non-affine image transformation on a traffic sign image
Image cropping dilation and erosion
[Activity] Code to perform Image cropping dilation and erosion
Region of interest masking
[Activity] Code to define the region of interest
Hough transform theory
[Activity] Hough transform – practical example in python
Project Solution: Hough transform to detect lane lines in an image
Identify objects using template matching, detect corners of objects, use image pyramids, calibrate cameras, and detect objects with trained classifiers.
Image Features and their importance for object detection
[Activity] Find a truck in an image manually!
Template Matching - Find a Truck
[Activity] Project Solution: Find a Truck Using Template Matching
Corner detection – Harris
[Activity] Code to perform corner detection
Image Scaling – Pyramiding up/down
[Activity] Code to perform Image pyramiding
Histogram of colors
[Activity] Code to obtain color histogram
Histogram of Oriented Gradients (HOG)
[Activity] Code to perform HOG Feature extraction
Feature Extraction - SIFT, SURF, FAST and ORB
[Activity] FAST/ORB Feature Extraction in OpenCV
Train, test, and evaluate machine learning models - including linear regression, logistic regression, and decision trees.

Let's discuss how machine learning works, and how it fits in with the world of AI and deep learning.

Learn how train/test and K-fold cross-validation helps us to prevent "overfitting" models to the data they were trained with.

We'll go in depth on how linear regression learns how to fit a line to observed data, to create a simple model we can use to predict new observations.

Let's use linear regression to build a model mapping road conditions to vehicle speed.

Logistic regression builds a model that classifies data into one of two categories.

Let's practice using logistic regression to predict whether a car should go fast or slow, given distance to an upcoming bump and its size.

Decision trees build up a flowchart-like model, that classifies data based on various decision points that branch off to others.

In this activity, we'll implement the example from the previous lecture of predicting hiring decisions based on candidate attributes, and also see what happens when we use decision trees for the same logistic regression sample of predicting vehicle speed for an upcoming bump in the road.

Classify data with Naive Bayes and Support Vector Machines, and use SVM to detect vehicles and pedestrians in a video stream.

We'll cover Bayes Theorem and how it can help us understand conditional probabilities, and apply it to Naive Bayes to classify email as spam or "ham." 

We'll build a real spam classifier using Naive Bayes, and see how it well it works on our problem of classifying vehicle speeds based on upcoming obstacles in the road.

Support Vector Machines use the "Kernel Trick" to classify data. Hyperparameter tuning becomes important to find the right kernel to use, and the right parameters for that kernel.

We'll apply SVC to our vehicle speed classification problem, and illustrate hyperparameter tuning to find the best kernel and best set of parameters to use.

Project Solution: Detecting Cars Using SVM - Part #1
[Activity] Detecting Cars Using SVM - Part #2
[Activity] Project Solution: Detecting Cars Using SVM - Part #3
Build multilayer perceptrons with artificial neural networks in Python.
Introduction: What are Artificial Neural Networks and how do they learn?
Single Neuron Perceptron Model
Activation Functions
ANN Training and dataset split
Practical Example - Vehicle Speed Determination
Code to build a perceptron for binary classification
Backpropagation Training
Code to Train a perceptron for binary classification
Two and Multi-layer Perceptron ANN
Example 1 - Build Multi-layer perceptron for binary classification
Example 2 - Build Multi-layer perceptron for binary classification
Create a logistic classifier using a deep neural network implemented with Keras and Tensorflow.

We'll talk about what Deep Learning is, and how Tensorflow works at a low level.

We'll explore how to construct deep neural networks for binary and multi-class classification with Keras, the importance of normalizing your input data, and how one-hot encoding is used to translate categories into a representation that's compatible with neural nets.

We'll use Keras to easily experiment with a variety of network topologies to apply deep learning to our "car approaching a bump" classification problem.

We'll go into more depth on activation functions and why ReLU is popular, and cover techniques for preventing overfitting including Dropout layers.

We'll run our previous neural network longer to make some overfitting happen, and see how a Dropout layer in Keras can improve accuracy by preventing overfitting.

Identify objects in images with Convolutional Neural Networks and LeNET

We'll introduce the concepts of CNN's, and how they are inspired by the biology of your visual cortex.

See how easy it is to implement a CNN using Tensorflow's Keras API.

Let's install tensorflow-gpu to make our CNN's run faster, and prepare our image data for training our CNN.

We'll classify real images from the cifar10 data set using our simple CNN, and analyze the results.

Max Pooling reduces image data down, which can dramatically speed up the processing of your CNN.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Reinforces a foundation in Python that will be essential for working with the AI algorithms used in computer vision
Teaches fundamental computer vision techniques that are used in the development of autonomous vehicles
Provides a foundational understanding of machine learning and deep learning concepts as they relate to autonomous vehicles
Develops strong coding skills with a focus on Python, NumPy, Pandas, Matplotlib, Seaborn, OpenCV, and Tensorflow
Taught by experts in the field: Frank Kane and Dr. Ryan Ahmed, who have extensive experience in machine learning and computer vision
Covers cutting-edge topics such as lane detection, traffic sign classification, vehicle detection, and deep neural networks

Save this course

Save Autonomous Cars: Deep Learning and Computer Vision in Python to your list so you can find it easily later:
Save

Reviews summary

Good course, needs more updates

Learners say that this course teaches important topics in deep learning and computer vision programming such as Python, neural networks, image recognition, and others relevant to autonomous cars. While the information taught is solid and has helped learners understand these concepts better, they noted that the course materials may need some updates. There were some issues with Jupyter code samples not running properly. Some learners took extra steps to find the issues and fix them but others learners may not do this. One learner noted that towards the end of the course, one of the final activity videos was replaying previous course videos, which may have been an upload error.
Taught important topics in computer vision and deep learning programming.
"The course information is solid and I'm coming away with a much better understanding of python, Neural Networks, Deep Learning, image recognition and the tools that are used for Autonomous cars."
Course materials may need some updates.
"However, the course material may need some updates."
"There were a few instances where the Jupyter code samples didn't run."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Autonomous Cars: Deep Learning and Computer Vision in Python with these activities:
Organize Your Course Materials
Stay organized and maximize your learning by establishing a system for your course materials.
Show steps
  • Review all course materials.
  • Identify key concepts, resources, and due dates.
  • Develop a filing system for notes, assignments, and references.
Practice Writing Python Code
Gain proficiency in writing Python code by practicing regularly.
Show steps
  • Install Python and a development environment.
  • Complete online coding challenges.
  • Join a coding community.
Join a Study Group for Self-Driving Cars
Connect with other students and engage in discussions about self-driving cars to enhance your understanding.
Show steps
  • Find a study group or create one with fellow students.
  • Establish regular meeting times and a communication platform.
  • Discuss course materials, share knowledge, and work on projects together.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Review Deep Learning
Solidify your foundational knowledge on deep learning by reviewing the leading textbook on the subject.
View Deep Learning on Amazon
Show steps
  • Read the book's introduction and first chapter.
  • Work through the book's exercises.
  • Attend book club meetings to discuss the book's content.
Explore Advanced Topics in Computer Vision
Expand your expertise in computer vision by exploring advanced topics through tutorials.
Show steps
  • Identify areas in computer vision where you want to gain more knowledge.
  • Find reputable tutorials or online courses on those topics.
  • Complete the tutorials and apply what you learn.
Build a Mini Self-Driving Car Simulator
Apply your knowledge of computer vision and deep learning by building a scaled-down model of a self-driving car.
Show steps
  • Design the architecture of the simulator.
  • Implement the simulator using Python and open-source libraries.
  • Test the simulator and collect data.
Develop a Prototype for a Self-Driving Car Feature
Put your skills to the test by designing and building a prototype for a specific self-driving car feature.
Show steps
  • Identify a specific problem or feature you want to address.
  • Research existing solutions and develop an innovative approach.
  • Design and implement the prototype using Python and open-source libraries.

Career center

Learners who complete Autonomous Cars: Deep Learning and Computer Vision in Python will develop knowledge and skills that may be useful to these careers:
Autonomous Vehicle Engineer
Autonomous Vehicle Engineers design, develop, and test autonomous vehicles. This is a rapidly growing field that is expected to create many new jobs in the coming years. Autonomous Cars: Deep Learning and Computer Vision in Python will provide you with the skills you need to start a career in this exciting field. This course will teach you how to build and test autonomous vehicles, as well as how to use computer vision to perceive the environment around them.
Computer Vision Engineer
Develop the skills you need to build a successful career as a Computer Vision Engineer. In this role, you will use computer vision algorithms to solve real-world problems in fields such as robotics, healthcare, and manufacturing. Autonomous Cars: Deep Learning and Computer Vision in Python will help you to understand the fundamentals of computer vision. This course will help you learn how to detect and classify objects in images and videos, as well as how to track objects over time.
Data Scientist
In the world today, Data Scientists are some of the most highly sought-after professionals. Autonomous Cars: Deep Learning and Computer Vision in Python covers the foundational concepts that will help you to build a career as a Data Scientist. This course will help you understand how to process and visualize data, as well as how to build deep neural networks that can classify data with high accuracy. If you want to become a Data Scientist, this course may be a very valuable resource for you.
Machine Learning Engineer
Machine Learning Engineers are highly skilled professionals who build and maintain machine learning models. Autonomous Cars: Deep Learning and Computer Vision in Python will help you build a foundation in machine learning that will be essential for success in this role. This course will teach you how to train and test machine learning models, as well as how to deploy them to production. If you want to become a Machine Learning Engineer, this course is a great place to start.
Data Visualization Specialist
Data Visualization Specialists create visualizations of data to help people understand data. Autonomous Cars: Deep Learning and Computer Vision in Python can help you to build a foundation in data visualization that will be essential for success in this role. This course will teach you how to create visualizations that are clear and easy to understand.
Data Analyst
Data Analysts collect, clean, and analyze data to help businesses make informed decisions. Autonomous Cars: Deep Learning and Computer Vision in Python will help you to build a foundation in data analysis that will be essential for success in this role. This course will teach you how to use Python to analyze data, as well as how to visualize data in a clear and concise way.
Robotics Engineer
Robotics Engineers design, develop, and maintain robots. This is a rapidly growing field that offers a variety of exciting career opportunities. Autonomous Cars: Deep Learning and Computer Vision in Python will help you to build a foundation in robotics that will be essential for success in this role. This course will teach you how to build and control robots, as well as how to use computer vision to perceive the environment around them.
User Experience Designer
User Experience Designers design the user interface for software, hardware, and other products. Autonomous Cars: Deep Learning and Computer Vision in Python can help you to build a foundation in user experience design that will be essential for success in this role. This course will teach you how to design user interfaces that are easy to use and understand.
Interaction Designer
Interaction Designers design the way that users interact with products. Autonomous Cars: Deep Learning and Computer Vision in Python can help you to build a foundation in interaction design that will be essential for success in this role. This course will teach you how to design interactions that are intuitive and enjoyable.
Information Architect
Information Architects design the structure and organization of information. Autonomous Cars: Deep Learning and Computer Vision in Python can help you to build a foundation in information architecture that will be essential for success in this role. This course will teach you how to design information architectures that are clear and easy to navigate.
Technical Writer
Technical Writers create documentation for software, hardware, and other technical products. Autonomous Cars: Deep Learning and Computer Vision in Python will help you build a foundation in technical writing that will be essential for success in this role. This course will teach you how to write clear and concise documentation, as well as how to use tools to create and manage documentation.
Product Manager
Product Managers are responsible for the development and launch of new products. Autonomous Cars: Deep Learning and Computer Vision in Python can help you to build a foundation in product management that will be essential for success in this role. This course will teach you how to develop and launch new products, as well as how to manage a product team.
Project Manager
Project Managers are responsible for planning, executing, and closing projects. Autonomous Cars: Deep Learning and Computer Vision in Python can help you to build a foundation in project management that will be essential for success in this role. This course will teach you how to plan and execute projects, as well as how to manage a project team.
Business Analyst
Business Analysts help businesses to understand their needs and develop solutions to meet those needs. Autonomous Cars: Deep Learning and Computer Vision in Python can help you to build a foundation in business analysis that will be essential for success in this role. This course will teach you how to analyze business problems and develop solutions that meet the needs of the business.
Software Engineer
Autonomous Cars: Deep Learning and Computer Vision in Python can help you build a strong foundation in software engineering. This course will teach you how to write clean and efficient code, as well as how to test and debug your code. If you want to become a Software Engineer, this course is a great place to start.

Reading list

We've selected 12 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Autonomous Cars: Deep Learning and Computer Vision in Python.
Provides a practical guide to building deep learning models for computer vision tasks. It covers topics such as image classification, object detection, and image segmentation. It valuable resource for students, researchers, and practitioners in the field of computer vision.
Provides a comprehensive guide to using Python for data analysis. It covers topics such as data cleaning, data manipulation, and data visualization. It valuable resource for students, researchers, and practitioners in the field of data analysis.
Provides a comprehensive overview of statistical learning methods. It covers topics such as supervised learning, unsupervised learning, and model selection. It valuable resource for students, researchers, and practitioners in the field of machine learning.
Provides a comprehensive overview of pattern recognition and machine learning. It covers topics such as supervised learning, unsupervised learning, and model selection. It valuable resource for students, researchers, and practitioners in the field of machine learning.
Provides a comprehensive overview of deep learning. It covers topics such as neural networks, convolutional neural networks, and recurrent neural networks. It valuable resource for students, researchers, and practitioners in the field of deep learning.
Provides a comprehensive overview of computer vision. It covers topics such as image formation, feature detection, object recognition, and image processing. It valuable resource for students, researchers, and practitioners in the field of computer vision.
Provides a comprehensive overview of machine learning. It covers topics such as supervised learning, unsupervised learning, and model selection. It valuable resource for students, researchers, and practitioners in the field of machine learning.
Provides a comprehensive guide to using Python for deep learning. It covers topics such as neural networks, convolutional neural networks, and recurrent neural networks. It valuable resource for students, researchers, and practitioners in the field of deep learning.
Provides a practical guide to using machine learning in real-world applications. It covers topics such as data preparation, model selection, and model evaluation. It valuable resource for students, researchers, and practitioners in the field of machine learning.
Provides a comprehensive overview of deep learning. It covers topics such as neural networks, convolutional neural networks, and recurrent neural networks. It valuable resource for students, researchers, and practitioners in the field of deep learning.
Provides a comprehensive overview of machine learning. It covers topics such as supervised learning, unsupervised learning, and model selection. It valuable resource for students, researchers, and practitioners in the field of machine learning.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Autonomous Cars: Deep Learning and Computer Vision in Python.
Self-Driving Cars with Duckietown
Most relevant
Decision-Making for Autonomous Systems
Most relevant
Visual Perception for Self-Driving Cars
Most relevant
Machine Learning & Self-Driving Cars: Bootcamp with Python
Most relevant
Autonomous Cars: How Do They Work and Impact Us?
Most relevant
Self-Driving Cars Teach-Out
Most relevant
Bayesian Algorithms for Self-Driving Cars
Most relevant
Advanced Kalman Filtering and Sensor Fusion
Most relevant
Automobile Chassis Frame Structure | 汽车底盘构造
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser