Topics covered
The course will cover classical and modern aspects of computer vision. The first part of the course covers topics on physics and geometry:
Radiometry
Light and color
Image formation and cameras
The second part of the course covers topics that allow us to model and process natural images:
Optical flow and depth from parallax
Linear filtering and convolutions
Modeling natural images and applications (e.g., image de-noising and texture synthesis)
Image alignment and matching
The last part of the course will look into topics related to data and machine learning for extracting information from images that include
Datasets and benchmarks
Machine learning: linear models, nearest neighbors, decision trees, deep networks and recent developments.
Learning and transfer learning with deep networks
Advanced topics such as graphics and vision (GANs, neural rendering, etc.), object detection, semantic segmentation, and video understanding.
Textbooks and resources
The primary source material for the class are the lectures supplemented by readings from online resources. Throughout the lectures we will refer to applications and research directions which might involve reading research papers, experimenting with a software platform, etc.
There is no required textbook for this class. Nevertheless the following are useful computer vision textbooks:
Computer Vision: A Modern Approach by David Forsyth and Jean Ponce (2nd ed.) (optional)
Computer Vision: Algorithms and Applications, by Richard Szeliski (online copy).
We will post links to the relevant sections of Richard Szeliski's (RS) book for each lecture.
And these for machine learning:
Machine Learning: a Probabilistic Perspective by Kevin P. Murphy (Amazon link) (optional)
The Elements of Statistical Learning, T. Hastie, R. Tibshirani, and J. Friedman (optional)
Pattern Recognition and Machine Learning, Christopher M. Bishop (optional)
Machine Learning, Tom M. Mitchell (optional)
A Course in Machine Learning, Hal Daumé III (available online)
Neural Networks - a Systematic Introduction, Raul Rojas (available online)
Programming and background
The course assumes a strong ability to program and background in linear algebra, probability and statistics. Take a look at the resources below to brush up your math and programming skills.
Linear algebra review (via David Kriegman)
Random variables review (via David Kriegman)
Deep learning: Pytorch, TensorFlow, Matconvnet
Much of the grade is based on projects which requires a writeup. Here are useful tips on how to write good reports.
Past offerings of 670 at the university
Fall 2019, Instructor: Subhransu Maji
Fall 2018, Instructor: Subhransu Maji
Fall 2017, Instructor: Subhransu Maji
Fall 2016, Instructor: Subhransu Maji
Fall 2015, Instructor: Subhransu Maji
Fall 2014, Instructor: Subhransu Maji
Fall 2013, Instructor: Erik-Learned Miller