CS 116: Computational Photography

Winter 2018

Who, Where, When

Instructor: Charless Fowlkes
Lectures: T Th 5-6:20 in DBH 1600
Office Hours: Th 10-11 in DBH 4076

Overview

This class introduces the computational and mathematical problems of computer vision through the application of computational photography. Computational photography is an emerging field at the intersection of vision, graphics, and machine learning. It deals with computational mechanisms for creating, enhancing, and interpreting digital images. The course will describe algorithmic techniques for low-level image understanding, including applications such as geometric reconstruction, warping, registration, denoising and deblurring, and hole-filling and blending. The course will also introduce high-level algorithms for image understanding including object recognition and detection. Students will acquire knowledge of image formation, including camera optics, imaging transformations, and basic image processing. The course assumes a background knowledge of linear algebra and probability, but will introduce linear least squares, classification, and dynamic programming. The class will emphasize hands-on implementation of the presented algorithms through numerous homework projects. Students will be encouraged to acquire their own images of indoor and outdoor scenes for the project assignments.

Textbook

Reference text books for the course are Both books are freely available as pdfs for UCI students.

Preliminary Syllabus

  • Week 1 : Intro, Cameras
  • Week 2 : Images, Color and Sensors
  • Week 3 : Filters and Image Processing
  • Week 4 : Warping and Homographies
  • Week 5 : Matting and Blending
  • Week 6 : Texture Synthesis and Stitching
  • Week 7 : Warping and Morphing
  • Week 8 : Edge detection and Segmentation
  • Week 9 : Object Recognition
  • Week 10 : Applications

Assignments

  • Assignment 1 : MATLAB warmup and color demosaicing
    We will use MATLAB for the programming assignments so this assignment is to help you get acquainted. You will also work with image filtering.
  • Assignment 2 : Mosaics
    For this assignment we will estimate homographies in order to align images and blend them into a mosaic.
  • Assignment 3 : Texture Synthesis
    For this assignment we will synthesize textures by stitching together randomly sampled tiles.
  • Assignment 4 : Detection
    For this assignment we will build a simple template-based object detector using orientation histograms.
  • Assignment 5 : Warping and Morphing
    For this assignment we will explore image warping in order to produce a morph between two images

Grading Policies

The grading for this class will be based primarily on homeworks + a final exam

Homeworks

There will be roughly 5 assignments during the quarter. Each is due by 11:59pm on the specified due date. Work turned in late will not be graded so please just hand in whatever you have completed. Assignments should be uploaded to the appropriate EEE Dropbox. 

Extra credit: if you submit an assignment 24 hours early, you will automatically get 5% extra credit on the assignment (e.g. if the assignment is worth 100 points you will get 5 pts extra credit).  

You will be required to use MATLAB for the assignments. You can obtain a free student licensed copy here

Classroom Policies

You are asked to be respectful of your student colleagues and instructor in class, not being disruptive or otherwise distracting others in the classroom. This includes turning off cell-phones and not using your laptops during class.

Academic Honesty

Academic honesty is taken seriously. For homework problems or programming assignments you are allowed to discuss the problems or assignments verbally with other class members, but under no circumstances can you look at or copy anyone else's written solutions or code relating to homework problems or programming assignments. All problem solutions submitted must be material you have personally written during this quarter.

Failure to adhere to this policy can result in a student receiving a failing grade in the class. It is the responsibility of each student to be familiar with UCI's current academic honesty policies. Please take the time to read the ICS Department's policies on academic honesty .