Source: Albrecht DÜRER, 1525 (more info)

This introductory computer vision class will address fundamental questions about getting computers to "see" like humans. We investigate questions such as -- What is the role of vision in intelligence? How are images represented in a computer? How can we write algorithms to recognize an object? How can humans and computers "learn to see better" from experience? We will write a number of basic computer programs to do things like recognize handwritten characters, align images to create panoramas, and understand the structure of images.

The course will introduce a number of key concepts, techniques and algorithms. The focus will be on the mathematical foundations rather than the use of software packages as a black box. The course requires appropriate mathematical background in probability and statistics, calculus, linear algebra. Prior familiarity with Matlab/Python will be helpful, but not required. Students will be taught basic programming using Matlab/Python during the course. The course has the following official prerequisites: CMPSCI 240 or CMPSCI 383 with a 'C' or better.

**Class hours:**Tuesday/Thursday 11:30AM - 12:45PM, ELAB 304**TA office hours:**Monday 4:00-5:00pm, Tuesday 3:00-4:00pm (CS 207)**Instructor office hours:**Tuesday 12:45-1:45, CS 274- Course materials and homework assignments will be posted on moodle. Registered students can acccess it here.
- We will use piazza for discussions and annoucements. You can sign up here.
- Folks without access to moodle can find the lecture slides here.

- Computer Vision: A Modern Approach by David Forsyth and Jean Ponce (2nd ed.)
- Computer Vision: Algorithms and Applications, by Richard Szeliski (online copy).

- NumPy tutorial from Stanford CS231n
- NumPy for matlab users
- Matlab resources
- Obtaining Matlab from the university.
- Vector geometry notes by Denis Sevee
- Linear algebra review (via David Kriegman)
- Random variables review (via David Kriegman)

- Week 1: Introduction
- Week 2: Pinhole camera model, lenses, sensors
- Week 3: Signal quantiaztion, color maps, basic image processing
- Week 4: Light and color perception
- Week 5: Linear filtering
- Week 6: Corner detection
- Week 7: Scale-invariant feature detection
- Week 8: Image transformation and feature matching
- Week 9: Recognition basics
- Week 10: Image representations
- Week 11: Intro to machine learning
- Week 12: Convolutional neural networks
- Week 13: Advanced topics

- Spring 2017, Instructor: Subhransu Maji
- Spring 2016, Instructor: Subhransu Maji
- Spring 2014, Instructor: Erik Learned-Miller

- CMPSCI 373: Introduction to Computer Graphics
- CMPSCI 590: Intelligent Visual Computing
- CMPSCI 670: Computer Vision
- CMPSCI 682: Neural Networks: A Modern Introduction