CS 4501-008: Introduction to Computer Vision

Instructor: Vicente Ordóñez (vicente at virginia.edu)
Class Time: Mondays & Wednesdays between 5:00PM and 6:15PM, at Olsson Hall 120.
TA: Paola Cascante-Bonilla (pc9za at virginia.edu) -- Office Hours: Fridays from 2:00pm to 4:00pm (Rice Hall 442)
TA: Ziyan Yang (zy3cx at virginia.edu) -- Office Hours: Thursdays from 12:30pm to 2:30pm (Rice Hall 442).
Instructor's Office Hours: Tuesdays from 4:00pm to 6:00pm, Rice 310.
Discussion Forum: Piazza

Course Description: Computer Vision is about empowering computers to visually explore and reason about the world. In this course we will study how images are represented in a computer, how to manipulate them, and how to extract information (features) from images for various applications including image matching, reconstruction, and recognition. We will particulary study basic techniques to recover geometry from images, camera calibration, automatic image alignment, boundary detection, object recognition, image classification, and image retrieval/search. We will develop the intuitions, study the mathematical methods, and learn to use these in practical computer vision systems.

Learning Objectives: (a) Develop intuitions between Human Vision and Computer Vision, (b) Understanding the basics of 2D and 3D Computer Vision, (c) Become familiar with the technical approaches in computer vision such as registration, matching, and recognition, and (d) Obtain practical experience in the implementation of computer vision applications.

Textbook: There is no required textbook, but you're strongly encouraged to read chapters from the following book: "Computer Vision: Algorithms and Applications" by Richard Szeliski. This is especially important for the first half of the class. The book is available for free online or available for purchase. Also optional readings from David Forsyth & Jean Ponce's "Computer Vision: A Modern Approach".


Date     TopicReading
Wed, August 28th Welcome / Introduction to Computer Vision [pptx] [pdf] Szeliski Ch. 1
Assignment on [Image Formation, Image Processing, Image Filtering] (10pts). Due Sunday September 23th, 7pm.
Mon, September 2nd Cameras and Image Formation [pptx] [pdf] Szeliski Ch. 2.1, Forsyth and Ponce Ch. 1
Wed, September 4th Projective Geometry and Light [pptx] [pdf] Szeliski Ch 2.2 and Ch 2.3
Mon, September 9th Human Vision and Image Processing [pptx] [pdf] Szeliski 3.2
Wed, September 11th Image Filtering and Image Frequencies [pptx] [pdf] Szeliski 3.4, 3.5.2, Gonzalez & Woods (Digital Image Processing), Chapters 3 and 10.
Mon, September 16th Frequencies and Edges [pptx] [pdf] Szeliski 4.2
Wed, September 18th Canny Edge Detector - Practical Session (Lecture led by Paola and Ziyan) Szeliski 4.1.1, 4.1.2
Assignment on [Detecting Corners and Lines] (10pts). Due Sunday October 13th, 7pm.
Mon, September 23rd Interest Points: Corners and Blobs [pptx] [pdf] Szeliski 4.1.1, Szeliski 4.1.2
Wed, September 25th SIFT Feature and Hough Transform [pptx] [pdf] Szeliski 4.1.2
Mon, September 30th Practice Quiz Online Session Szeliski 6.1 and 2.1
Wed, October 2nd Quiz #1 (10pts)
Mon, October 7th No class this day / Reading Days Szeliski 7
Wed, October 9th Introduction to Machine Learning / Ethics in ML [pptx] [pdf]
Mon, October 14th Linear Classifiers (Softmax) and Generalization [pptx] [pdf]
Assignment on [K-Nearest-Neighbors, Softmax Classifier ] (10pts). Due Sunday October 27th, 7pm.
Wed, October 16th Regression, Generalization, Regularization, Momentum [pptx] [pdf]
Mon, October 21st Neural Networks and Backpropagation [pptx] [pdf]
Wed, October 23rd Convolutional (Neural) Networks (CNNs) [pptx] [pdf]
Mon, October 28th Deeper Neural Network Architectures (videoconference lecture / recorded) [pptx] [pdf]
Wed, October 30th Deep Learning for Object Detection: Methods and Overview (Led by Paola) [pptx] [pdf]
Assignment on [Deep Learning, Convolutional Neural Networks, Visual Recognition] (10pts). Due Tuesday November 19th, 7pm.
Mon, November 4th Deep Learning for Image Segmentation: Methods and Overview (Led by Ziyan) [pptx] [pdf]
Wed, November 6th Residual Networks and Recap on Object Detection and Semantic Segmentation [pptx] [pdf]
Mon, November 11th Quiz #2 (10pts) [only machine learning / deep neural networks]
Wed, November 13th Quiz Review and Practical Session on Neural Networks Szeliski 6.2.1
Mon, November 18th Camera Calibration and Dense Stereo [pptx] [pdf] Szeliski 7
Assignment on [Dense Stereo Vision] (10pts). Due Thursday December 5th, 7pm.
Wed, November 20th Epipolar Geometry: The Essential Matrix [pptx] [pdf] Szeliski 8.4
Mon, November 25th Generative Adversarial Networks (GANs) [pptx] [pdf]
Wed, November 27th Thanksgiving Day
Mon, December 2nd Optical Flow and Video Recognition [pptx] [pdf]
Wed, December 4th Other Topics and Course Recap and Final Project 2-page Report + code/notebook (30pts)

Disclaimer: The professor reserves to right to make changes to the syllabus, including project due dates and test dates. These changes will be announced as early as possible.

Prerrequisites: This course requires no specific previous background. You need to know about matrices, calculating derivatives, and probabilities (bayes rule). You will also need to be at least a moderately proficient programmer in python. There will be several small project assignments. These projects will show you the basics of modern computer vision algorithms, and will give you the tools for implementing more advanced ones. There will also be two quizzes. Being proficient in Python by completing a few projects in this language before the class starts is helpful. You should install python and jupyter.


  • Assignments: 50% (5 assignments: 10% + 10% + 10% + 10% + 10%)
  • Quizzes: 20% (2 written quizzes: 10% + 10%)
  • Final Project: 30% (2-page report + code + any optional supplementary material to showcase your work)

Late Submission Policy: You will lose 10% for each day late for the programming projects. This means anytime within the first 24 hours after the due date count as 1 full day, up to 48 hours is two and 72 for the third late day. However, you will have three late days for the whole course to address any unexpected traveling, other commitments, interviews, hackathons, etc. These three late day grace period will be accounted at the end of the semester. Please do not send the professor or the TAs emails about submitting late assignments, you do not need to explain the reason for submitting a late assignment, please just submit the late assignment. If you don't use more than three late days, you will not be penalized in any way (but this will be accounted at the end of the semester so you will not see points deducted until then). Note: the 3-day grace period doesn't apply to the course project, and it doesn't count fractions of a day, only full days (if it shows late on Collab, it is late, and any fraction of a day counts as a full day). Note: Assignments on Collab will not accept submissions indefinitely, I can only guarantee that they will accept submissions during the next three days following the deadline. In summary, if this late policy is confusing, please just don't submit late assignments, this is a large class and any emails regarding this matter are not productive use of time for the staff.

Academic Integrity "The School of Engineering and Applied Science relies upon and cherishes its community of trust. We firmly endorse, uphold, and embrace the University’s Honor principle that students will not lie, cheat, or steal, nor shall they tolerate those who do. We recognize that even one honor infraction can destroy an exemplary reputation that has taken years to build. Acting in a manner consistent with the principles of honor will benefit every member of the community both while enrolled in the Engineering School and in the future. Students are expected to be familiar with the university honor code, including the section on academic fraud." Note from the instructor: Anything you submit I will by default assume it is something you are claiming credit as your own, and if not, you should state so explicitly. For course projects and assignments, it has to be clear what was done by you and was not.

Accessibility Statement: "The University of Virginia strives to provide accessibility to all students. If you require an accommodation to fully access this course, please contact the Student Disability Access Center (SDAC) at (434) 243-5180 or sdac@virginia.edu. If you are unsure if you require an accommodation, or to learn more about their services, you may contact the SDAC at the number above or by visiting their website at https://www.studenthealth.virginia.edu/student-disability-access-center/about-sdac."

Other similar courses that might be of interest and from which I borrowed a lot of material:

Department of Computer Science, University of Virginia, Fall 2019.