CS 6475: Computational Photography

Instructional Team

Irfan Essa
Irfan Essa
Creator, Instructor
Kim Sirichoke
Kim Sirichoke
Head TA

Overview

This class explores how computation impacts the entire workflow of photography, which is traditionally aimed at capturing light from a (3D) scene to form a (2D) image. A detailed study of the perceptual, technical and computational aspects of forming pictures, and more precisely, the capture and depiction of reality on a (mostly 2D) medium of images, is undertaken over the entire term. The scientific, perceptual, and artistic principles behind image-making will be emphasized, especially as impacted and changed by computation. Topics include the relationship between pictorial techniques and the human visual system; intrinsic limitations of 2D representations and their possible compensations; and technical issues involving capturing light to form images. Technical aspects of image capture and rendering, and exploration of how such a medium can be used to its maximum potential, will be examined. New forms of cameras and imaging paradigms will be introduced. Students will undertake a hands-on approach over the entire term using computation techniques, merged with digital imaging processes to produce photographic artifacts.

More information is available on the CS 6475 course website.

Course Goals

This class explores how computation impacts the entire workflow of photography, which is traditionally aimed at capturing light from a (3D) scene to form an (2D) image. Over the span of the semester, students will learn:

  • To think about images as multi-dimensional arrays on which mathematical operations can be performed to generate interesting artifacts
  • The technical aspects of image capture and rendering, and exploration of how such a medium can be used to its maximum potential
  • To mathematically model a camera as a device that maps a 3D space onto a 2D plane
  • How the traditional camera pipeline can be transformed by changing the sensor, illumination, lens, etc.

Preview

Sample Syllabi

Current syllabus
Current schedule

Note: Sample syllabi are provided for informational purposes only. For the most up-to-date information, consult the official course documentation.

Course Content

To access the public version of this course's content, click here, then log into your Ed Lessons account. If you have not already created an Ed Lessons account, enter your name and email address, then click the activation link sent to your email, then revisit that link.

Before Taking This Class...

Suggested Background Knowledge
The course will involve programming assignments and projects that will test the student’s understanding of the concepts taught in class. The following will be necessary to keep up with the pace of the course:
  1. Working knowledge of computer programming (preferably Python)
  2. College-level mathematics (knowledge of matrices, vectors, differentiation, and integration)
  3. Physics (vectors, optics)
  4. Probability (probability density functions)
  5. Basic knowledge about the functioning of a camera (controlling shutter speed, ISO, aperture)
  6. Prior experience with using OpenCV and Numpy is preferable
Technical Requirements and Software
  • Internet connectivity
  • Camera (preferably one with granular control over aperture, shutter speed, and ISO)
  • Operating system:
    • PC: Windows 8 or higher
    • Mac: OS X 10.15 or higher with latest updates installed
    • Linux: any recent distribution will work so long as you can install Python and OpenCV bindings
  • Anaconda

Academic Integrity

All Georgia Tech students are expected to uphold the Georgia Tech Academic Honor Code. This course may impose additional academic integrity stipulations; consult the official course documentation for more information.