COMP-558 Winter 2015: Fundamentals of Computer Vision


Instructor: Kaleem Siddiqi
Schedule: Monday/Wednesday, 11:35 pm - 12:55 pm.
Class Room: ENGTR 1080
Office: ENGMC 420
Office Hrs: Tuesday, 14:30 pm - 16:00 pm (or by appointment.)
E-mail: siddiqi "at" cim "dot" mcgill "dot" ca
TA: Morteza Rezanejad
Email: morteza.rezanejad "at" mail "dot" mcgill "dot" ca
Office Hrs: Wednesday, 15:00 pm - 17:00 pm, McConnell Engineering, Rm 312


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 a Unix environment using C, as well as a solid theoretical grasp of computer science algorithms and data structures. This computer science background will be necessary to carry out assignments and projects which involve the design and implementation of computer vision techniques.



  • Welcome to the COMP 558 winter 2015 web page. Check here for regular updates.
  • The course pack has been ordered and should be available at the McGill bookstore (basement level) later this week.
  • A set of course notes from 2012 taken by Ruslana Makovetsky is now available by clicking here.
  • Morteza's web page where assignments and announcements will be posted is here.
  • Morteza will be holding a tutorial on Matlab for computer vision during his regularly scheduled office hours on Wednesday Jan. 14th from 15:00 to 17:00 in Trottier 3090. You are strongly encouraged to attend this tutorial since it will cover material that will be very useful for the assignments.

  • 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.
  • biological vision and early vision
  • linear systems and convolution
  • image formation and features
  • projective geometry and camera modeling
  • shape from shading and texture
  • stereo vision
  • motion analysis and optical flow
  • object representation and recognition
  • pdes, level set and variational methods

  • Student prepared course notes

    The following is a list of student prepared course notes, summarizing aspects of the material presented in 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

  • 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 (Selected chapters will be made available in a course pack).
  • "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
  • "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 1 (in-class): 20%
  • Midterm 2 (in-class): 30%
  • Assignments: 25%
  • Course Project: 25%

  • Sample past Student Projects

    The following are links to some of the final projects from a previous year.
  • 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