CS678 Computer Vision - Fall 2021

6 minute read

Who When Where

Instructor: Prof. Gianfranco Doretto
Department of Computer Science and Electrical Engineering
West Virginia University

First lecture: August 19, 2021
Last lecture: December 9, 2021
Class meetings: Thursdays, 5:00pm - 7:50pm
Designated classroom: AERB 135

Class format: In-Person

Office Hours

Held virtually by appointment (send email)

Important Dates

  • Midterm Exam: November 18, 2021 (tentative)
  • Final Project: Due December 9, 2021 (tentative)


This is an introductory course to Computer Vision at graduate level. We will first introduce low-level image analysis concepts such as image formation and filtering, edge detection, and interest point detection and matching. We will move forward by introducing the problems of object detection and recognition and related approaches based on deep learning. In the last part of the course, we will focus on 3D scene understanding aspects, including camera calibration, stereo vision, epipolar geometry, and structure from motion.


The topics covered can be roughly summarized as follows:

  • Image formation and filtering
  • Feature detection and matching
  • Machine learning primer
  • Object detection and recognition
  • Deep learning approaches
  • Camera calibration and stereo vision
  • Depth estimation and motion
  • Selected topics


Students entering the class are expected to have a pre-existing working knowledge (at the level of an undergraduate class) of multivariate calculus, linear algebra, probability and statistics, and computer programming and algorithms, though the class has been designed to allow students with a strong numerate background to catch up and fully participate. Basic knowledge of signal processing, or optimization and machine learning is a plus. Please contact me if you are not sure whether your background is right for the course. In addition, the course assignments will be in Python. You should have prior experience with this language, or you should be willing to quickly learn a new language


Homework assignments can be downloaded from eCampus.

All assignments are due at the beginning of the class on the due date.

  • Homework 1, due XYZ at the beginning of the class

Programming Languages

In class examples will be given in Python. The programming assignments are expected to be executed in this language. Having prior experience with array manipulation in Python (with numpy) is a big plus.

Assignment Policy

I expect you to try solving each assignment on your own. However, when being stuck on a problem, I encourage you to collaborate with other students in the class, subject to the following rules:

  1. You may discuss a problem with any student in this class and work together on solving it. This can involve brainstorming and verbally discussing the problem, going together through possible solutions, but should not involve one student telling another a complete solution.
  2. Once you solve the homework, you must write up your solutions on your own, without looking at other people’s write-ups or giving your write-up to others.
  3. In your solution for each problem, you must write down the names of any person with whom you discussed it. This will not affect your grade.
  4. Do not consult solution manuals or other people’s solutions from similar courses.

Late Assignment Policy

Each student may use three “late days” for the whole course. The late day count starts from the day and time of the due date of each assignment. Fractional late days are taken into account. Additional “late days” after the first three come at a day cost of 20% of the assignment.

Attendance Policy

The WVU Catalog contains the full Attendance Policy. Consistent with WVU guidelines, students subject to University Sanctioned Absences from regularly scheduled class work, will have the opportunity to make-up for them at an alternate time. Make-up class work (e.g., assignment, exams) for absences due to any other reason will be at the discretion of the instructor. Please note that absences due to COVID-19 are no longer considered University Sanctioned Absences.

Final Project

Final project directions to be posted in the future.


The course format will predominantly consist of lectures. Students will receive programming assignments, as well as reading assignments, for which they will have to turn in a critique. Each student will complete a final project and give a project presentation to the class. Participation in discussions can be an important component of the grade, and as time permits, some students may increase their participation by volunteering to present a reading assignment.

Final grades will be based approximately on the following distribution:

50% Reading and Programming Assignments 25% Midterm 25% Final Project

Up to 10% of extra bonus points may be assigned based on exceptional class engagement and participation or based on creative solutions to programming assignments and original ideas for final projects.

Grades will be assigned according to the following scale:

A 90-100
B 80-89
C 70-79
D 60-69

Reference Material

To be added later


The main textbooks for the class are:

  • Class notes and handouts
  • S: Computer Vision: Algorithms and Applications, by Richard Szeliski. (Available online)
  • G: Deep Learning, by Ian Goodfellow and Yoshua Bengio and Aaron Courville. (Available online)
  • H: Elements of Statistical Learning, by Trevor Hastie, Robert Tibshirani, and Jerome Friedman. (Available online)

Additional books that can serve as secondary reference on the topics covered in class:

  • F: Computer Vision: A Modern Approach, (Second Edition) by David Forsyth and Jean Ponce.
  • Z: Multiple View Geometry in Computer Vision, (Second Edition) by Richard Hartley and Andrew Zisserman.
  • M: An Invitation to 3D Vision: From Images to Geometric Models, Yi Ma, Stefano Soatto, Jana Kosecka, Shankar Sastry.

Very Important Background Handouts