Overview
Course Description
This is an advanced undergraduate and graduate level course focusing on the fundamentals of Computer Vision. Recently we have noticed an explosion in Computer Vision research and real world applications, creating a huge impact in society. This revolution has been mainly powered by the advances in Deep Learning techniques and computing resources. In this course we will focus on learning the fundamentals of Computer Vision, and we will try to answer the following questions: (a) How do we perceive color and how are images formed? (b) How do we process images and extract features from them? (c) How do we connect the 3D world to 2D images and reconstruct 3D from images? (d) How do we develop machine perception that recognize, detect, and segment objects? We will also study how some Computer Vision algorithms can introduce bias and cause harm to a certain portion of the population, often underrepresented communities, and how as researchers and practitioners we can do better.
Prerequisite
MATH 233 (or any multivariate calculus course) + MATH 347 (or any linear algebra course) + COMP 211 (or COMP 311) + COMP 301 (or COMP 411) + some basic knowledge of probability + coding in Python. There will be a linear algebra, calculus and probability review in one lecture followed by a short assignment. Your ability to handle this assignment will indicate your mathematical preparedness for the rest of the course. Knowledge of deep learning is helpful, but not required.
Resources
Computer Vision: Algorithms and Applications, 2nd ed., by Richard Szelski
Multiple View Geometry in Computer Vision , by Richard Hartley and Andrew Zisserman.
Computer Vision: A Modern Approach, by David Forsyth and Jean Ponce
Personnel
Instructor Office Hours: Thrs 3.30-4.30pm (SN 255).
TA: Misha Shvets. email: mshvets@cs.unc.edu TA Office hours: Tues 3.30-5.00pm (FB 230).
Assignments will be handled via Canvas..
Goal/Student Learning Outcomes
(a) Understand the fundamentals of Computer Vision. (b) Develop implementation expertise by writing codes in Python to solve various Computer Vision tasks. (c) Develop strong mathematical frameworks required for problem solving. (d) Learn to read and write scientific articles and publications.