Computer Vision

CPSC 425 // Winter Term 1 2023

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.

Instructors

Course Information

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.

Assessment

Books

Assignments


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

Course Overview


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

Course Policies

Assignments

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.

Late Hand-In

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.

Grade Disputes

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.