This class is an introduction to fundamental concepts in image understanding, the subdiscipline of artificial intelligence that tries to make the computers “see”. It will survey a variety of interesting vision problems and techniques. Specifically, the course will cover image formation, features, object and scene recognition and learning, multi-view geometry and video processing. The goal of the class will be to grasp a number of computer vision problems and understand basic approaches to tackle them for real-world applications.
Lectures: Wednesdays 1:00pm-3:00pm (LEC0101; MP 137) and 3:00pm-5:00pm (LEC0201; GB 221). Lectures will be recorded and made available on Quercus.
Tutorials: Friday 1:00pm-2:00pm (LEC0101; GB 221) and 3:00pm-4:00pm (LEC0201; MP 137).
Instructor office hours: Wednesdays 11:10am-12:00pm (BA 7228).
TA office hours: Fridays 2:00pm-3:00pm in BA 2270.
Forum: Course announcements and general information will be posted on the course forum at Piazza. Any questions can also be discussed on the course forum, though do not expect an immediate response from the TAs. Also, do not expect answers during weekends or at the last minute before assignments are due. Please only email the staff for emergency inquiries that cannot be handled on the forum via a private post: Course Staff Email.
MarkUs: Assignment materials and grades will be posted on MarkUs.
Quercus: Lecture recordings and tutorial codes will be posted on Quercus.
Attendance: While lectures will be recorded, in-person attendance is expected as the recording will not capture all presented material (e.g., handwritten annotations, chalkboard diagrams, etc.).Assignments: All assignments must be submitted on MarkUs. You will be automatically added to MarkUs if you're taking the course. Please do not email the staff if you are not yet added at the beginning of the term; it may take a week or two to be added.
Remark requests must be submitted within 1 week of graded assignments being returned. Late remark requests will not be accepted.
Lateness: All assignments are due on Thursdays at 12:59 PM (i.e., in the afternoon) as indicated on the schedule. There is a one-hour grace period after the deadline to account for any technical glitches/issues during the submission. If you require an extension you must submit an official request to the course staff using this form. All assignments must be submitted within seven days of the deadline (no exceptions).
Textbook: Readings are assigned from the following texts:
Collaboration Policy: The graded portion of assignments (programming problems) must be implemented individually; however, you may discuss general strategies and discuss the concepts of the course with other students, TAs (e.g., on Piazza), or AI. You must not share code or derivations. the ungraded portion of assignments (problem sets) may be completed collaboratively.
AI Assistants Policy: You are welcome to use AI assistants in a responsible fashion. You should not ask an AI assistant to complete your assignments for you; this is just as inappropriate as asking another student. However, you may ask an AI assistant questions about lecture material, clarifications about the assignments, tips on how to approach a problem, etc. (i.e., you may discuss the assignments with the AI assistant in the same way you are allowed to discuss with your peers or the TAs). If you decide to use an AI assistant, you must include a sentence or two describing how you used it at the very top of your submitted assignment.
A timed one-hour exam held during the tutorial hour. The exam will be a combination of multiple choice and short-answer/long-answer. There are no make-ups for the midterm. If you miss the midterm, we will add a 30% weight to your final exam (so that the final will be worth 70% of your total grade).
A timed three-hour exam consisting of a combination of multiple choice and short-answer/long-answer questions. The time and date will be announced later in the term.
Completion of two surveys based on a course ethics module of the course will be worth 0.5% each.
Students with diverse learning styles and needs are welcome in this course. In particular, if you have a disability or health consideration that may require accommodations, please feel free to approach me and/or the Accessibility Services Office as soon as possible. The Accessibility Services staff are available by appointment to assess specific needs, provide referrals and arrange appropriate accommodations. The sooner you let them and me know your needs, the quicker we can assist you in achieving your learning goals in this course: https://www.studentlife.utoronto.ca/as, 416-978-8060, or accessibility.services@utoronto.ca
Week | Date | Description | Material | Readings | Event | Deadline |
---|---|---|---|---|---|---|
Week 1 | Wed Sep 3 |
Lecture 1: Introduction & Machine Learning Review Course overview, review of fully connected networks, optimization, backpropagation |
[slides] |
FCV 9-14 What is a neural network? Gradient descent Backpropagation Backpropagation calculus (optional) Notes on backpropagation (optional) Least squares review (optional) SVD review |
Assignment 1 out on MarkUs | |
Fri Sep 5 |
Tutorial 1 PyTorch tutorial, Jupyter Notebook tutorial, lecture 1 practice problems, A1 Q&A |
|||||
Week 2 | Wed Sep 10 |
Lecture 2: Recognition Convolutional neural networks for segmentation, object detection, and classification |
[slides] |
FCV 24 FCV 50 (optional) Hubel & Wiesel 1979 |
||
Fri Sep 12 |
Tutorial 2 PyTorch Tutorial (CNNs), fine-tuning, logging tools, lecture 2 practice problems, A1 Q&A |
|||||
Week 3 | Wed Sep 17 |
Lecture 3: Vision Transformers attention, transformers, vision transformers, CLIP, autoregressive text-to-image |
[slides] |
FCV 25 FCV 26 FCV 51 |
||
Thu Sep 18 |
Ethics Survey 1 due | |||||
Fri Sep 19 |
Tutorial 3 understanding & visualizing attention, lecture 3 practice problems, A1 Q&A |
|||||
Week 4 | Wed Sep 24 |
Lecture 4: Generative Models & Embedded Ethics VAEs, GANs, diffusion models, bias in deep learning |
[slides] |
FCV 32.1–32.3, 32.8–32.10 FCV 33 FCV 35 In Class Exercise: CelebA-HQ Samples |
Assignment 2 out on MarkUs | |
Thu Sep 25 |
Assignment 1 due 12:59 pm | |||||
Fri Sep 26 |
Tutorial 4 exploring vision latent spaces, lecture 4 practice problems, A2 Q&A |
|||||
Week 5 | Wed Oct 1 |
Lecture 5: Digital Photography ray optics, aperture, depth of field, exposure, sensor noise, demosaicking, denoising, deconvolution |
[slides] |
FCV 5 Szeliski 2.3 |
||
Fri Oct 3 |
Tutorial 5 lecture 5 practice problems, A2 Q&A |
|||||
Week 6 | Wed Oct 8 |
Lecture 6: Radiometry and Photometric Cues radiometric units, reflectance, photometric stereo, shape from shading, single-image depth |
[slides] |
Gortler 21 (Quercus) FCV 43 (optional) First Principles of Computer Vision (Photometric Stereo I) (optional) First Principles of Computer Vision (Photometric Stereo II) |
||
Fri Oct 10 |
Tutorial 6 lecture 6 practice problems, A2 Q&A |
|||||
Week 7 | Wed Oct 15 |
Lecture 7: 3D Vision & Stereo I coordinate systems, calibration, stereo geometry, triangulation, stereo matching |
[slides] |
FCV 39 FCV 40 (optional) Notes on stereo vision |
Assignment 3 out on MarkUs | |
Thu Oct 16 |
Assignment 2 due at 12:59 pm | |||||
Fri Oct 17 |
Tutorial 7 lecture 7 practice problems, midterm review, A3 Q&A |
|||||
Week 8 | Wed Oct 22 |
Lecture 8: Epipolar Geometry & Stereo II Essential & Fundamental Matrices, 8-point algorithm, active stereo, volumetric stereo |
[slides] |
Zisserman & Hartley 9, 11 Szeliski 12.7.2 Szeliski 13.2 In Defense of the 8-point Algorithm |
||
Fri Oct 24 |
Midterm | |||||
Week 9 | Wed Oct 29 |
Reading Week (No Lecture) |
||||
Week 10 | Wed Nov 5 |
Lecture 9: Structure from Motion & Radiance Fields feature matching, bundle adjustment, learned SfM, volume rendering, surface-based representations |
[slides] |
FCV 44 FCV 45 |
||
Fri Nov 7 |
Tutorial 9 lecture 9 practice problems, A3 Q&A |
|||||
Week 11 | Wed Nov 12 |
Lecture 10: Optical Flow & Tracking Motion estimation, patch match, 3D motion, brightness constancy, applications |
[slides] | FCV 46-49 | Assignment 4 out on MarkUs | |
Thu Nov 13 |
Assignment 3 due at 12:59pm | |||||
Week 12 | Mon Nov 17 |
Tutorial 10 (on zoom) lecture 10 practice problems, A4 Q&A |
||||
Wed Nov 19 |
Lecture 11: Modeling Humans parametric human models, pose estimation, mesh recovery, generation |
[slides] | Szeliski 13.6 | |||
Fri Nov 21 |
Tutorial 11 lecture 11 practice problems, A4 Q&A |
|||||
Week 13 | Wed Nov 26 |
Lecture 12: Course Review & Selected Topics Potpourri | [slides] | |||
Thu Nov 27 |
Assignment 4 due/Ethics Survey 2 due 12:59 pm | |||||
Fri Nov 28 |
Tutorial 12 review and final exam Q&A |
|||||
TBD | Final Exam |
We will only support Python 3.7 and recommend that you install it using Anaconda or Miniconda (see installation instructions here).
Some course content is adapted from previous offerings by Sanja Fidler, Ahmed Ashraf, and Babak Taati. Many of the slides are modified from those of Philip Isola, Bill Freeman, Yannis Gkioulekas, Gordon Wetzstein, and Steve Seitz. The webpage is based on the website for CS231N and EE367 at Stanford University.