CV: CS 4476-A

TuTh 5:00-6:15pm, 1443 Klaus / Bluejeans (available in Canvas)


Course Structure

  • This course will be live synchronous. Lectures will be recorded and made available within 24 hours of original lecture slot.
  • Problem Sets:
    • Each assignment will have components required as well as extra credit.
      • Each problem set will contain a programming component and a short answer component, both to be submitted via Gradescope.
    • You may discuss the problem sets with other students, but your submission (both text and code) must be individual work.
  • Exams: This course will have two exams. These are designed to test your understanding of the material. They will be administered in class and in our final exam slot as indicated on the course schedule.
  • This is a lecture-based course with project/coding assignments and two exams. Students are expected to attend lectures and participate in discussions.

Learning Objectives

Upon completion of this course, students should be able to:

  1. Recognize and describe both the theoretical and practical aspects of computing with images. Connect issues from Computer Vision to Human Vision
  2. Describe the foundation of image formation and image analysis. Understand the basics of 2D and 3D Computer Vision.
  3. Become familiar with the major technical approaches involved in computer vision. Describe various methods used for registration, alignment, and matching in images.
  4. Get an exposure to advanced concepts, including state of the art deep learning architectures, in all aspects of computer vision.
  5. Build computer vision applications with Python and the PyTorch framework.

Prerequisites

No prior experience with computer vision is assumed, although previous knowledge of visual computing or signal processing will be helpful. The following skills are necessary for this class:

  • Data structures: You’ll be writing code that builds representations of images, features, and geometric constructions.
  • Programming: Projects are to be completed and graded in Python. All project starter code will be in Python. TA’s will support questions about Python. If you’ve never used Python that is OK, as long as you have programming experience.
  • Math: Linear algebra, vector calculus, and probability. Linear algebra is the most important and students who have not taken a linear algebra course have struggled in the past.
  • Formal prerequisites require taking the following courses
    • Satisfy one of the following:
      • Undergraduate Semester level CS 2110 Minimum Grade of C
      • Undergraduate Semester level CS 2261 Minimum Grade of C
      • Undergraduate Semester level ECE 2020 Minimum Grade of C and Undergraduate Semester level ECE 2035 Minimum Grade of C
    • Satisfy one of the following:
      • Undergraduate Semester level MATH 2605 Minimum Grade of D
      • Undergraduate Semester level MATH 2401 Minimum Grade of D (or T)
      • Undergraduate Semester level MATH 2411 Minimum Grade of D (or T)
      • Undergraduate Semester level MATH 1553 Minimum Grade of D (or T)
      • Undergraduate Semester level MATH 1554 Minimum Grade of D (or T)
      • Undergraduate Semester level MATH 1564 Minimum Grade of D (or T)

Compute Requirements

The institute has minimum compute requirements for all students that you are expected to meet. The projects are somewhat compute intensive, though, so a faster machine will let you iterate more quickly. The institute requirements say nothing about GPUs. The deep learning project can benefit from (but will not require) a GPU. Since we cannot rely on students having GPUs, projects may use cloud services such as Google Colab.

Academic Integrity

Academic dishonesty will not be tolerated. This includes cheating, lying about course matters, plagiarism, or helping others commit a violation of the Honor Code. Plagiarism includes reproducing the words of others without both the use of quotation marks and citations. Students are reminded of the obligations and expectations associated with the Georgia Tech Academic Honor Code and Student Code of Conduct. For exams, no supporting material is allowed, unless specified, and no electronic materials are allowed (phones, laptops, tablets, etc). A stand-alone calculator may be used.

You are expected to implement the core components of each project on your own, but the extra credit opportunities may build on third party data sets or code. That’s acceptable. Feel free to include results built on other software, as long as what you hand in clearly cites the third-party source, making it clear it is not your own work.

You should not view or edit anyone else’s code. You should not post code to Piazza, except for starter code / helper code that isn’t related to the core project.

Learning Accommodations

If needed, we will make accommodations for students with documented disabilities. These accommodations must be arranged in advance and in accordance with the Office of Disability Services policies.

Piazza. This should be your first stop for questions and announcements.

Canvas will be used to take quizzes, view grades, and view assignments.

Gradescope will be used to hand in assignments.

Acknowledgements

The materials from this class rely significantly on slides prepared by other instructors, especially Devi Parikh, Frank Dellaert, Kristen Grauman, David Fouhey, James Hays, Derek Hoiem and Svetlana Lazebnik. Each slide set and assignment contains acknowledgements. Feel free to use these slides for academic or research purposes, but please maintain all acknowledgements