Teaching
Below is the list of courses we teach each semester or that we taught in the past. Click on the specific entry for more info:
Fall 2024 - Vision Algorithms for Mobile Robotics
Fall 2024 - Seminar: Vision-Based Drone Flight
Spring 2024 - Foundations of Computing I
Spring 2015 - Autonomous Mobile Robots
Fall 2024 - Vision Algorithms for Mobile Robotics
03SMDINF2039 / 151-0632-00L
Registration for ETH students
This course is a core course of the ETH Master in Robotics, Systems and Control. Registration for ETH students is done through UZH. To do so, you will first need to register to get a UZH account. Afterwards, you can login and book the course. All the instructions can be found here. ETH students should mind the following deadlines: the deadline to register for a UZH account is September 13 at 23:59hrs Zurich time. Once you receive the login credentials (it may take a few days), you can finally book the course until October 8 at 23:59. NB. If you fail to book the course, you won't be able to take the exam..
Exam cancelation
At UZH, registration for a course or cancellation of an examination is carried out directly using the module booking tool. Booking a module also automatically registers the student for the corresponding examination. Once the module booking deadline (October 8 23:59) has passed, absolutely no further registrations or cancelations can be processed. Cancelations at a later date due to illness are only possible if a petition is submitted within five business days from the exam, accompanied by a properly dated original doctor's attestation. More info here.
Goal of the Course
For a robot to be autonomous, it has to perceive and understand the world around it. This course introduces you to the key computer vision algorithms used in mobile robotics, such as image formation, filtering, feature extraction, multiple view geometry, dense reconstruction, tracking, image retrieval, event-based vision, visual-inertial odometry, Simultaneous Localization And Mapping (SLAM), and some basics of deep learning. Specifically, we will see the algorithms behind Apple ARKit, Google Visual Positioning Service, Microsoft Hololens, Magic Leap, Oculus Quest and Oculus Insight, the Mars Perseverance rover, and the Mars helicopter. Basic knowledge of algebra, geometry, and matrix calculus (product, inversion, eigenvalue decomposition) is required.
Time and location
All lectures and exercises will be taking place on-site in the UZH City campus (next to UZH and ETH main buildings) in SOC-F-106 (located on floor F) and will also be video recorded. If the front door of the building is locked, please use the side door (located on the right side of the building).
Lectures: every Thursday from 8:00 to 9:45 am. Please notice that the lecture starts at 8 o'clock and not 8:15.
Exercises: every Thursday from 12:15 to 13:45.
Please check out the course agenda below for the exact schedule.
Instructors
Lecture Instructor: Prof. Dr. Davide Scaramuzza. Exercise Instructors: Jiaxu Xing and Ismail Geles. Office hours of Prof. Scaramuzza: Every Thursday from 16:00 to 18:00 on ZOOM or in person (please book your slot by email by using "VAMR Office Hours" as the email subject).
Video Recordings and Student Forum
All video recordings of the lectures and exercises will be available within the online course platform OLAT when the course starts. Please use the forum therein to ask the instructors questions.
Course Program, Slides, and Additional Reading Material
Please notice that this is a tentative schedule and that the effective content of the lecture may change from week to week.
Date |
Lecture and Exercise description |
Slides, exercises, and additional reading material |
19.09.2024 | Lecture 01 - Introduction to Computer Vision and Visual Odometry Exercise: Camera Notation Tutorial |
Lecture Slides
Exercise Lecture Notes
Additional reading on Visual Odometry
Linear Algebra Primer from Stanford University Linear Algebra interactive tool Camera notation tutorial by Paul Furgale |
26.09.2024 | Lecture 02 - Image Formation: perspective projection and camera models Exercise 01- Augmented reality wireframe cube |
Lecture Slides
Exercise 01 vectorization code Matlab primer Matlab primer code Python Tutorial Exercise 01 Solutions 01 (Matlab/Python/Numerical) |
03.10.2024 | Lecture 03 - Camera Calibration Exercise 02 - PnP problem |
Lecture Slides (updated 09.10.2024, see changes here)
Exercise 02 Additional reading on P3P and PnP problems Notes on SVD for DLT Solutions 02 (Matlab/Python/Numerical) |
10.10.2024 | Lecture 03 continued Lecture 04 - Filtering & Edge detection Exercise session replaced by continuation of Lecture 4. |
Lecture Slides
Numerical Exercise Lecture 04 Numerical Exercise Lecture 04 Solution |
17.10.2024 | Lecture 05 - Point Feature Detectors, Part 1 Exercise 03 - Harris detector + descriptor + matching |
Lecture Slides
Exercise 03 Solutions 03 (Matlab/Python/Numerical) |
24.10.2024 | Lecture 06 - Point Feature Detectors, Part 2 Exercise 04 - SIFT detector + descriptor + matching |
Lecture Slides
Additional reading on feature detection
Exercise 04 Notes on Convolution 04 Solutions 04 (Matlab/Python/Numerical) |
31.10.2024 | Lecture 07 - Multiple-view Geometry 1 Exercise 05 - Stereo vision: rectification, epipolar matching, disparity, triangulation |
Lecture Slides
Additional reading on stereo image rectification
Exercise 05
Solutions 05 |
07.11.2024 | Lecture 08 - Multiple-view Geometry 2 Exercise 06 - Eight-Point Algorithm |
Lecture Slides
Additional reading on 2-view geometry
Exercise 06 Solutions 06 |
14.11.2024 | Lecture 09 - Multiple-view Geometry 3 Exercise 07 - P3P algorithm and RANSAC |
Lecture Slides
Additional reading on RANSAC
Exercise 07 Solutions 07 |
21.11.2024 | Lecture 10 - Multiple-view Geometry 4 Exercise 08 on Bundle Adjustment |
Lecture Slides (updated 09.10.2024, see changes here)
Additional reading on open-source VO algorithms
Exercise 08 Solutions 08 |
28.11.2024 | Lecture 11 Optical Flow and KLT Tracking Continuation of Lecture 11 + Exercise 09 - Lucas-Kanade tracker |
Lecture Slides
Additional reading on KLT
Exercise 09 Solutions 09 |
05.12.2024 | 1st hour: seminar by Dr. Jeff Delaune from NASA-JPL: "Vision-Based Navigation for Mars Helicopters." Lecture 12a (2nd hour) - Place Recognition Lecture 12b (3rd and 4th hour, replaces exercise) - Deep Learning Tutorial Optional Exercise on Place Recogntion |
Lecture Slides on Place Recognition
Additional reading on Bag-of-Words-based place recognition
Numerical Exercise 12 Lecture Slides on Deep Learning Numerical Exercise Lecture 12 Solution |
12.12.2024 | Lecture 13 - Visual inertial fusion Exercise 10 - Visual Inertial fusion |
Lecture Slides
Additional reading on VIO Exercise 10 |
19.12.2024 | Lecture 14 - Event-based vision Exercise 11: Contrast Maximization for Event Cameras |
Lecture Slides
Additional reading on event-based vision Exercise 11 |
09.01.2025 | Written exam: from 08:00 to 10:00 am. More details will be given during the semester. |
Exam
The written exam will take place on January 9th, 2025 from 08:00 to 10:00 am. More details will be given during the semester.
Exercises
You will be required to bring your own laptop to the exercise session. This year, for the second time, students will have the chance to solve the exercises in Python or Matlab. However, the exercise statements and material presented during the exercise sessions will only cover the implementations in Matlab. Additionally to the Matlab solutions, we will upload Python scripts as template solutions for the exercise statements. You will need to have Matlab or Python already pre-installed on your machine for the exercises. To install Matlab, follow the links below according to your affiliation.
- ETH students: Download from here
- UZH students: Download from here; Info on how to setup the license can be found there.
Optional Mini Project and Grading
Students taking the final exam have the opportunity to submit a mini-project to increase their final grade. Notice that the mini project is optional, that is, not mandatory. Depending on the result of the mini-project, the student will be rewarded with a grade increase of up to 0.5 on the top of the grade of the written exam. However, bear in mind that the mini-project can be quite time-consuming. Students who want to submit a mini project should work in a group of minimum 2 and max 4 persons. The deadline for the mini-project is Monday, 06.01.2025, 23:59:59, and it can be submitted via e-mail to the assistants. More details will be given during the semester. Mini project specifications and files can be found in the table below.
Description | Link (size) |
Project Specification | vo_project_statement.pdf |
FAQ | Frequently Asked Questions |
Parking garage dataset (easy) | parking.zip (208.3 MB) |
KITTI 05 dataset (hard) | kitti05.zip (1.4 GB) |
Malaga 07 dataset (hard) | malaga-urban-dataset-extract-07.zip (2.4 GB) |
Matlab script to load datasets | main.m |
Recommended Textbooks
(All available in the Swisscovery catalogue)Unfortunately, a single textbook that covers all the material seen in class does not exist yet. However, the topics covered in class can be found in the books listed below. At the end of each lecture's slide deck, you will find a list of chapters and books where the topics can be found.
- Computer Vision: Algorithms and Applications, by Richard Szeliski, Springer, 2nd Edition, 2021. The PDF of the book can be freely downloaded from the author's webpage. Although the author is working on a 2nd edition, this is still under progress. Thus, in the lecture nodes we will reference chapters of the 1st edition.
- Chapter 4 of "Autonomous Mobile Robots", by R. Siegwart, I.R. Nourbakhsh, D. Scaramuzza. PDF
- Robotics, Vision and Control: Fundamental Algorithms, 2nd Ed., by Peter Corke 2017. The PDF of the book can be freely downloaded (only with ETH VPN) from the author's webpage.
- An Invitation to 3D Vision, by Y. Ma, S. Soatto, J. Kosecka, S.S. Sastry.
- Multiple view Geometry, by R. Hartley and A. Zisserman.
Fall 2024 - Seminar: Vision-Based Drone Flight
UZH-22MIS105
Important Dates
Most parts of the course will be taking place at the drone test facility of the Robotics and Perception Group in Winterthur.
Seminar Times: Every day from 09.09.2024 to 13.09.2024 from 9am to 5pm.
Max number of participants: 40
Booking period: from 14.08.2024 10:00 to 27.08.2024 24:00
Place allocation at the latest: 02.09.2024 22:00
Waiting list progression period: from 30.08.2024 12:00 to 06.09.2024 24:00
Cancellation period: from 30.08.2024 12:00 to 09.09.2024 24:00
Prerequisites and Registration
Due to the challenging nature of this seminar, interested students should send their transcripts via e-mail to Leonard Bauersfeld and Angel Romero (bauersfeld@ifi.uzh.ch, roagui@ifi.uzh.ch) such that we can ensure that all prerequisites are met and the students have sufficient background knowledge to pass the course. We will reply on a rolling basis until August 27 with a decision if the prerequisites are met in case of an allocation to this seminar. In general, we expect a strong background in machine learning and computer vision. Students must have attended the lecture on UZH - Vision Algorithms for Mobile Robotics (or similar courses, e.g. ETH - Computer Vision or ETH - Image Analysis and Computer Vision). Furthermore, for the background in machine learning should have at least attended UZH Advanced Topics in Artificial Intelligence (or similar). Finally, students must be comfortable programming in C++ or Python and working in a Linux-based software environment and should be familiar with a Linux shell.
Additional Info for ETH students
Registration for ETH students is done through UZH. To do so, you will first need to register to get a UZH account. Afterwards, you can login and book the course. All the instructions can be found here. ETH students should mind the following: to be able to register for the seminar, they need to register for a UZH account before August 13 at 23:59hrs Zurich time. Once you receive the login credentials (it may take a few days), you can finally book the course until August 27 at 23:59.
Goal of the Course
Autonomous drones are ubiquitous across different industries, from inspection and mapping to search and rescue applications. In those scenarios, vision-based autonomy is vital as a drone must be able to perceive and react to its environment. This task is very challenging because the real world is inherently unpredictable and difficult to capture in mathematical models. Combined with the strict real-time requirements when controlling a drone, these requirements make deep-learning solutions the ideal choice for perception and control. In this course, the students will get hands-on experience in autonomous vision-based flight. We consider a Holly-wood-inspired setting where a camera drone needs to track an "actor drone." The students will design a perception module to detect and track other drones and train a reinforcement learning (RL) controller to track the actor drone. The developed pipeline will be deployed in the real world on physical hardware. For the control task, the students will be provided with an RL environment in which they can integrate their controllers. Similarly, the students will have a software framework to integrate their work into the perception module. For the final deployment, drones will be provided so that students can focus primarily on their algorithms.
Instructors
Lecture Instructors: Leonard Bauersfeld and Angel Romero.
Spring 2024 - Foundations of Computing I
UZH-03SM22AINF05
Registration
This course is mandatory for students enrolled in the Bachelor's degree in informatics at the University of Zurich. Registration is done through UZH. The course can be booked from January 17, 2024, at 10:00 am until March 12, 2024, at 23:59 hrs Zurich time. NB. If you fail to book the course, you won't be able to take the exam..
Exam cancelation
At UZH, registration for a course or cancelation of an examination is carried out directly in the module booking tool. Booking a module also automatically registers the student for the corresponding examination. Once the module booking deadline (March 12, 2024, 23:59) has passed, absolutely no further registrations or cancelations can be processed. Cancelations at a later date due to illness are only possible if a petition is submitted within five business days from the exam, accompanied by a properly dated original doctor's attestation. More info here.
Goal of the Course
This course introduces mathematical tools used in computer science (from database management to artificial intelligence, machine learning, data analysis and visualization, cryptography and security, computer graphics, computer vision, and image processing). In particular, the course will teach the following topics: propositional logic, digital logic circuits, induction and recursion, convolution, relations, modular arithmetic with application to cryptography, graphs, and trees.
Time and location
All lectures and exercises occur on Tuesdays and Thursdays from 16:15 to 18:00 hrs. Please have a look at the course agenda on the official UZH catalog for the exact times and rooms.
Instructors
Lecture Instructor: Prof. Dr. Davide Scaramuzza. Exercise Instructors: Noam Szyfer and Serafin Schoch. Office hours of Prof. Scaramuzza: Every Friday from 16:00 to 18:00 on ZOOM or in person (please book your slot by email by using "FOC Office Hours" as the email subject).
Course Program, Slides, Video Recordings, and Student Forum
The syllabus of the course, slides, additional reading materials, and all video recordings of the lectures and exercises will be made available within the course online platform OLAT. Please use the forum therein to ask the instructors questions.
Exam
The written exam will take place on June 25, 2024 from 14:00 to 17:00 hrs Zurich time as a Bring Your Own Device (BYOD) online exam on-site. The exam will be closed book, which means you won't be allowed to use any slides, cheat sheets, book, etc. To take the exam, you must bring your own laptop (Windows or MacOS). The exam cannot be taken on tablets. To take the exam, you must install the Safe Exam Browser (SEB) in advance and take an infrastructure test and a mock exam using your individual technical equipment. Exact information on the required SEB version and other details will be provided to you during the semester. The mandatory functional test will take place from 09.04.2024 to 19.04.2024. The mock exam will be held on-site on 23.04.204 from 18:15 to 20:00 hrs. Attendance in the mock exam is mandatory. Students who have not attended the mock exam will not be admitted to the final exam and fail the course. If you cannot attend the mock exam due to illness or accident, you must email support@oec.uzh.ch with a doctor's note.
Spring 2007-2015 - Autonomous Mobile Robots
From 2007 to 2015, Prof. Davide Scaramuzza co-lectured the course Autonomous Mobile Robots along with Prof. Roland Siegwart. The old Power Point slides and videos can be found here. The lectures of the course inspired the second edition of the omonym book Autonomous Mobile Robots below. The course continues to be taught by Prof. Siegwart at the following link and is also available as an MOOC (Massive Open Online Course) on the popular online platform edX.
Reference book
Introduction to autonomous mobile robots 2nd Edition (hardback)
A Bradford Book, The MIT Press, ISBN: 978-0-262-01535-6, February, 2011
The book can be bought during the first lecture or on Amazon.