Instructor: Olga Russakovsky
Description of Course Goals and CurriculumThis course is an introduction to the concepts of computer vision. It discusses concepts such as filtering and edge detection; cameras and shape reconstruction; segmentation and clustering; optical flow and tracking; object recognition; motion recognition; statistical modeling of visual data, etc. The course will go somewhat in depth into the math behind the different computer vision techniques, but focuses on covering as wide of a knowledge base as possible. Thus, some computer vision concepts will be more surface level ideas.
Learning From Classroom InstructionProfessor Russakovsky will answer questions at any point during the lecture. The lecture consists of slides and the professor talking over them. The slides are available on the class website prior to the lecture, so you can look at them beforehand or have them open on your phone or computer during class to follow along better. The lectures contain a lot of information, but the slides contain most of the information discussed. The lectures are fast-paced and cover a lot of topics and ideas. As a result, a lot of topics are only introduced at a high level. A helpful strategy during class is to have the slides on your phone or laptop so that you can flip to previous slides for clarification. There are no precepts, but lab TA hours can be very helpful to clarify assignment criteria and debug code. The midterm exam tests students on their understanding of the high level ideas of the many topics introduced in class. Lecture slides contain all information discussed in class, so they can be a good resource to study for the midterm.
Learning For and From AssignmentsThe assignments were coding projects. They turned the concepts and ideas talked about in class into reality. There is some starter code given for each assignment, but a large part of the assignments are left to the students. Some assignments include building face detection, motion tracking, etc. The assignments themselves don't really help prepare for the midterm exam because the midterm exam was more understanding the concepts/techniques and their pros/cons. The homework mainly focuses on implementation and doesn't focus that much on the theory(which is tested on the written exams.) Only one practice test was given in preparation of the midterm. The format for the practice exam and the actual midterm were very similar and the knowledge tested was also similar. You are given an adviser on the final project, but the vast majority of it is left to you to research and figure out. Because you can choose whatever computer vision topic to pursue for your final project, it is possible that you won't use the concepts discussed in class; there are many computer vision topics that are not discussed in class.
External ResourcesThere are two main resources that the class offers: a Piazza forum where you can ask questions and lab TA hours. From talking with other students in the class, some felt that the assignment specifications weren't very clear, so going to lab TA hours helped clarify. Despite the availability of Piazza and lab TA hours, if your final project topic is one that was not discussed in class, it may be difficult for classmates to answer your questions on your project. Nonetheless, the professor and TA will meet with final project groups to discuss their progress and offer links to relevant papers/research. Although you cannot use Google to search solutions for assignments, you are allowed to use Google to clarify/learn more about concepts discussed in lecture.
What Students Should Know About This Course For Purposes Of Course SelectionSolid experience in Python is incredibly helpful because all the assignments are coded in Python. No prior ML knowledge is needed for the class because all concepts needed to do the assignments are explained in the lecture. Some linear algebra knowledge is helpful because some computer vision concepts involve matrix manipulation. This class goes through the applications of computer vision (face tracking, segmentation, etc.) and doesn't go super in detail into the derivation of the concepts. Any ML knowledge needed is taught in class and the deep learning units are pretty high level. The assignments can be pretty time draining, so be prepared to invest time into debugging code. The course's goal is to introduce students to as much of the computer vision field as possible.