We may earn an affiliate commission when you visit our partners.
Course image
Iu Ayala

Interested in Machine Learning or Self-Driving Cars (i.e. Tesla)? Then this course is for you.

Read more

Interested in Machine Learning or Self-Driving Cars (i.e. Tesla)? Then this course is for you.

This course has been designed by a professional Data Scientist, expert in Autonomous Vehicles, with the goal of sharing my knowledge and help you understand how Self-Driving Cars work in a simple way.

Each topic is presented at three levels:

  • Introduction: the topic will be presented, initial intuition about it

  • Hands-On: practical lectures where we will learn by doing

  • [Optional] Deep dive: going deep into the maths to fully understand the topic

What tools will we use in the course?

  • Python: probably the most versatile programming language in the world, from websites to Deep Neural Networks, all can be done in Python

  • Python libraries: matplotlib, OpenCV, numpy, scikit-learn, keras, ... (those libraries make the possibilities of Python limitless)

  • Webots: a very powerful simulator, which free and open source but can provide a wide range of simulation scenarios (Self-Driving Cars, drones, quadrupeds, robotic arms, production lines, ...)

Who this course is for?

  • All-levels: there is no previous knowledge required, there is a section that will teach you how to program in Python

  • Maths/logic: High-school level is enough to understand everything.

Sections:

  • [Optional] Python sections: How to program in python, and how to use essential libraries

  • Computer Vision: teaches a computer how to see, and introduces key concepts for Neural Networks

  • Machine Learning: introduction, key concepts, and road sign classification

  • Collision Avoidance: so far we have used cameras, in this section we understand how radar and lidar sensors are used for self-driving cars, use them for collision avoidance, path planning

    • Help us understand the difference between Tesla and other car manufacturers, because Tesla doesn’t use radar sensors

  • Deep learning: we will use all the concepts that we have seen before in CV, in ML and CA, neural networks introduction, Behavioural Cloning

  • Control Theory: control systems is the glue that stitches all engineering fields together

    • If you are mainly interested in ML, you can only listen to the introduction for this section, but you should know that the initial Neural Networks were heavily influenced by CT

Who am I, and why am I qualified to talk about Self-driving cars?

  • Worked in self-driving motorbikes, boats and cars

  • Some of the biggest companies in the world

  • Over 8 years experience in the industry and a master in Robotic & CV

  • Always been interested in efficient learning, and used all the techniques that I’ve learned in this course

Enroll now

What's inside

Learning objectives

  • Master machine learning and python
  • Learn how to apply machine learning algorithms to develop a self-driving car from scratch
  • Understand why deep learning is such a revolution and use it to make the car drive like a human (behavioural cloning)
  • Simulate a self-driving car in a realistic environment using multiple techniques (computer vision, convolution neural networks, ...)
  • Create strong added value to your business
  • Gentle introduction to machine learning where all the key concepts are presented in an intuitive way
  • Code deep convolutional neural networks with keras (the most popular library)
  • Learn to apply computer vision and deep learning techniques to build automotive related algorithms
  • Understand how self driving cars work (sensors, actuators, speed control, ...)
  • Learn to code in python starting from the very beginning
  • Python libraires: numpy, sklearn (scikit-learn), keras, opencv, matplotlib
  • Show more
  • Show less

Syllabus

Understand why this is the right course for YOU!

Welcome aboard, future self-driving pioneers! ? Are you ready to embark on a journey that will transform the way you perceive technology and innovation? In this captivating first lecture, we're pulling back the curtain to reveal why this course is the ultimate key to unlocking the world of self-driving cars.


? Why You Should Be Excited:


? Revolutionize Your Knowledge: The self-driving car industry is changing the game. Discover how this course will equip you with the tools to stay ahead in the rapidly evolving landscape of autonomous vehicles.


? Demystify Complex Concepts: Have you ever wondered how a machine can drive itself? We break down intricate ideas into digestible chunks, ensuring that you'll not only understand but also master the art of self-driving technology.


? Tap into the Future: Self-driving cars are not just a trend; they're shaping our future. By delving into this course, you're tapping into a realm of knowledge that could lead to groundbreaking career opportunities and insights.


?️ What Awaits You:


✅ Dive into the core concepts of machine learning and artificial intelligence.

✅ Understand the nuts and bolts of computer vision and its pivotal role in self-driving technology.

✅ Demystify the magic of neural networks and deep learning, enabling you to train your own models.

✅ Grasp the power of control theory and its impact on the self-driving experience.

✅ Elevate your proficiency in Python programming and essential libraries.

✅ Get hands-on with exciting real-world projects and simulations.


? Ready to accelerate your learning journey and become part of the self-driving revolution? Buckle up and get ready to take the driver's seat in the world of innovation, transformation, and limitless possibilities.

Read more
How to Approach This Course?

Many people find that faster playback speeds allow them to better retain information from the videos they’re watching. When watching at a normal speed, some viewers may struggle to stay focused or pay attention for the entire duration of the video. By speeding up the video, they’re able to engage more fully and retain more information.

Source: https://www.thetechedvocate.org/why-people-watch-youtube-videos-at-faster-playback-speeds/#:~:text=For%20example%2C%20instructional%20videos%20or,YouTube%20videos%20at%20faster%20speeds.

Basic understanding about Python
Installation

--- Basic Understanding ---

Python types categorise values in the language, simplifying code debugging and maintenance. The built-in types include:

  • Integers (e.g., 1, 56, -23): Whole numbers without a decimal point.

  • Floats (e.g., 2.0, -8.5, 3.14): Numbers that require a decimal point.

  • Strings (e.g., "hello", 'Python'): Sequences of characters enclosed in quotes.

  • Lists (e.g., [1, 2, 3], ["a", "b", "c"]): Ordered collections of values, which can be of mixed types.

--- Advanced Insight ---

  • Custom Classes: Create your own types with specific attributes and methods, enhancing code organisation.

  • Type Hinting (e.g., def function(arg1: int, arg2: str) -> bool:): Specify expected data types, improving code readability and allowing better tooling support.

This video elucidates the significance of understanding types in Python, paving the way from fundamental concepts to advanced applications for more proficient coding.

Types in Python
List & Map
Operations
Statements
Functions
Classes
Classes Basic
Classes Inheritance
Object Oriented Programming
Libraries / Modules
Modules
Learn how to use some essential libraries with Python
Introduction to Python Libraries
Numpy
Matplotlib

Just a brief text

OpenCV

Just a quick test to ensure that you understood some basic OpenCV concepts, since we will use this library quite a lot

Other Libraries

This quick quiz is designed to ensure that you understood the power of python libraries :) 

Learn the Basics of Computer Vision and create an algorithm to drive an autonomous car
Introduction to Computer Vision
How Computers "See" Images?
Kernel & Convolution
Image Processing with Kernels
Thresholding
Road Segmentation
Why Webots?

Windows installation steps:

  1. Download the "webots-R2022a_setup.exe" installation file from our website.

  2. Double click on this file.

  3. Follow the installation instructions.

Use in Visual Studio Code:

  • Prerequisites: we need to have installed Python and Visual Studio Code, you can find how to install those in the first video of the Python section

  • Install the following Python libraries: numpy, opencv-python

    • You can find out how to install python libraries in the Python Libraries section (through pip install)

  • Click the "Windows Key" and write "Edit the system environment variables"

    • Create variable “WEBOTS_HOME” with content “C:\Program Files\Webots”

    • Create variable “PYTHONPATH” with content “%WEBOTS_HOME%/lib/controller/python3X”

      • WARNING: in the documentation says to use ${WEBOTS_HOME}, but doesn’t work

      • Change the last “X” for the minor revision number of your Python version

    • Add to “PATH”

      “%WEBOTS_HOME%\lib\controller”

      “%WEBOTS_HOME%\msys64\mingw64\bin”

      “%WEBOTS_HOME%\msys64\mingw64\bin\cpp”

    • Create variable “PYTHONIOENCODING” with content “UTF-8”

How to Install Webots in Linux?
Get The Code!
Webots too slow?
Webots Code: Explained
[Exercise]: Your Line Following Algorithm!
[Advanced] How to Read a Paper?
[Advanced] Paper: SIFT

This video is an practical example of how to read a paper from beginning to end.

Understand all the key concepts about Machine Learning
What's Machine Learning?
Train, Predict & Evaluate
Types of Machine Learning
ML for Self-Driving Cars
Implement, train and evaluate an image classifier (example: road sign classification)
Machine Learning Hands-On: Introduction
Feature Engineering
HOG
SVM
Performance Metrics
Download the Dataset
Code Explanation
[Exercise]: Modify the code
Useful ML Models
Bias Vs Variance
[Advanced] Paper: SVM
Understand the difference between using cameras and radars
Collision Avoidance: Introduction
Ranging Sensors
Cameras
Simulation
My Solution
[Exercise]: Your Solution
Path Planning
[Advanced] RRT Code
Understand the logic behind Deep Learning
Deep Learning: Introduction
How do Neural Networks Work?
How does a Neural Network Learn?
Convolutional Neural Networks
Code Example
Implement a Convolution Neural Network to make a car drive like a human
Deep Learning Hands-On: Introduction
Creating a Dataset
Training
See it drive!
[Exercise]: Train it yourself!
[Advanced] AlexNet
Learn about Control Theory, why is it still used and why it will never be replaced by Machine Learning / Deep Learning?
Why Learn Control Theory
Control Systems Map

Note: there is a mistake says "Machine Learning is the missing part of Machine Learning" should say "Machine Learning can't guarantee that it will produce a stable output"

Stability - Missing in Machine Learning
Open and Closed Loop Control

Video Note: Error of last point (orange) says 100, should say 0

PID - Introduction
PID Controller - Deep Dive
PID Controller - How to Tune it?
PID Controller - Why is it use SO much?
[Advanced] Paper: PID Controller Design

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Covers real-world applications and industry best practices
Prerequisite knowledge required, may not suit absolute beginners
Multi-modal learning, with videos, readings, and hands-on labs
Builds a solid foundation for beginners in machine learning and self-driving cars
Taught by a professional data scientist with experience in autonomous vehicles
Covers advanced topics like deep learning and control theory, suitable for experienced learners

Save this course

Save Machine Learning & Self-Driving Cars: Bootcamp with Python to your list so you can find it easily later:
Save

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 Machine Learning & Self-Driving Cars: Bootcamp with Python with these activities:
Understand the Architecture of a Self-Driving Car
Build a conceptual foundation for the course by reviewing the overall architecture of a self-driving car, its different components, and how they work together.
Show steps
  • Read Chapter 1 of the book
  • Research different types of sensors used in self-driving cars
  • Create a diagram of the architecture of a self-driving car
Practice Using Python and Libraries for Computer Vision
Enhance your computer vision skills by following guided tutorials on using Python, NumPy, and OpenCV, which are essential tools used in the course.
Browse courses on Python
Show steps
  • Follow the 'Python for Computer Vision' tutorial series
  • Complete the 'OpenCV for Beginners' course
  • Practice working with images using NumPy
Test Your Understanding of Convolutional Neural Networks
Solidify your understanding of convolutional neural networks (CNNs) by completing practice drills that test different aspects of CNNs, such as their architecture and how they are used for image classification.
Browse courses on Deep Learning
Show steps
  • Solve the 'MNIST Image Classification with CNNs' challenge
  • Answer questions on the 'Convolutional Neural Networks' quiz
  • Predict the classes of images using a pre-trained CNN model
Three other activities
Expand to see all activities and additional details
Show all six activities
Learn the Theoretical Foundations of Control Theory
Gain a deeper understanding of the theoretical concepts of control theory by reviewing a foundational textbook, which will provide insights into how these concepts apply to self-driving cars.
Show steps
  • Read Chapter 1-3 of the book
  • Solve the end-of-chapter exercises
  • Complete the online simulations
Attend a Workshop on Autonomous Vehicle Development
Get hands-on experience and learn from industry experts by attending a workshop focused on autonomous vehicle development.
Browse courses on Autonomous Vehicles
Show steps
  • Research and find a suitable workshop
  • Register for the workshop
  • Attend the workshop and actively participate
Contribute to OpenCV Projects
Enhance your understanding of OpenCV and computer vision by collaborating on open-source projects, allowing you to learn from others and contribute to the community.
Browse courses on OpenCV
Show steps
  • Identify an OpenCV project to contribute to
  • Read the documentation and understand the project's goals
  • Fork the repository and make your changes
  • Submit a pull request

Career center

Learners who complete Machine Learning & Self-Driving Cars: Bootcamp with Python will develop knowledge and skills that may be useful to these careers:
Robotics Engineer
Robotics Engineers design, build, and maintain robots. This course provides a strong foundation in computer vision, machine learning, and control theory, which are essential for success in this role. It also covers topics such as robot kinematics, dynamics, and control, which are important for developing robust and efficient robots.
Machine Learning Engineer
Machine Learning Engineers design and implement machine learning models to solve real-world problems. This course provides a comprehensive introduction to machine learning, including supervised and unsupervised learning, and deep learning. It also covers topics such as feature engineering, model evaluation, and deployment, which are essential for success in this role.
Data Scientist
Data Scientists use their expertise in statistics, machine learning, and data analysis to solve complex business problems. This course provides a strong foundation in these areas, and it also covers topics such as data visualization and communication, which are essential for success in this role.
Computer Vision Engineer
Computer Vision Engineers develop algorithms and software to enable computers to see and interpret images and videos. This course provides a comprehensive introduction to computer vision, including topics such as image processing, feature extraction, and object detection. It also covers topics such as deep learning and convolutional neural networks, which are essential for developing state-of-the-art computer vision systems.
Automotive Engineer
Automotive Engineers design, develop, and maintain vehicles. This course provides a strong foundation in computer vision, machine learning, and control theory, which are essential for success in this role. It also covers topics such as vehicle dynamics, powertrain systems, and safety systems, which are important for developing safe and efficient vehicles.
Control Systems Engineer
Control Systems Engineers design, implement, and maintain control systems to ensure that systems operate safely and efficiently. This course provides a strong foundation in control theory and control systems design, which are essential for success in this role. It also covers topics such as stability analysis, feedback control, and state-space methods, which are important for developing robust and reliable control systems.
Aerospace Engineer
Aerospace Engineers design, develop, and maintain aircraft, spacecraft, and other aerospace systems. This course provides a strong foundation in computer vision, machine learning, and control theory, which are essential for success in this role. It also covers topics such as aerodynamics, propulsion, and structural analysis, which are important for developing safe and efficient aerospace systems.
Systems Engineer
Systems Engineers design, develop, and maintain complex systems. This course provides a strong foundation in computer vision, machine learning, and control theory, which are essential for success in this role. It also covers topics such as system analysis, design, and integration, which are important for developing safe and efficient systems.
Chemical Engineer
Chemical Engineers design, develop, and maintain chemical processes. This course provides a strong foundation in computer vision, machine learning, and control theory, which are essential for success in this role. It also covers topics such as chemical reactions, thermodynamics, and fluid mechanics, which are important for developing safe and efficient chemical processes.
Biomedical Engineer
Biomedical Engineers design, develop, and maintain biomedical systems. This course provides a strong foundation in computer vision, machine learning, and control theory, which are essential for success in this role. It also covers topics such as biomaterials, biomechanics, and medical imaging, which are important for developing safe and efficient biomedical systems.
Electrical Engineer
Electrical Engineers design, develop, and maintain electrical systems. This course provides a strong foundation in computer vision, machine learning, and control theory, which are essential for success in this role. It also covers topics such as power systems, electronics, and control systems, which are important for developing safe and efficient electrical systems.
Materials Engineer
Materials Engineers design, develop, and maintain materials. This course provides a strong foundation in computer vision, machine learning, and control theory, which are essential for success in this role. It also covers topics such as materials science, mechanics, and thermodynamics, which are important for developing safe and efficient materials.
Mechanical Engineer
Mechanical Engineers design, develop, and maintain mechanical systems. This course provides a strong foundation in computer vision, machine learning, and control theory, which are essential for success in this role. It also covers topics such as mechanics, materials science, and thermodynamics, which are important for developing safe and efficient mechanical systems.
Software Engineer
Software Engineers design, develop, and maintain software systems. This course can help build a foundation in Python and object-oriented programming, which are essential for success in this role. It also covers topics such as software design, testing, and debugging, which are important for developing high-quality software.
Data Analyst
Data Analysts are responsible for collecting, cleaning, and analyzing data to help businesses make informed decisions. This course can help build a foundation in Python and data analysis techniques, which are essential for success in this role.

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 Machine Learning & Self-Driving Cars: Bootcamp with Python.
Provides a comprehensive overview of computer vision algorithms and applications, making it a valuable resource for anyone interested in learning more about this field.
Provides a comprehensive overview of probabilistic robotics, making it a valuable resource for anyone interested in learning more about this field.
Provides a comprehensive overview of control systems engineering, making it a valuable resource for anyone interested in learning more about this field.
Provides a comprehensive overview of operating systems, making it a valuable resource for anyone interested in learning more about this field.
Provides a comprehensive overview of data structures and algorithms in Python, making it a valuable resource for anyone interested in learning more about these topics.
Provides a comprehensive overview of Python machine learning, making it a valuable resource for anyone interested in learning more about this topic.
Provides a comprehensive overview of deep learning with Python, making it a valuable resource for anyone interested in learning more about this topic.
Provides a comprehensive overview of control systems with Python, making it a valuable resource for anyone interested in learning more about this topic.

Share

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

Similar courses

Here are nine courses similar to Machine Learning & Self-Driving Cars: Bootcamp with Python.
Autonomous Cars: Deep Learning and Computer Vision in...
Most relevant
Build your first Self Driving Car using AWS DeepRacer
Most relevant
An Introduction to Practical Deep Learning
Most relevant
The Complete Self-Driving Car Course - Applied Deep...
Most relevant
Visual Perception for Self-Driving Cars
Most relevant
State Estimation and Localization for Self-Driving Cars
Most relevant
Autonomous Cars: How Do They Work and Impact Us?
Most relevant
CNNs with TensorFlow: Basics of Machine Learning
Most relevant
Introduction to Self-Driving Cars
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