CS 6475: Computational Photography
Instructional Team
Irfan Essa
Creator, Instructor
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
- Working knowledge of computer programming (preferably Python)
- College-level mathematics (knowledge of matrices, vectors, differentiation, and integration)
- Physics (vectors, optics)
- Probability (probability density functions)
- Basic knowledge about the functioning of a camera (controlling shutter speed, ISO, aperture)
- 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.