Addressing the world's more pressing issues such as environmental sustainability and cultural heritage preservation increasingly relies on diverse visual applications running on emerging platforms such as Augmented/Virtual Reality headsets, autonomous machines, and smart sensor nodes. In real-time and using low power, visual computing systems must generate visual data for human to consume, immersively, or interpret visual data to provide personalized services, intelligently.
In this class, we will first study fundamental building blocks for visual computing such as real-time computer vision, computer graphics, deep learning, image sensing, optics, and human vision systems. We will then explore application domains that build on top of these fundamental building blocks such as AR/VR, computational photography/imaging, robotics, and self-driving cars. A central theme of the course is to synergistically co-design and co-optimize across many important layers of a computer system, including application development, programming language and framework, compiler, OS, and hardware architecture.
This class will combine instructor-led lectures, student-led presentations, paper reading/critiquing, and programming assignments and projects.
There isn't any hard prerequisite for this course. A key message I want to communicate to you all is that everything we will learn can be derived from first principles. Nothing is mysterious as long as you follow the basic laws of reasoning and exercise critical thinking.
That said, you will find your learning experience much more pleasant if you have a solid understanding of the following basic topics, which shouldn't be anything beyond your high-school and first-year college education:
- Linear algebra, especially matrix and vector computations
- Basic calculus
- Basic probability
- Basic physics
- Computer systems (CSC 252 equivalent), could be useful to understand the hardware part of the course
At the start of the semester, there will be a homework 0, which is designed to calibrate whether you have the basic knowledge of the topic above. That homework is not meant to discourage you, but to enable you to better prepare for the course, knowing on what topics you need a bit more time to refresh your brain.