COMP-558 Fall 2017: Fundamentals of Computer Vision


Instructor: Kaleem Siddiqi
Schedule: Wednesday/Friday, 10:05 am - 11:25 am.
Class Room: ENGMC 103
Office: ENGMC 420
Office Hrs: Wednesday, 12:30 to 13:30 or by appointment.
E-mail: siddiqi "at" cim "dot" mcgill "dot" ca
Babak Samari
Email: babak.samari "at" mail "dot" mcgill "dot" ca
Office Hrs: Tuesdays: 3:30 - 5:30 pm, McConnell 312
Ozan Ciga
Email: ozan.ciga "at" mail "dot" mcgill "dot" ca
Office Hrs: Thursday, 15:30 to 17:30, TR 3090


Computer vision involves the development of machine algorithms which have the potential to mimic a biological organism's ability to ``see''. Though the sense of vision is immediate for most people, the complexity of the task that the human visual system accomplishes is enormous. In general, the inference of properties of the three-dimensional world from two-dimensional images is very challenging.

Nevertheless, this has been a rich area for investigation for the past several years. To date the field has advanced to the point where a core of algorithms and techniques have been developed for specific visual tasks in constrained settings, with a solid mathematical foundation. Several international research laboratories now exist and applications of computer vision techniques in industry, robotics, and bio-medicine abound. This course seeks to present the fundamentals of computer vision at an advanced undergraduate/beginning graduate level.

The mathematical background for the course includes calculus and linear algebra. Fundamentals of other areas, such as linear systems and partial differential equations, will be covered as necessary. It will also be assumed that students have practical experience with programming in Matlab as well as a solid theoretical grasp of computer science algorithms and data structures. Familiarity with other languages such as Java and C will be an asset. This computer science background will be necessary to carry out assignments which involve the design and implementation of computer vision techniques.

Calendar and News

  • I will be posting entries and news items on the mycourses page. For now please check there.

  • Content

    The course will cover a number of topics ranging from low level to high level vision, with a focus on both the mathematical formulation of vision tasks, and the development and implementation of algorithms to solve them. Lecture topics, subject to revision, are listed below.
  • motivation, early vision
  • linear systems and convolution
  • image formation and feature detection
  • projective geometry and camera modeling
  • camera calibration, homographies
  • stereo vision
  • motion analysis, optical flow, tracking
  • active contours, scale-space methods
  • object representation and recognition

  • Useful Links

  • The Computer Vision Home Page
  • Annotated Computer Vision Bibliography
  • CVonline Compendium of Computer Vision

  • Prerequisites

  • MATH-222 (Calculus III)
  • MATH-223 (Linear Algebra)
  • COMP-206 (Programming Techniques)
  • COMP-360 (Algorithm Design Techniques)

  • Text Books

  • Introductory Techniques for 3D Computer Vision'', by Emanuele Trucco and Alessandro Verri, Prentice-Hall, 1998. ON RESERVE
  • "Three-Dimensional Computer Vision: A Geometric Viewpoint'', by Olivier Faugeras, MIT Press, 1996. ON RESERVE
  • "Computer Vision: A Modern Approach'', by David Forsyth and Jean Ponce, 2003. ON RESERVE
  • "Multiple View Geometry in Computer Vision", by Richard Hartley and Andrew Zisserman, Cambridge University Press, 2004. McGill library e-book
  • "Computer Vision: Algorithms and Applications'', by Richard Szeliski, Springer, 2010. PDF available here.

  • McGILL Policy Statements on Academic Integrity

  • McGill University values academic integrity. Therefore, all students must understand the meaning and consequences of cheating, plagiarism and other academic offences under the Code of Student Conduct and Disciplinary Procedures (see honest and integrity for more information). In accord with McGill University's Charter of Students' Rights, students in this course have the right to submit in English or in French any written work that is to be graded.

  • Use of Text-matching software: Instructors who may adopt the use of text-matching software to verify the originality of students' written course work must register for use of the software with the ICS Service Desk and must inform their students before the drop/add deadline, in writing, of the use of text-matching software in a course.

  • In accord with McGill University's Charter of Students' Rights, students in this course have the right to submit in English or in French any written work that is to be graded.

    Every student should familiarize themselves with McGill's policies on academic integrity, which are detailed here .

    They should read the handbook on student rights and responsibilities which is available here.

    Any suspected cases of plagiarism or cheating will be reported to the office of the Dean.


  • Midterm: 20%
  • Final exam: 40%
  • Assignments: 40% (4 in total; the later assignments will carry more weight)

  • Older Stuff from past versions of this course.

    The course is undergoing significant revision this term and newly prepared material will be provided via the mycourses page. The material below is provided mostly for historical purposes.

    Student prepared course notes

    The following is a list of student prepared course notes, summarizing aspects of the material presented in past versions of the class, or in reference material and texts. It is provided here, in uneditted form.
  • Biological Vision (pdf) James Yap
  • Biological Vision (pdf) Louis Simard
  • Linear Systems and Convolution (pdf) Simon Wong
  • Shape From Shading (pdf) Craig Jerusalim
  • Shape From Shading (pdf) Mani Ghasemlou
  • Stereo (pdf) Andrew Chang
  • Stereo (pdf) Daniel Scheidig
  • Optical Flow (pdf) Irina Kezele
  • Motion (doc.gz) (pdf) Karl Nyberg
  • Motion (html) Malvika Rao
  • Object Representation (pdf) Olivier Dubois
  • Recognition (pdf) Mathieu Lamarre

  • Sample past Student Projects

    The following are links to some of the final projects from a previous year. This is from past iterations of the course and is provided for historical purposes only.
  • Marr & Poggio's Cooperative Stereopsis (ps.gz). Mani Ghasemlou
  • Automatic Camera Tracking From An Uncalibrated Motion Sequence. Toulouse de Margerie
  • The Perception of Apparent Motion. Craig Jerusalim
  • SURF: Speeded-up Robust Features. Anqi Xu and Gaurav Namit
  • Hair Modeling using Generalized Helicoids. Emmanuel Piuze. (Also see the Computer Graphics Forum paper , which appeared later.)
  • Bayesian Video Matting Using Motion Based Segmentation Dante Denigris and Collm Elliott
  • Optmizing Viola-Jones Face Detection for Use in Webcams Theo Ephraim and Tristan Himmelman
  • Combining Sparse and Dense Optical Flow Techniques Jimmy Li and Arnold Kalmbach
  • Face Detection and Tracking with a Web Camera Ruslana Makovetsky and Gayane Petrosyan
  • Surface Reconstruction Using the Level Set Method Alexandre Vassalotti and Eric Renaud-Houde
  • Sparse Coding Applied to Digit Recognition Clement Gehring and Simon Lemay
  • Light Source Estimation using Kinect Sam Jiang and Shayan Rezvankhah
  • Biologically Inspired Object Recognition using Gabor Filters William Hamilton
  • Recognizing Facial Expressions in Videos Lin Su and Matthew Balazsi
  • Beyond Lambertian Shape from Shading Qing Tian and Carl Mueller-Roemer
  • Panoramic Image Stitching Kai Wang and Pengbo Li
  • Biologically Motivated Object Recognition Peter Henderson and Dhirendra Singh