Lecture: Self-Driving Cars
Within the last years, driverless cars have emerged as one of the major workhorses in the field of artificial intelligence. Given the large number of traffic fatalities, the limited mobility of elderly and handicapped people as well as the increasing problem of traffic jams and congestion, self-driving cars promise a solution to one of our socities most important problems: the future of mobility. However, making a car drive on its own in largely unconstrained environments requires a set of algorithmic skills that rival human cognition, thus rendering the task very hard. This course we will cover the most dominant paradigms of self-driving cars: modular pipeline-based approaches as well as deep-learning based end-to-end driving techniques. Topics include camera, lidar and radar-based perception, localization, navigation, path planning, vehicle modeling/control, imitation learning and reinfocement learning. The tutorials will deepen the acquired knowledge through the implementation of several deep learning based approaches to perception and sensori-motor control in the context of autonomous driving. Towards this goal, we will build upon existing simulation environments and established deep learning frameworks.
This class will not be taught in WS 2024/25
This class will not be taught in WS 2024/25. The next edition is planned for WS 2025/26.
Qualification Goals
Students develop an understanding of the capabilities and limitations of state-of-the-art autonomous driving solutions. They gain a basic understanding of the entire system comprising perception, learning and vehicle control. In addition, they are able to implement and train simple models for sensori-motor control.
Overview
- Course number: ML-4340
- Credits: 9 ECTS
- Recommended for: Master, 3rd semester
- Total Workload: 270h
- This lecture is taught as flipped classroom: Lectures will be provided via YouTube and must be watched before the respective interactive live sessions.
- Each week, we host an interactive live session where questions regarding the lecture and exercises are posed and discussed together. It is essential for students to attend the live sessions.
- We also offer additional weekly helpdesks where students may ask questions to obtain individual feedback and support for solving the exercises.
- In addition, we provide regular quizzes via our quiz server with questions on the lectures and exercises for self-assessment and self-motivation.
- Finally, we are providing continuously and timely support via our chat.
- See 'Important Links' in the sidebar to access the videos, slides, exercises, chat, zoom room and quiz.
Prerequisites
- Basic Computer Science skills: Variables, functions, loops, classes, algorithms
- Basic Python and PyTorch coding skills
- Basic Math skills: Linear algebra, probability and information theory (eg., Math for ML lecture https://www.tml.cs.uni-tuebingen.de/teaching/2020_maths_for_ml/index.php). As a refresher we recommend reading Chapters 1-4 of: http://www.deeplearningbook.org or watching our newly micro tutorials Mathematics for Deep Learning.
- Experience with Deep Learning (eg., through participation in our Deep Learning lecture)
Registration
- To participate, you must register via ILIAS and our Quiz Server (see sidebar)
- Information about exam registration can be found here
Exercises and Challenges
The exercises play an essential role in understanding the content of the course. There will be 6 assignments in total. The assignments contain pen and paper questions as well as programming problems. Each programming problem involves programming an agent to participate in a challenge against the other agents developed by the students. The winners of each challenge will present their work during the final live session. For programming, the students will use Python and PyTorch, a deep learning framework which features GPU support and auto-differentiation. If you have questions regarding the exercises or the lecture, please ask them during the live sessions, at the zoom helpdesk or in our chat.
Further Readings
- Student's Self-Driving Cars Lecture Notes
- A 30 Minutes Summary of this Lecture on Medium
- Janai, Güney, Behl and Geiger: Computer Vision for Autonomous Vehicles
- Chen et al.: End-to-end Autonomous Driving: Challenges and Frontiers
- Goodfellow, Bengio and Courville: Deep Learning
- Richard Szeliski: Computer Vision: Algorithms and Applications
- Deisenroth, Faisal and Ong: Mathematics for Machine Learning
- Micro Tutorials Mathematics for Deep Learning
- Articles and papers mentioned in the lecture slides
Schedule
|
|
|
|
| |||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Congratulations to Winners of the Self-Driving Challenges!
After the course, Micha Schilling has implemented a conditional imitation learning controller on a Raspberry Pi 3 that was added to the basic Arduino self-driving car kit. Here are links to the project page and video:
- Github: https://github.com/Lucbus/SelfDrivingElegooCar
- YouTube: https://www.youtube.com/watch?v=1-7RTr_nGgs