CS 4501-008: Introduction to Computer Vision

Instructor: Vicente Ordonez (vicente at virginia.edu)

Class Time: Monday & Wednesday between 2:00PM and 3:15PM, at Thornton Hall E316.
Instructor's Office Hour: Tuesdays from noon to 1pm (Rice 310).
TA: Fengyang Zhang (fz2ds at virginia.edu) -- Hours: Tuesday 3pm to 4pm (Rice 340), Thursday 3pm to 4pm (Rice 340)
TA: Gautam Somappa (gs9ed at virginia.edu) -- Hours: Monday 4pm to 5pm (Rice 436), Tuesday 2pm to 3pm (Rice 436)
TA: Siva Sitaraman (ks6cq at virginia.edu) -- Hours: Wednesday 3:30pm to 4:30pm (Rice 436), Thursday 2pm to 3pm (Rice 340)
Discussion Forum: http://piazza.com/virginia/spring2018/cs4501008/home

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: Readings will be assigned from "Computer Vision: Algorithms and Applications" by Richard Szeliski. 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" also available here.

Syllabus

Date     TopicReading
Wed, January 17th Introduction to Computer Vision [pptx] [pdf] Szeliski Ch. 1
Mon, January 22th Cameras and Image Formation [pptx] [pdf] Szeliski Ch. 2.1, Forsyth and Ponce Ch. 1
Wed, January 24th Projective Geometry and Light [pptx] [pdf] Szeliski Ch 2.2 and Ch 2.3
Assignment on Image Formation, Image Processing, Image Filtering [Google Colaboratory]. Due February 11th 5pm EST.
Mon, January 29th Light and Image Processing [pptx] [pdf] Szeliski 3.2
Wed, January 31st Image Filtering and Image Frequencies [pptx] [pdf] Szeliski 3.4, 3.5.2
Mon, February 5th Filtering, Edges, and Frequencies [pptx] [pdf] Szeliski 4.2
Wed, February 7th Frequencies, Edges, and Corners [pptx] [pdf] Szeliski 4.1.1, 4.1.2
Assignment on Corners, Interest Points, and Hough Transform [Google Colaboratory]. Due February 25th 5pm EST.
Mon, February 12th Corners and Interest Points [pptx] [pdf] Szeliski 4.1.1, Szeliski 4.1.2
Wed, February 14th Local Feature Descriptors (SIFT) [pptx] [pdf] Szeliski 4.1.2
Mon, February 19th Hough Transform and RANSAC [pptx] [pdf] Szeliski 6.1 and 2.1
Wed, February 21st Camera Calibration and Dense Stereo [pptx] [pdf] Szeliski 6.2.1
Mon, February 26th Dense Stereo and Epipolar Geometry [pptx] [pdf] Szeliski 7
Wed, February 28th Epipolar Geometry and Structure from Motion [pptx] [pdf] Szeliski 7
Mon, March 5th No class this day / Spring Break
Wed, March 7th No class this day / Spring Break
Assignment on Stereo Vision, 3D Reconstruction [Google Colaboratory]. Due March 25th 5pm EST.
Mon, March 12th Structure from Motion and Optical Flow [pptx] [pdf] Szeliski 8.4
Wed, March 14th Quiz 1
Mon, March 19th Introduction to Machine Learning [pptx] [pdf]
Wed, March 21st No Class this Day: Weather Warning
Mon, March 26th Guest Lecture: Michael Holroyd, Arqball Chief Scientist. Talk: Arqspin-to-3D
Wed, March 28th Linear Classifiers (Softmax) and Generalization [pptx] [pdf]
Assignment on K-Nearest-Neighbors, Softmax Classifier [Google Colaboratory]. Due April 15th 5pm EST.
Mon, April 2nd Generalization, Global Features and more on Image Classification [pptx] [pdf]
Wed, April 4th Neural Networks and Backpropagation [pptx] [pdf]
Mon, April 9th Classes cancelled today.
Wed, April 11th Convolutional (Neural) Networks (CNNs) [pptx] [pdf]
Assignment on Deep Learning, Convolutional Neural Networks, Visual Recognition [Google Colaboratory]. Due April 29th 5pm EST.
Mon, April 16th Deeper Neural Network Architectures [pptx] [pdf]
Wed, April 18th Deep Learning for Object Detection: Methods and Overview [pptx] [pdf]
Mon, April 23th Deep Learning for Image Segmentation: Methods and Overview
Wed, April 25th Generative Adversarial Networks (GANs)
Mon, April 30th Quiz 2
Wed, May 2nd No class this day / Reading Day

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.

Grading: Projects: 80% (5 programming projects: 15% + 15% + 15% + 15% + 20%), Quizzes: 20% (2 written quizzes: 10% + 10%).
Late Submission Policy: You will lose 10% for each day late for the programming projects. This means the first 24 hours after the due date count as 1 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 can always submit late assignments, and you have a grace period of 3 days for the semester. 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).

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."

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

Department of Computer Science, University of Virginia, Spring 2018.