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 tasks.
See the course Canvas page for Lecture times, Office Hours and Assignment Handin. We will use Piazza for discussions and Q+A, see the link in Canvas. See below for administrative information about the course, including policies for assignments, grading and academic conduct.
Prerequisites: MATH 200, MATH 221 and either (a) CPSC 221 or (b) CPSC 260, EECE 320.
Assignment (due dates are Thursdays at 23:59) | Due |
Assignment 0: Introduction to Python for Computer Vision | (optional Sep 14) |
Assignment 1: Image Filtering and Hybrid Images | Sep 28 |
Assignment 2: Scaled Representations, Face Detection and Image Blending | Oct 12 |
Assignment 3: Texture Synthesis | Oct 26 |
Assignment 4: RANSAC and Panorama Stitching | Nov 9 |
Assignment 5: Scene Recognition with Bag of Words | Nov 23 |
Assignment 6: Deep Learning | Dec 7 |
Week Beginning | Lectures | Description | Notes and Resources |
---|---|---|---|
Sep 4 | Introduction | Intro to Computer Vision, Course logistics | Week 1 Notes |
Image Formation | Light, Reflectance, Cameras and Lenses, Pinhole, Perspective, Orthographic projection | Szeliski 2.2 | |
Sep 11 | Image Filtering 1 | Image as a function, Image Transformations, Linear filters, Correlation and Convolution | Week 2 Notes Szeliski 3.1-3.2 |
Image Filtering 2 | Gaussian, Pillbox filter, Separability, Low Pass / High Pass Filtering | ||
Sep 18 | Image Filtering 3 | Non-Linear Filters, Bilateral Filters, Speeding up Convolution, Fourier Representation | Lecture 5 Notes Quiz 1 Szeliski 3.3-3.4 |
Sampling | Sampling Theory, Bandlimited Signal, Nyquist Rate, Aliasing, Color Filter Arrays, Demosaicing | Lecture 6 Notes Szeliski 2.3 |
|
Sep 25 | Template Matching | Digital Imaging Pipeline continued, Template Matching, Correlation, Normalised Correlation, SSD | Lecture 7 Notes A1: Sep 28 Szeliski 3.5 |
Scaled Representations | Gaussian Pyramid, Laplacian Pyramid, Pyramid Blending, Multi-Scale Template Matching and Detection | Lecture 8 Notes | |
Oct 2 | Edge Detection | Image Derivatives, Edge Filtering, 2D Gradient, Canny Edge Detection, Image Boundaries | Lecture 9 Notes Quiz 2 Szeliski 7.1-7.2 |
Corner Detection | Image Structure, Corner Detection, Autocorrelation, Harris, Scale Selection, DoG | Lecture 10 Notes | |
Oct 9 | Texture | Texture Representation, Filter Banks, Textons, Non-Parameteric, Texture Synthesis | A2: Oct 12 Quiz 3 Szeliski 10.5 |
Midterm Review | See Canvas for example questions | ||
October 12th: NO LECTURE -- Make-up Monday | |||
Oct 16 | Midterm Week | October 17th: NO LECTURE -- midterm prep time | |
October 19th: MIDTERM EXAM -- 5pm, 75 minutes, closed book | |||
Oct 23 | Local Image Features | Correspondence, Invariance, Geoemtric, Photometric, SIFT, Object Instance Recognition | Lecture 12 Notes A3: Oct 26 Szeliski 7 |
Planar Transformations | 2D Transformations, Similarity, Euclidan, Affine, Homography, Robust Estimation, RANSAC | Lecture 13 Notes Szeliski 2.1, 8.1 |
|
Oct 30 | Stereo | Epipolar Geometry, Rectification, Disparity, Block Matching, Occlusions, Ordering Constraints | Lecture 14 Notes Quiz 4 Szeliski 12.1, 12.3-12.4 |
Optical Flow | Brightness Constancy, Optical Flow Constraint, Aperture Problem, Lucas-Kanade, Horn-Schunck | Lecture 15 Notes Szeliski 9.3 |
|
Nov 6 | Multiview Reconstruction | Multiview Matching, Bundle Adjustment, Pose Estimation, Triangulation, Image Alignment and 3D Reconstruction | Lecture 16 Notes A4: Nov 9 Szeliski 11.4, 12.3-12.4 |
Visual Classification 1 | Instance and Category Recognition, Viusal Words, Bag of Words, Support Vector Machines | Szeliski 5.1-5.2 Quiz 5 |
|
Nov 13 | MID TERM BREAK | ||
Nov 20 | Visual Classification 2 | Linear Classification, Nearest Neighbour, Nearest Mean, Bayesian Classifiers, One-Hot Regression, Regularisation, SGD, Momentum | Lecture 18 Notes Szeliski 5.1-5.2 |
Neural Networks 1 | Activation Functions, Softmax, Cross Entropy, Update rules, Perceptron, 2-layer Net, Gradients, Backpropagation | Lecture 19 Notes A5: Nov 23 Szeliski 5.1.3, 5.3-5.4 |
|
Nov 27 | Neural Networks 2 | Linear layer backward pass, Convolutional Neural Networks, Strided convolution, Max Pooling, Deep Learning, AlexNet, VGG | Lecture 20 Notes Quiz 6 Johnson EECS 4/598 |
Colour | Cone responses, Colour matching, Colour Spaces, RGB, XYZ, LAB, HSV, YCbCr | Lecture 21 Notes Szeliski 2.3.2 |
|
Final Review | See Canvas for example questions | ||
Dec 4 | NO LECTURE | A6: Dec 7 |
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. 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.
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.
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 legitimate 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.
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.