CS 6476 Computer Vision

Spring 2021, MW 12:30 to 1:45, Synchronous remote lecture on Bluejeans

Instructor: James Hays

TAs: Cusuh Ham (head TA), Anant Joshi. Arvind Krishnakumar, John Lambert, Vijay Upadhya, Jing Wu


Course Description

This course provides an introduction to computer vision including fundamentals of image formation, camera imaging geometry, feature detection and matching, stereo, motion estimation and tracking, image classification and scene understanding. We'll explore methods for depth recovery from stereo images, camera calibration, automated alignment, tracking boundary detection, and recognition. We'll use both classical machine learning and deep learning to approach these problems.The focus of the course is to develop the intuitions and mathematics of the methods in lecture, and then to learn about the difference between theory and practice in the projects.


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 maior technical approaches involved in computer vision. Describe various methods used for registration, alignment, and matching in images.

•   4. Get an exposure to advanced concepts leading to object categorization and segmentation in images.

• 5. Build computer vision applications.


Prerequisites

No prior experience with computer vision is assumed. although previous knowledee 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 and PyTorch. 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.


Grading

Your final grade will be made up from . 

•   100% 6 programming projects

This course traditionally has in person quizzes, but we will instead place more emphasize on the projects this semester because of the difficulty in remotely administering exams.

You will lose 10% each day for late projects. However, you have six "late days" for the whole course. That is to say, the first 24 hours after the due date and time counts as 1 day, up to 48 hours is two and 72 for the third late dav. This will not be reflected in the initial grade reports for your assignment, but they will be factored in and distributed at the end of the semester so that you get the most points possible.

These late days are intended to cover unexpected clustering of due dates, travel commitments. interviews. hackathons etc. Don't ask for extensions to due dates because we are already giving you a pool of late days to manage yourself. In fact, we're doubling the pool of late days this semester because of the difficult circumstances.


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 citation. Students are reminded of the obligations and expectations associated with the Georgia Tech Academic Honor Code and Student Code of Conduct. available online at www.honor.gatech.edu. We will use tools to find code sharing in projects.

You are expected to implement the core components of each project on your own, but the extra credit opportunties often build on third party data sets or code. That's fine. Feel free to include results built on other software, as long as you are clear in vour handin that it is not your own work.

You should not view or edit anvone else's code. You should not post code to Canvas. except for starter code / helper code that isn't related to the core project.


Learning Accommodations

If needed, we will make classroom accommodations for students with documented disabilities. These accommodations must be arranged in advance and in accordance with the office of disability services. (disabilityservices.gatech.edu).


Important Links:

•   Canvas. This should be your first stop for questions and announcements. It will also be used for project handin.


Contact Info and Office Hours:

If possible, please use Piazza to ask questions and seek clarifications before emailing the instructor or staff.

•   James: haysfat]gatech.edu

•   Cusuh Ham: cusuhfat gatech.edu

•   Anant Joshi: anant.joshifat]gatech.edu

•   Arvind Krishnakumar: akrishna[atlgatech.edu

•   John Lambert: johnlambert[atlgatech.edu

•   Vijay Upadhya: vupadhya6[atlgatech.edu

•   Jing Wu: jingwufatlgatech.edu

Office Hours

•   James, Tuesday, 2 to 3 on Bluejeans

•   TA hours: TBD


Projects                                             Highlighted projects                                             All Results

Convolution and Hybrid images

SIFT Local Feature Matching

Camera Calibration and Fundamental 

Matrix Estimation with RANSAC

Stereo

Recognition with deep learning

Semantic Segmentation

All starter code and projects will be in Python with the use of various third party libraries. We will make an effort to support MacOS, Windows, and Linux. The course does not teach python and assumed you have enough familiarity wit procedural programming languages to complete the projects.


Textbook

Readings will be assigned in "Computer Vision: Algorithms and Applications, 2nd edition" by Richard Szeliski.This semester is our first time using the 2nd edition of the book. The book is available for free online or available for purchase.


Syllabus

  Class Date 
  Topic
  Slides
  Reading
  Projects
  Mon, Jan 18 
  No classes, Institute holiday 



  Wed. Jan 20 
  Introduction to computer vision

  Szeliski 1
  Proiect 1 out
Image Formation and Filtering (Szeliski chapters 2 and 3)
  Mon. Jan 25 
  Cameras and Optics

  Szeliski 2.1, especially 2.1.4

  Wed, Jan 27 
  Light and Color and Image Filtering

  Szeliski 2.2 and 2.3

  Mon. Feb 1 
  Thinking in Frequency

  Szeliski 3.2 and 3.4

Feature Detection and Matching
  Wed. Feb 3 
  Interest points and corners

  Szeliski 7.1. 1 and 7.1.2

  Mon, Feb 8 
  Local image features

  Szeliski 7.1.3

  Wed, Feb 10 
  Model fitting, Hough Transform

  Szeliski 7.4.2 and 2.1

  Mon, Feb 15 
  RANSAC and transformations

  Szeliski 8.1

Multiple Views and Motion
  Wed. Feb 17 
  Stereo intro and Camera Calibratior

  Szeliski 12 and 11.2.1

  Mon. Feb 22 
  Epipolar Geometry and Structure from Motion

  Szeliski 11

  Wed. Feb 24 
  Stereo Correspondence and Optical Flow

  Szeliski 12 and 9.4

  Mon. Mar 1 
  TBD



Recognition
  Wed. Mar 3 
  Machine learning crash course

  Szeliski 5.1 and 5.2

  Mon. Mar 8 
  Recognition and bag of words

  Szeliski 6.2.1

  Wed, Mar 10 
  TBD



  Mon. Mar 15 
  Obiect Detection with a sliding window

  Szeliski 6.3

  Wed, Mar 17 
  Big Data



  Mon, Mar 22 
  Crowdsourcing and Human Computation



  Wed, Mar 24 
  No classes. Institute holiday



Deep Learning
  Mon. Mar 29
  Neural networks Basics and Convolutional Networks

  Szeliski 5.3

  Wed. Mar 31 
  Object Detectors Emerge in Deep Scene CNNs and Deeper Deep Architectures.



  Mon, Apr 5 
  "Unsupervised" Learning and Colorization

  Szeliski 5.4.7

  Wed, Apr 7 
  Structured Output from Deep Networks

  Szeliski 5.5

  Mon. Apr 12 
  Semantic and Panoptic Segmentation



  Wed. Apr 14 
  3D CNNs and Lidar



  Mon, Apr 19 
  Transformer architectures



  Wed, Apr 21 
  TBD



  Mon, Apr 26 
  TBD, Final Instructional Class Days



  Wed, Apr 28 
  No classes, reading period



  Final Exam Period
  Not used. No class or final exam




Acknowledgements

The materials from this class rely significantly on slides prepared by other instructors, especially 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.