Computer Vision (CPSC 425)
Winter Term 1, 2020
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: Tuesday 5-6pm and Thursdays, 2-3pm (online) - TAs:
- Mona Fadaviardakani
(
mfadavi@cs.ubc.ca
)
Office hours: Mondays, 6-7pm (Zoom) - Eric Hedlin
(
iamerich@cs.ubc.ca
)
Office hours: Wednesdays, 8-9pm (Zoom) - Suhail Mohammed
(
suhail33@cs.ubc.ca
)
Office hours: Tuesdays, 3:30-4:30pm (Zoom) - Ruolan Sophia Ye
(
ruolye@hotmail.com
)
Office hours: Fridays, 8-9am (Zoom) - Class meets:
- Mon, Wed, Fri 4:00 - 5:00 pm,
Online via Zoom
- Piazza
- piazza.com/ubc.ca/winterterm12020/cpsc425
- piazza.com/ubc.ca/winterterm12020/cpsc425/home (class link)
Prerequisites: MATH 200, MATH 221 and either (a) CPSC 221 or (b) CPSC 260, EECE 320.
Academic Conduct: Each student is responsible for understanding and abiding by the University and Departmental policies on academic conduct. Any violations of such policies will be punishable according to the guidelines. Specifically:
- 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.
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, by R. Szeliski, Springer, 2010. (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.
Additional Books and Materials: The following textbooks are also on reserve in the reading room.
- Concise Computer Vision: An Introduction into Theory and Algorithms, by R. Klette, Springer, London, 2014. (can be freely downloaded as a PDF from SpringeLink, through UBC Library; must login using CWL).
- Computer vision : models, learning, and inference, by S.J.D. Prince, Cambridge University Press, 2012.
- Multiple view geometry in computer vision (2nd edition), by R. Hartley and A. Zisserman, Cambridge University Press, 2003.
- Pattern classification (2nd edition), by R.O. Duda, P.E. Hart, and D.G. Stork, Wiley, 2001.
Grading
Quizzes | 10% |
Assignments | 45% |
Midterm exam | 15% |
Final exam | 30% |
(The instructor reserves the right to change this scheme, but does not anticipate using that right.) |
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 Clicker quiz, please let instructor know and provide appropitate evidance within 1 week of the original quiz date. Note that Clicker quiz missed for ligitimate and documented reason (e.g., attandance of conferences, sickness, travel for job interview) will simply 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.
Assignments (45% 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 9 | optionally Sep 16 |
Assignment 1: Image Filtering and Hybrid Images (link) | Sep 16 | Sep 30 |
Assignment 2: Scaled Representations, Face Detection and Image Blending (link) | Sep 30 | Oct 14 |
Assignment 3: Texture Synthesis (link) | Oct 14 | Oct 23 |
Assignment 4: RANSAC and Panorama Stiching (link) | Oct 23 | Nov 6 |
Assignment 5: Scene Recognition with Bag of Words (link) | Nov 6 | Nov 20 |
Assignment 6: Deep Learning (link) | Nov 20 | Dec 2 |
Schedule
Date | Topic | Reading |
W1: Sep 9 | Introduction: Intro to computer vision, Course logistics (slides) | None |
W1: Sep 11 | Image Formation: Pinhole, Perspective, Weak perspective and Orthographic projection, Lenses (slides) | Forsyth & Ponce, 1.1.1 -- 1.1.3, 2.1 |
W2: Sep 14 | Image Formation: Lenses, Human Eye (slides) Image Filtering: Image as a function, Image transformations(slides) |
Forsyth & Ponce, 1.1.4, 1.2.1 |
W2: Sep 16 |
Image Filtering: Linear filters, Correlation and Convolution (slides) (optional) Assignment 0: Introduction to Python for Computer Vision
|
Forsyth & Ponce, 4.1 |
W2: Sep 18 | Image Filtering: Gaussian filter, Separability, Pillbox filter, Speeding up Convolution, Fourier representation (slides) | Forsyth & Ponce, 4.2, 4.3 |
W3: Sep 21 | Image Filtering: Non-linear Filters, Bilateral Filter (slides) | |
W3: Sep 23 | Sampling: Sampling Theory, Bandlimited Signal, Nyquist Rate, Aliasing (slides) | Forsyth & Ponce, 4.4 |
W3: Sep 25 |
Sampling: Color Filter Arrays, Demosicing (slides)
Template Matching: Introduction (slides) Quiz 1 |
Forsyth & Ponce, 4.5, 4.6 |
W4: Sep 28 | Scaled Representations: Template Matching, Image Pyramids, Gaussian Pyramid (slides) | Forsyth & Ponce, 4.6, 4.7 |
W4: Sep 30 |
Scaled Representations, Local Image Features: Gaussian Pyramid, Image Gradients (slides) Assignment 1: Image Filtering and Hybrid Images |
|
W4: Oct 2 | Local Image Features: Image Gradients, Sobel, Marr / Hildreth Edge Detection (slides) | Forsyth & Ponce, 5.1 - 5.2 |
W5: Oct 5 | Local Image Features: Canny Edge Detection, Image Boundaries (slides) | |
W5: Oct 7 | Local Image Features: Laplacian Pyramid, Conner Detection, Autocorrelation, Harris (slides) Quiz 2 |
Forsyth & Ponce, 5.3.0 -- 5.3.1 |
W5: Oct 9 | Local Image Features: Autocorrelation, Harris (slides) | |
W6: Oct 12 | ||
W6: Oct 14 | Local Image Features: Blob Detection, Characteristic Scale (slides) Assignment 2: Scaled Representations, Face Detection and Image Blending |
Forsyth & Ponce, 6.1, 6.3 |
W6: Oct 16 | Texture: Synthesis, Analysis (slides) Quiz 3 |
Forsyth & Ponce, 3.1--3.3 |
W7: Oct 19 | Texture: Analysis (slides) | |
W7: Oct 21 | Midterm | |
W7: Oct 23 | Local Image Features : SIFT (slides) | Forsyth & Ponce, 3.1--3.3, 5.4 and SIFT |
W8: Oct 26 |
Local Image Features : SIFT (cont), HOG, SURF, Object Detection (slides) Assignment 3: Texture Synthesis |
Forsyth & Ponce, 5.4, 10.4.2, 10.1, 10.2 |
W8: Oct 28 | Model Fitting : Object Detection, RANSAC (slides) | Forsyth & Ponce, 10.1, 10.2 |
W8: Oct 30 | Model Fitting : Hough Transform (slides) | |
W9: Nov 2 | Model Fitting, Stereo : Hough Transform Applications, Stereo Intrro (slides) | Forsyth & Ponce, 5.4, 10.4.2, 10.1, 10.2 |
W9: Nov 4 | Stereo: Rectification, Block Matching, Ordering Constraints, More Cameras (slides) | Forsyth & Ponce, 10.6, 6.2.2, 9.3.1, 9.3.3, 9.4.2 |
W9: Nov 6 | Optical Flow: Introduction, Aperture Problem, Lucas-Kanade, Horn-Schunck (slides) Assignment 4: RANSAC and Panorama Stiching |
|
W10: Nov 9 | Classification: Bayes' Rule, Bayes' Risk, Loss Functions, kNN, Support Vector Machines (slides) | Forsyth & Ponce, 15.1, 15.2 |
W10: Nov 11 | Holiday | |
W10: Nov 13 | Scene Classification: Bag of Words Representations, VLAD (slides) | Forsyth & Ponce, 16.1.3, 16.1.4, 16.1.9 |
W11: Nov 16 | Classification: Decision Trees, Boosting (slides) | Forsyth & Ponce, 15.1, 15.2, 17.1 |
W11: Nov 18 | Object Detection: Viola & Jones Face Detector (slides) | |
W11: Nov 20 | Neural Networks: Neuron, Neural Nets (slides) Assignment 5: Scene Recognition with Bag of Words |
|
W12: Nov 23 | Convolutional Neural Networks: Backpropagation, Convolutional Layers (slides) | |
W12: Nov 25 | Convolutional Neural Networks: Convolutional Layers cont, Pooling Layers (slides) | |
W12: Nov 27 | Convolutional Neural Networks: Applications (slides) | |
W13: Nov 30 | Color : Color Matching, Color Spaces (RGB, XYZ, HSV) (slides) | Forsyth & Ponce, 3.1--3.3 |
W13: Dec 2 | Grouping: Agglomarative Clustering, Divisive Clustering, K-means, Segmentation (slides) Assignment 6: Deep Learning |
Forsyth & Ponce, 10.6, 6.2.2, 9.3.1, 9.3.3, 9.4.2 |
Dec 16 | Final |