
Course Information
Computer vision, broadly speaking, is a research field aimed to enable computers to process and interpret visual data (namely in the form of images and video), as sighted humans can. It is one of the most exciting areas of research in computing science and among the fastest growing technologies in today's industry. This course provides an introduction to the fundamental principles and applications of computer vision, including image formation, sampling and filteering, colour analysis, single and multi-image geometry, feature detection and matching, stereo imaging, motion estimation, segmentation, image classification and object detection. We'll study basic methods and application of these concepts to a variety of visual task.
- Instructor:
- Leonid Sigal
(
lsigal@cs.ubc.ca
)
Office hours: TBD (ICCS 119) - TAs:
- Bicheng Xu
(
bichengx@cs.ubc.ca
)
Office hours: TBD - Nielsen Cugito
(
ncugito@student.ubc.ca
)
Office hours: TBD - Ailar Mahdizadeh
(
ailar.mahdizadeh@ubc.ca
)
Office hours: TBD - Oliver Oxford
(
oliox@student.ubc.ca
)
Office hours: TBD - Shivam Chandhok
(
chshivam@cs.ubc.ca
)
Office hours: TBD - Class meets:
- Tuesday and Thursday 5:00 - 6:30 pm,
Hugh Dempster Pavilion (DMP), Room 301
- Piazza
- https://piazza.com/ubc.ca/winterterm12025/cpsc_v4251011022025w1 (sign up)
- piazza.com/ubc.ca/winterterm12024/cpsc_v4251011022025w1/home (class link)
Textbook
Recemended (but not required):
![]() |
![]() |
Computer Vision: A Modern Approach (2nd edition), by D.A. Forsyth and J. Ponce, Pearson, 2012. (buy) | Computer Vision: Algorithms and Applications (2nd Edition), by R. Szeliski, Springer, 2022. (download) |
Note that while reading is not required, it will generally lead to broader understanding of the topics covered in class. I would suggest reading relevant chapters once they are covered in the lecture.
Grading
Quizzes | 10% |
Assignments | 40% |
Midterm exam | 15% |
Final exam | 35% |
Grade Disputes, Re-grading and Grade-related Policies: Despite best efforts, sometimes miss-grading does happen. All grade disputes and re-grading must be brought to instructor's or TA's attention within 1 week of the grade being released. All such requests must be done through a Piazza as a direct post to the instructors. You must clearly identify the issues and describe why you believe re-grading is warranted. Similarly, if you have a ligitimate excuse for missing a quiz, please let instructor know and provide appropitate evidance within 1 week of the original quiz date. Note that quiz missed for ligitimate and documented reason (e.g., attandance of conferences, sickness, travel for job interview) will be dropped. You will be asked to provide supporting documentation (note from a doctor, travel and conference registration, etc.). There will be no make-ups for missed Midterms. However, Midterms missed for legitimate reasons will result in the grade being shifted to the final. In such cases the final would be wighted 50% of the total course grade.
Assignments (40% of the grade)
All assignments are to be done individually. There are 6 graded (and 1 ungraded) asssignment each worth the same amount. The ungraded assignment is Assignment 0. Assignment 1 to 6 are graded.
Late Policy: Every student is allotted three ``late days'', which allow assignments to be handed in late without penalty on three days or parts of days during the term. The purpose of late days is to allow students the flexibility to manage unexpected obstacles to coursework that arise during the course of the term, such as travel, moderate illness, conflicts with other courses, extracurricular obligations, job interviews, etc. Thus, additional late days will NOT be granted except under truly exceptional circumstances. If an assignment is submitted late and a student has used up all of her/his late days, 25% will be deducted for every day the assignment is late. (e.g., an assignment 2 days late and graded out of 100 points will be awarded a maximum of 50 points.) How late does something have to be to use up a late day? A day is defined as a 24-hour block of time beginning at 10 minutes past 11:59pm on the day an assignment is due. To use a late day, write the number of late days claimed on the first page of your assignment. Examples: Handing in an assignment at 1am the night assignment is due will use up 1 late day. Handing in an assignment at 10:15am the morning after it is due similarly consumes one late day. Handing in an assignment at 10:15am on the following day consumes two late days.
Expectations: To get top marks, programs must not only work correctly, but also must be clearly documented and easily understood. Marks may be deducted for lack of comments. Note that default comments provided in starter files are not considered sufficient for full credit. You will be deducted points if either the PDF writeup or your code are missing. The material you hand in, including figures, must be legible.
Assignment | Available | Due |
Assignment 0: Introduction to Python for Computer Vision (link) | Sep 3 | optionally Sep 10 |
Assignment 1: Image Filtering and Hybrid Images (link) | Sep 11 | Sep 24 |
Assignment 2: Scaled Representations, Face Detection and Image Blending (link) | Sep 29 | Oct 15 |
Assignment 3: Texture Synthesis (link) | Oct 15 | Oct 29 |
Assignment 4: RANSAC and Panorama Stiching (link) | Oct 29 | Nov 15 |
Assignment 5: Stereo and Optical Flow (link) | Nov 15 | Nov 28 |
Assignment 6: Deep Learning (link) | Nov 28 | Dec 5 |
(please note that these dates are given as guidelines and are subject to change) |
Schedule
Date | Topic | Reading |
W1: Sep 4 | Introduction: Intro to computer vision, Course logistics
(slides) (optional) Assignment 0: Introduction to Python for Computer Vision |
None |
W2: Sep 9 | Image Formation: Light, Reflectance, Pinhole, Perspective, Weak perspective and Orthographic projection, Lenses, Human Eye (slides) | Szeliski 2.2 |
Lecture Notes: Image Formation | ||
W2: Sep 11 | Image Filtering 1: Image as a function, Image transformations, Linear filters, Correlation and Convolution (slides) | Szeliski 3.1-3.2 |
W3: Sep 16 | Image Filtering 2: Gaussian filter, Separability, Pillbox filter, Speeding up Convolution, Fourier representation (slides) | Szeliski 3.2 |
W3: Sep 18 | Image Filtering 3: Speeding up Convolution, Low-/High-Pass, Non-linear Filters, Bilateral Filter (slides) | Szeliski 3.3 |
Lecture Notes: Image Filtering | ||
W4: Sep 23 | Sampling: Sampling Theory, Bandlimited Signal, Nyquist Rate, Aliasing, Color Filter Arrays, Demosicing
(slides) Quiz 1: Image Formation & Filtering |
Szeliski 2.3 |
Lecture Notes: FFT, Sampling, Cameras | ||
W4: Sep 25 | Scaled Representations: Template Matching, Image Pyramids, Gaussian Pyramid, Laplacian Pyramid (slides) | Szeliski 9.1 (up-till 9.1.1) |
W5: Sep 30 | Holiday (no class) |
|
W5: Oct 2 | Scaled Representations (cont): Gaussian Pyramid, Laplacian Pyramids, Image Blending, Multi-scale Template Matching (slides) | Szeliski 3.5 |
W6: Oct 7 | Local Image Features 1: Image Derivatives, Sobel, Marr / Hildreth Edge Detection, Canny Edge Detection, Image Boundaries (slides) | Szeliski 7.2 |
W6: Oct 9 | Local Image Features 2: Autocorrelation, Corner Detection, Harris, Blob Detection, Scale Selection (slides) | Szeliski 7.1 |
Lecture Notes: Derivatives, Edge Detection, Corner and Blob Detection | ||
W7: Oct 14 | Holiday (no class) |
|
W7: Oct 16 | Texture: Introduction, Filter Banks, Textons, Non-paramettric, Texture Synthesis (slides) | Szeliski 10.5 |
W8: Oct 21 | Midterm (in-class) |
|
W8: Oct 23 | Local Image Features: Corrrespondence, Invariance, Geomtric, Photometric, SIFT, HoG, SURF (slides) | Szeliski 7 |
Lecture Notes: SIFT | ||
W9: Oct 28 | Model Fitting 1: Image Alignment, RANSAC, Object Detectio (slides) | Szeliski 2.1, 8.1 |
W9: Oct 30 | Model Fitting 2: Hough Transform (slides) | Szeliski 7.4 |
W10: Non 4 | Stereo: Epipolar Geometry, Rectification, Disparity, Block Matching, Ordering Constraints, More Cameras (slides) | Szeliski |
W10: Nov 6 | Optical Flow: Introduction, Brightness Constancy, Optical Flow Constraint, Aperture Problem, Lucas-Kanade, Horn-Schunck (slides) | Szeliski 9.3 |
W11: Nov 11 | Midterm Break (no class) |
|
W11: Nov 13 | Classification: Bayes' Rule, Bayes' Risk, Loss Functions, kNN, Support Vector Machines, Bag of Words Representations (slides) | Szeliski 11.4, 12.3-12.4, 9.3, 5.1-5.2 |
W12: Nov 18 | Classification: Review, Case study on CIFAR 10, Decision Trees, Boosting (slides) | Szeliski 11.4, 12.3-12.4, 9.3, 5.1-5.2 |
W12: Nov 20 | Neural Networks: Neuron, Neural Nets
(slides) |
Szeliski 5.1.3, 5.3-5.4 |
W13: Nov 25 | Convolutional Neural Networks 1: Backpropagation, Convolutional Layers (slides) | Szeliski 5.1.3, 5.3-5.4 |
W13: Nov 27 | Convolutional Neural Networks 2: Convolutional Layers, Pooling Layers, Applications (slides) | |
W14: Dec 2 | Convolutional Neural Networks 3: Detection, Segmentation, Applications (slides) | |
Lecture Notes: Neural Networks | ||
W14: Dec 4 | Final Prep | |
TBD | Final Exam |
Academic Conduct and Integrity
The academic enterprise is founded on honesty, civility, and integrity. As members of this enterprise, all students are expected to know, understand, and follow the university policies and codes of conduct regarding academic integrity. At the most basic level, this means submitting only original work done by you and acknowledging all sources of information or ideas, and attributing them to others as required. This also means you should not cheat, copy, or mislead others about what is your work; nor should you help others to do the same. For example, it is prohibited to: share your past assignments and answers with other students; work with other students on an assignment when an instructor has not expressly given permission; or spread information through word of mouth, social media, or other channels that subverts the fair evaluation of a class exercise, or assessment. Violations of academic integrity (i.e., misconduct) lead to the breakdown of the academic enterprise, and therefore serious consequences arise and harsh sanctions are imposed. For example, incidences of plagiarism or cheating may result in a mark of zero on the assignment or exam and more serious consequences may apply if the matter is referred to the President's Advisory Committee on Student Discipline. Careful records are kept in order to monitor and prevent recurrences. For further information please consult:
- Computer Science Department Policies on Academic Integrity
- UBC policy on Academic Misconduct
- Computer Science Department Policies on Equality, Inclusion and Wellness
- Computer Science Department Policies and Responsibilities.
Diversity and Equity
UBC is trying in earnest to encourage diversity and alleviate biases and inequities to which some members of its community are subjected; this includes, for example, UBC?s Indian Residential School History and Dialogue Center, and well as the Computer Science Department?s various programs described on its Diversity in CS webpage. I try to act reasonably free of bias; for example, I do not view sexual orientation or gender as set in stone from birth or as classified by some fixed, finite set of choices; I try to use language accordingly. I will undoubtedly goof upon occasion, and I welcome feedback on these and related matters.
Student support
UBC provides resources to support student learning and to maintain healthy lifestyles but recognizes that sometimes crises arise and so there are additional resources to access including those for survivors of sexual violence. UBC values respect for the person and ideas of all members of the academic community. Harassment and discrimination are not tolerated nor is suppression of academic freedom. UBC provides appropriate accommodation for students with disabilities and for religious and cultural observances. UBC values academic honesty and students are expected to acknowledge the ideas generated by others and to uphold the highest academic standards in all of their actions. Details of the policies and how to access support are available here: https://senate.ubc.ca/policies-resources-support-student-success