CS 639: Undergraduate Computer Vision

Fall 2022

Instructor: Mohit Gupta (mohitg@cs.wisc.edu)
Instructor office hours: 10.45 am — 11.45 am (Central) on Tuesdays
TAs: Shantanu Gupta (sgupta@cs.wisc.edu)
TA office hours: 11.00 am — 12.00 pm (Central) on Wednesdays, or by appointment
Mode: Online. Lectures and administrative news will be shared on Canvas.
Lecture hours: (Synchronous) 9.30 am — 10.45 am, Tuesdays and Thursdays.
Discussion: Piazza. A discussion thread will be created for each homework assignment. Please post all of your questions on the discussion board so that others may learn from your questions as well. Do not email the professor or TA directly with homework questions.

Course description

SIFT keypoint visualization from an image of a rose
SIFT keypoints from an image of a rose
(image taken from the DIV2K dataset, processed using OpenCV)

The goal of computer vision is to compute properties of the three-dimensional world from digital images. Problems in this field include reconstructing the 3D shape of an environment, determining how things are moving, and recognizing people and objects and their activities, all through analysis of images and videos.

This course will provide an introduction to computer vision, including such topics as image formation, feature detection, motion estimation, image mosaics, 3D shape reconstruction, and object recognition. Applications of these techniques include building 3D maps, creating virtual characters, organizing photo and video databases, human computer interaction, video surveillance, and automatic vehicle navigation. This is a project-based course, in which you will implement several computer vision algorithms and do a final project on a research topic of your choice.


The course assumes a reasonable knowledge of linear algebra, calculus, and statistics, as a prerequisite. The programming assignments will be in MATLAB, so a familiarity with it is essential. Please speak to the instructor if you are unsure of whether you can take the course.

Syllabus and schedule

Class Date Topic Homeworks and project
Introduction and MATLAB Refresher
R, Sep 8 Introduction and Fun with Optical Illusions
T, Sep 13 MATLAB Tutorial 1 HW-1 out
R, Sep 15 MATLAB Tutorial 2
Image Formation and Filtering
T, Sep 20 Image Formation and Sensing
R, Sep 22 Image Filtering HW-1 due
T, Sep 27 Thinking about Images in the Fourier Domain
Feature Detection and Matching
R, Sep 29 Edge and Corner Detection
T, Oct 4 Boundary Detection and Hough Transforms HW-2 out
R, Oct 6 Video Boundary Detection using Active Contours Project proposal due
T, Oct 11 2D Object Recognition using SIFT
R, Oct 13 Image Alignment: Image Transformations
Basics of Machine Learning
T, Oct 18 Image Alignment: RANSAC HW-2 due, HW-3 out
R, Oct 20 Face Detection with Support Vector Machines
T, Oct 25 Image Segmentation with k-Means Clustering and Mean-Shift
R, Oct 27 Introduction to Neural Networks and Convolutional Neural Networks
3D Vision
T, Nov 1 Radiometry and Surface Appearance
R, Nov 3 3D Shape from Photometric Stereo HW-3 due
T, Nov 8 Shape from Focus/Defocus HW-4 out
R, Nov 10 Camera Calibration and Shape from Stereo Project mid-term report due
T, Nov 15 Internet-Scale 3D Reconstruction
R, Nov 17 Optical Flow and Motion Measurement
T, Nov 22 Background Subtraction and Image Tracking HW-4 due, HW-5 out
R, Nov 24 no class (Thanksgiving)
Modern Cameras
T, Nov 29 Modern 3D Cameras: Structured Light and Time-of-Flight
R, Dec 1 Advanced Topics: Computational Cameras
T, Dec 6 Project Presentations
R, Dec 8 Project Presentations
T, Dec 13 Project Presentations
R, Dec 15 Project Presentations Project webpage due, HW-5 due

Coursework and grading

Grading will be based on a 100 point system. There are three main components:

Programming Assignments (55%)

The course will consist of 5 MATLAB programming assignments.

We will have two lectures on getting started with MATLAB, and a walkthrough video on Canvas to help get MATLAB set up on your computer with the University's license. The first homework is a simple refresher on MATLAB.

The homework assignments will be:

Title Out on Due Total points
HW 1 September 13 September 22 5
HW 2 October 4 October 18 16
HW 3 October 18 November 3 13
HW 4 November 3 November 22 7
HW 5 November 22 December 15 14

Guidelines for completing home-work assignments are given here. Please read these carefully.

Homework structure

There will be two types of problems in homeworks: walkthroughs and challenges. Below is a brief description of each problem type:

Late days

You can use up to 7 late days over the whole semester without any grade penalty. Any further delays in any homework submission after your late days are up, will result in a penalty of 20% per late day.

You do not need to notify us when you use late days; we will count them ourselves at the end of the semester. Also note that late days are not rounded up, meaning that if you are only 20 minutes late for a deadline, you still have 6 days, 23 hours, and 40 minutes remaining (Canvas does this tracking automatically).

Project (35%)

The final project is research-oriented. It can be a pure vision project or an application of vision technique in the student's own research area. Some example projects.

You should work on the project in groups of 2-3. You are expected to implement one (or more) related research papers, or think of some interesting novel ideas and implement them using the techniques discussed in class. Students are encouraged to propose their own project topics, subject to the instructor's approval.

Timeline and what to submit

There will be three checkpoints: a proposal, a mid-term report, and a final project webpage. Create a webpage for the project from the beginning. This page will include the proposal, the mid-term report, interesting implementation details, some results (e.g., images, videos, etc.), and so on. Your website should also include downloadable source and executable code. Do not modify the website after the due date of the "Project Webpage" assignment on Canvas.

Class participation (10%)

This is calculated based on answers to the multiple-choice quizzes on Canvas. Grades depend only on participation, not on correctness.


The material covered in the course will be available in the presentation slides which will be fairly self-contained. The slides will be available on Canvas. An optional text-book reading is "Computer Vision: Algorithms and Applications", by Richard Szeliski.

Academic integrity

This course follows the University of Wisconsin-Madison Code of Academic Integrity. Unless specifically authorized by the instructor, all coursework is to be done by the student working alone. Violations of the rules will not be tolerated.