Computer Science Department
The University of Waterloo
Canada
CS 484/684 --- Computational Vision
Syllabus: January 2025
General Description
Computer Vision encompasses a variety of innovative methods and algorithms leveraged in applications such as facial recognition, image searching, augmented reality, medical image analysis, automated mapping of environments, and digital effects in movies and photography. This course provides an introduction to the computational and mathematical foundations of computer vision and covers many of its standard applications.
Lectures/Seminars: |
- Section 001: Tuesdays and Thursdays 10:00am-11:20am at MC2034
|
| - Section 002: Tuesdays and Thursdays 1:00pm-2:20pm at AL 124
|
| - In-class lectures/seminars will not be recorded, but alternative video lectures by the instructor will be posted
on MS Teams as the course progresses. While the live lectures/seminars should systematically cover the required material, they will be
more focused on the main points specific to computer vision and allow time for answering students' questions.
In case some points in the slides are skipped in class (e.g. review of basic background in linear algebra, or if time runs out),
the students could be referred to the posted video lectures.
- Video lectures posted on MS Teams ("Video Stream" tab) are closely aligned with the live lectures/seminars; they go over the same slides.
The videos explain all the slides, including optional reviews of basic linear algebra, multi-variate calculus, and some (clearly marked) optional
material in computer vision. Normally, the videos will be posted either in advance or within a day after the relevant lecture.
|
Online resources: |
- MS Teams will be used to post video lectures, to host online meetings (office hours, help sessions, tutorials), and for polls.
|
|
- Learn will be used for posting and collecting homework assignments, for quizzes, as well as for feedback and grades.
|
|
- iCllicker we will use iClicker for occasional in-class polling. Besides instant feedback for the instructor,
it will also help to assess class participation. We will use iClicker cloud resources.
|
|
- Piazza will be used primarily as a forum for discussions between the students
occasionally monitored by the TAs or prof. Your questions directly to the prof or TAs should be raised during their office hours or in class.
|
Instructors
Lecturer: |
Yuri Boykov (yboykov) |
Office Hours: |
weekly meetings (TBA) on MS Teams ("Office Hours" channel). |
|
|
|
|
|
|
TAs: |
Matthew Avolio (mavolio) Nima Jamali (n3jamali) Jeremy Yu (jccyu) Jiahao Zhang (j2239zha) |
Help: |
- grading |
|
- piazza monitoring |
|
- online programming tutorials and homework help sessions on MS Teams ("Office Hour" channel) as needed |
Prerequisites
- Mathematical skills: AMATH 242/CS 371 or CS 370 or Linear Algebra 2 (MATH 235/245)
- Probability (STAT 230 or 240)
- While optional, Multivariate Calculus (MATH 227 or 237 or 247) is highly recommended.
- Programming experience (Python, C, ...)
- Computer Science students only
Note:
Students are responsible for ensuring that they have the prerequisites for this course.
If you have difficulty enrolling into the course (e.g., errors on Quest), then please review the
CS Course Enrollment page
or contact a CS advisor.
Comments on Linear Algebra
Understanidng computer vision methods requires certain level of confidence with linear algebra, which is actively used
throughout the course. CS484 only briefly reviews some critical linear algebraic tools as they become needed, but there is absolutely
no time to teach linear algebra on the same level (covering proofs and many basic examples) as it is done in the appropriate math courses.
Based on observations from the previous years, students who took only one term of introductory linear algebra and do not remember much of it
must be ready to commit (possibly substantial) extra time. For example, confidence with linear algebra correlates
with the time required for completeing homework assignemnts.
At the same time, computer vision offers highly motivating and intuitive context for learning linear algebra.
If you plan to take other courses on Data Analysis, AI, or Machine Learning, you will also appretiate stronger linear algebra skills.
While CS484 covers only the absolutely necessary background in linear algebra, as well as multivariate calculus, some useful external links
can be found in "Math Resources".
Course Content
This course introduces many standard computer vision problems and computational approaches for solving them.
The context of image analysis also provides an intuitive and stimulating visual environment for developing and understanding numerical algorithms.
A detailed list of covered topics is provided here.
Course Website
The website for the course is
cs.uwaterloo.ca/~yboykov/Courses/cs484.
Lecture notes, assignments, code samples, and other supplementary materials
will be posted on this web site. Important announcements will be posted there. It is your responsibility to check this web site on a regular basis. LEARN will be used primarily for collecting homework assignments and projects.
Textbooks and Lecture Notes
There is no required textbook for this course. All lecture notes/slides will be available on the course web site.
While the posted slides cover all the necessary material, they are supposed to be complemented by live discussion and blackboard scribbles.
Note that class attensdance is very important since the posted slides are not designed for independent reading.
Lecture notes could be complemented by readings from recommended text-books on computer vision and standard CS algorithms given below.
You will be referred to specific relevant sections of these books in class.
- Richard Szeliski. Computer Vision: Algorithms and Applications, 2010.
- Ian Goodfellow, Yoshua Bengio, Aaron Courville. Deep Learning , The MIT Press, 2016
- Gonzalez and Woods. Digital Image Processing, Prentice Hall, 2nd edition, 2002.
Programming
We will use python within Jupiter notebook envronment. Python's linear algebra library "numpy" will be widely used in all assignments.
Later assignemnts will also use "pytorch". On-line tutorials will be organized via Microsoft Teams to help with the basics of these libraries.
More details and code samples are posted here.
Assignments, Quizzes, Participation (iClicker), Final Project
- There will be six assignments, four on-line quizzes, and a final project.
- Assignments and quizes should be done individually.
- Quizzes will be posted on LEARN. You can find approximate dates and material for all quizes on "Time-Schedule" channel on MS Teams. You will be given 30 to 60 minutes for each quiz that you can take from 10am to 10pm on a given date to be announced via email. You will get email and/or in-class reminders for each quiz at least a day in advance, but you shoudl also check the information about quizzes in the "Time-Schedule" to plan ahead.
- The format of the quizes is as follows: the questions will go in random order and you can not return to the previous questions. Approximate time you should spend on each question will be stated to help you manage your time. Most of the questions are auto-graded. We do not return any automatic feedback on quizzes. You can ask for a review of your quizz during office hours.
- The material for each quiz should be studied befor taking the quiz. If you plan to search for the answers to all questions, you will find it very difficult to do the quiz in the time allowed. The expected time (indicated for each question) does not include the time for searching the lecture notes or the internet - it is mostly the time to read/understand the question, as well as to think about and enter your answer assuming that you are familiar with the material.
- There will be occasional iClicker polls during lectures collecting instant feedback and class participation records, see tab iClicker on the left for more details.
- The assignments will be posted on the course's web page, see tab "Assignments" where tentative posting dates are stated (see also the Time-Schedule channel on MS Teams). NOTE: the frequency of the assignments is slightly higher in the second half of the course. This happends naturally as the first half of the course spends more time reviewing background from linear algebra, multi-variate calculus, and statistics. In the second half, the material is covered a bit faster.
- Assignemnts will require submission of code and a report. Submission of assignemnts are done via drop-boxes on LEARN.
Typical image analysis algorithms produde output (geometric structures, segments, labelings) that can be visualized. The report must include representative input images as well as images visualizing the algorithm's output.
- For the final project students can select one of several proposed topics/problems. Group projects are allowed (max 3 people).
- The assignments will require coding in Python within Jupiter notebook environment.
- Submission of your home work (reports and/or code) and final projects should be done via LEARN by the due date. No files will be accepted via email.
- Late assignments: you are given 4 late days for the whole term (in total). For example, you can use one late day for Assignment 2 and three late days for Assignment 5. Or, you can use all four days for one particular assignment. The drop box remains open for late submissions for a few days past the due date/time of each assignment - TAs record each late day.
NOTE: students should start working on assignments as soon as they are posted.
The "late days" are given only to help with finishing your work due to minor illnesses during the work period (post date to deadline).
"Late days" are not meant to encourage last-minute work before (and particularly after) the deadline.
If you could not even start your work before the deadline, e.g. due to lasting illness or some serious personal circumstances,
you may need to request an official accomodation with the student services. If I receive an offical accomodation
for a work period of any assignment, the weight of this assignment will be redistributed among other assignments.
However, 4-best-out-5 grading policy for undergrads will automatically accomodate for one missing assignmnet (excluding assignmnt 0).
If you are an undergrad and miss one of the assignments 1-5, you do not need to request an official accomodation.
- While students may discuss the assignments, any code or written text should be an individual effort of each student. Scholastic offences are taken seriously and students are directed to read the appropriate university policy. Computer-marked multiple-choice tests and/or exams may be subject to submission for similarity review by software that will check for unusual coincidences in answer patterns that may indicate cheating.
- Tentative assignment topics (subject to change). Assignments will be due in 5-10 days after posting.
- Assignment 0: image gradients, low-level features (edges/corners), numpy primer
- Assignment 1: model fitting, panorama stitching
- Assignment 2: epipolar geometry, structure from motion
- Assignment 3: stereo
- Assignemnt 4: low-level segmentation
- Assignment 5: semantic segmentation (CNNs)
- Final Project: a student can select one of several topics to be posted. General themes of the projects will be in stereo, recognition, segmentation, or other problems in computer vision. Graduate students will be required to solve additional tasks in each proposed topic.
Final/Midterm Exams
There will be no exams in this course. Instead, there will be a final project due during the exam period.
Grading Scheme
| UNDERGRADS | GRADS |
Assignment 0 | 5% | 5% |
Assignments 1-5 | 40% (4 best our of 5) | 40% (all 5) |
Quizzes | 20% | 20% |
Participation-iClilcker | 5% | 5% |
Final project | 30% | 30% |
Academic Integrity
In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. [Check www.uwaterloo.ca/academicintegrity/ for more information.]
MOSS (Measure of Software Similarities) is used in this course as a means of comparing students' assignments to ensure academic integrity. We will report suspicious activity, and penalties for plagiarism/cheating are severe. Please read the available information about academic integrity very carefully.
Grievance
A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4, www.adm.uwaterloo.ca/infosec/Policies/policy70.htm. When in doubt please be certain to contact the department's administrative assistant who will provide further assistance.
Appeals:
A decision made or penalty imposed under Policy 70 (Student Petitions and Grievances) (other than a petition) or Policy 71 (Student Discipline) may be appealed if there is a ground. A student who believes he/she has a ground for an appeal should refer to Policy 72 (Student Appeals) www.adm.uwaterloo.ca/infosec/Policies/policy72.htm.
Note for Students with Disabilities:
The AccessAbility Services Office (AAS), located in Needles Hall, Room 1401, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with the AAS at the beginning of each academic term.