Introduction to Visual Computing

CMPT 361, Spring 2024 - with online support

Instructors: Yağız Aksoy, Jason Peng    TAs:

How to take this course:
This course is composed of two mandatory and important parts: lecture videos and live lectures. Live lectures are accessible through Zoom where the recordings will be made available, as well as in-person. Every week, you need to watch the lecture videos before coming to the live lectures. The live lectures have many different activities that will help you develop your understanding, where we go over hard concepts and formulations in further detail, discuss your questions on previous week's subjects, programming assignments, and general discussions about every aspect of visual computing.

Online Lectures:
You do not need to attend the lectures in-person to get the best out of this course. All live lectures will be broadcast over Zoom, where you can ask questions and interact with the professor. The recordings of these lectures will also be made available.

COVID-19 Policy:
In order to have a safe learning environment for everyone, we have several guidelines for in-person lectures:
- If you are feeling sick or you suspect you might have contracted COVID-19, please do not attend the in-person lectures and instead join the Zoom sessions.
- If you have contracted COVID-19, please do not attent the in-person lectures for at least 2 weeks after your initial diagnosis. Please join the Zoom sessions or follow the lecture recordings.

Course description:
Classical computer graphics has had a focus on realistic image synthesis, when given an explicitly defined 3D scene. In its modern era, graphics research has extended its reach to cover the synthesis and generation of all visual content, beyond scene projection and rendering. Hence, there is often a need to first acquire an understanding of the visual information being processed and created, which is an analysis task studied in computer vision. Indeed, modern computer graphics has seen “an increasing integration of techniques from computer vision” (from page 2 of “Computer Graphics, Principles and Practice, Third Edition, by Hughes, et al.). In this course, which will be co-taught by two instructors, we will offer an introduction to fundamental concepts and techniques in both computer graphics and computer vision, with more emphasis placed on material that is deemed central to both fields. With a focus on classical topics, we will also shed light on the most recent trend and developments in the fields and the interplay between them. Students completing this course will be well prepared for more advanced courses in both computer graphics and computer vision. Programming assignments will be conducted in WebGL for the graphics-related problems and MATLAB for vision-related ones.

Prerequisites: (i) CMPT 225 - Data Structures and Programming, (ii) MATH 232 or 240 - Linear Algebra

You should brush up on your linear algebra skills as soon as possible to make the best of this class. 3Blue1Brown has introductory Linear Algebra classes on Youtube with great visual explanations of concepts that we will make use of during the class.

Live lectures: Wednesdays: 9:30am - 10:20am, Fridays: 8:30am - 10:20pm, in person and online on Zoom

Announcements, Lecture Notes, Questions and Discussion

Our main venue for communication will be the discussion forum in CourSys .

Grading

4 Programming assignments, each 10% - 40%
Midterm - 20%
Final - 40%

Textbooks

Vision reading (supplementary, not required): Computer Vision: Algorithms and Applications, 2nd ed. , Richard Szeliski, 2020 (online)

Graphics required reading: Interactive Computer Graphics: A Top-Down Approach with WebGL, 7th ed., E. Angel and D. Shreiner, ISBN: 9780133574845 (acronym for readings is "CG")

-->

Tentative schedule

Computer Graphics is the field of creating visual images and animations using computers. It involves generating and rendering 2D and 3D images, as well as creating and manipulating visual effects. Computer Vision is the field of enabling computers to understand and interpret visual information from the world. It involves analyzing and interpreting images and video to extract meaningful information and make decisions. Both Computer Graphics and Computer Vision are part of the larger field of Visual Computing, which focuses on using computers to process and understand visual information. The fundamental background knowledge for both fields includes concepts in mathematics, such as geometry, linear algebra, and calculus, as well as algorithms and data structures for image and video processing. In recent years, the fields of Computer Graphics and Computer Vision have become increasingly intertwined due to the use of machine learning techniques, particularly deep learning, in both fields. Deep learning models have been used to improve image generation and rendering in Computer Graphics, as well as to improve image analysis and interpretation in Computer Vision. As a result, researchers and practitioners in these fields often have a background in both Computer Graphics and Computer Vision, as well as machine learning. In this course, we present a unified background on Visual Computing that includes topics in both Computer Graphics and Computer Vision. A modern Computer Graphics professional is expected to have a fundamental understanding of the entire Visual Computing umbrella. In the schedule below, we marked the general Visual Computing topics that are fundamental to both CV & CG with green, and marked the topics that are more specificaly about Computer Vision and Computer Graphics with blue and yellow, respectively. The first half of the course will be covered by Y. Aksoy, and the latter by J. Peng.

Video lectures are available on YouTube for you to follow weekly before the live lectures (see links below; video lectures are also available in SFU Vault if you have trouble accessing YouTube). We will have live lectures also over Zoom during scheduled course hours where every student are expected to join. The live lectures are where we go into some topics in more detail, and complete your understanding of the course topics. This is also the opportunity to ask open questions after lectures as we would have done in a traditional classroom.

Aksoy Lectures (Lecture Playlist )

Peng Lectures (Lecture Playlist )

Jan 10

Jan 12

Reading: webpage

Reading: 2.3.2, 3.1

Reading: 3.2, 3.3

Jan 17

Jan 19

Reading: 7.2

Reading: 5.3, 5.4

Reading: 3.4
--Slides--

Jan 24

Jan 26

Reading: 7.1.1

Reading: 7.1.2, 7.1.3
--Slides--



Jan 31 (Updated!): Assignment 1 deadline. Requires video lectures V1 to V6.


Jan 31

Feb 2

Reading: 2.1.1, 8.1.1; 8.1.1, 8.1.2, 8.1.4
--Slides 1-- --Slides 2--

Reading: 5.2.1, 5.2.2, 7.5.1, 7.5.2
--Slides--

Feb 7

Feb 9

Reading: 7.1.5
--Slides--

Reading: 2.1.4, 2.1.5
--Slides--


--Slides--



Feb 12: Assignment 2 deadline. Requires video lectures V7 to V10.


Feb 14

Feb 16

Midterm

Reading: 12.3, 12.4, 12.5
--Slides--

Feb 21

Feb 23



Reading break


Feb 28

Mar 1


Reading: CG 1.1
--Slides--


Reading: CG 1.2-5
--Slides--


Reading: CG 4.2
--Slides--

Mar 6

Mar 8


Reading: CG 2.4, 4.6, 11.1
--Slides--


Reading: CG 8.1-2
--Slides--


Reading: CG 8.8-10
--Slides--

Mar 13

Mar 15


Reading: CG 12.1-3
--Slides--


Reading: CG 8.6.1, 9.10.2-3
--Slides--



Mar 17: Assignment 3 deadline. Requires video lectures G1 to G4.


Mar 20

Mar 22


Reading: CG 6.2-5
--Slides--


Reading: CG 1.7-9
--Slides--

Mar 27

Mar 29


Reading: CG 7.3-5
--Slides--



Good Friday


Apr 3

Apr 5


Reading: CG 7.7-8, 5.11
--Slides--


Reading: CG 4.7-11, 9.1-3, 9.8-9
--Slides--

Apr 10

Apr 12


Reading: CG 10.2-4
--Slides--

Beyond 361 Lectures




Apr 14: Assignment 4 deadline. Requires video lectures G6 to G15.



Exams

Both the midterm and the final will take place in-person. The exams will focus around pen & paper, problem-solving questions.

Academic Integrity

Unethical academic behavior will not be tolerated in this course. You are encouraged to talk about and discuss coding assignments with your classmates and CourSys should be your go-to venue for such discussions. Besides code/libraries specified in the assignment instructions, every single line of code you submit in your assignments must be written by you, and you are not allowed to copy from other sources. Writing code by exactly or closely following existing code is not technically copy-and-paste, but is also considered to be copy-and-paste. It is very easy to detect such cases and we will be checking every file you upload. Use your fair judgement. You know what is good and bad. When in doubt, consult the instructor. You are expected to maintain the highest standards of academic integrity and refrain from the forms of misconduct. Please refer to SFU's academic integrity policy , and consider taking the Academic Integrity Tutorial .