Description: [SCS dragon logo]

CS180/280A: Intro to Computer Vision and Computational Photography
Computer Science Division
University of California Berkeley

INSTRUCTOR: Alexei (Alyosha) Efros (Office hours: after lecture), Angjoo Kanazawa (Office hours: after lecture)
GSI: Ruilong Li (DIS: Tue. 1PM - 2PM, OH: Tue. 3PM - 4PM), Jake Austin (DIS: Tue 11AM - 12PM, OH: Thu. 2PM - 3PM)
Tutors: Max Vogel (OH: Mon. 10AM - 11AM), Morgan Lyu (OH: Tue. 4PM - 5PM), Preston McCrary (OH: Fri. 2PM - 3PM)
UNIVERSITY UNITS: 4
SEMESTER: Fall 2023
WEB PAGE: https://inst.eecs.berkeley.edu/~cs180/fa23/
Google Calender: c_5e316e16608c028a04d3ab19f4cff1e73a6796ef0d559c549f9e1f8f14f30751@group.calendar.google.com (Public URL)
Ed: https://edstem.org/us/courses/42166/
Gradescope Entry Code: 57Y3YJ

Syllabus: here

LOCATION: Li Ka Shing 245
TIME
: MW 5:00 PM-6:30 PM

PREREQUISITES:
This is a heavily project-oriented class, therefore good programming proficiency (at least CS61B) is absolutely essential. Moreover, familiarity with linear algebra (MATH 54 or EE16A/B or Gilbert Strang's online class) and calculus are vital. Experience with neural networks (e.g. CS182 or equivalent) is strongly recommended. Due to the open-endedness of this course, creativity is a class requirement.

COURSE DESCRIPTION:
The aim of this advanced undergraduate course is to introduce students to computing with visual data (images and video). We will cover acquisition, representation, and manipulation of visual information from digital photographs (image processing), image analysis and visual understanding (computer vision), and image synthesis (computational photography). Key algorithms will be presented, ranging from classical (e.g. Gaussian and Laplacian Pyramids) to contemporary (e.g. ConvNets, GANs), with an emphasis on using these techniques to build practical systems. This hands-on emphasis will be reflected in the programming assignments, in which students will have the opportunity to acquire their own images and develop, largely from scratch, the image analysis and synthesis tools for solving applications.

PROGRAMMING ASSIGNMENTS: TO BE ANNOUNCED.       

Project 1: Images of the Russian Empire -- Colorizing the Prokudin-Gorskii Photo Collection
Description: http://www.cs.cmu.edu/afs/andrew/scs/cs/15-463/pub/www/images/3-8086-left.jpg

Class Choice Awards: Bryan Li
Runner ups: Minseok Son  Jeffrey Tan 

 

Project 2: Fun with Filters and Frequencies

orple

Class Choice Awards: Jeffrey Tan
Runner ups: Mingxiao Wei  Nathalys Pham 

 

Project 3: Face Morphing and Modelling a Photo Collection

morph

Class Choice Awards: Chloe Zhong
Runner ups: Irene Geng  Jai Singh 

  

Project 4: (Auto)stitching and photo mosaics

stitching

Class Choice Awards: Alec Li
Runner ups: Joshua You  Lance Mathias 

 

Project 5: Neural Radiance Fields

morph

 

Final Project

multifredo

TEXTBOOK:
We will be loosely using the new 2nd edition of Rick Szeliski's Computer Vision textbook. You can purchase a hard copy or use a free pdf.

There is a number of other fine texts that you can use for general reference:

Computer Vision: A Modern Approach (2nd edition), Forsyth and Ponce (classic computer vision text)
Vision Science: Photons to Phenomenology, Stephen Palmer (great book on human visual perception)
Digital Image Processing, 2nd edition, Gonzalez and Woods (a good general image processing text)
Linear Algebra and its Applications, Gilbert Strang (a truly wonderful book on linear algebra)

CLASS NOTES
The instructor is extremely grateful to a large number of researchers for making their slides available for use in this course. Steve Seitz and Rick Szeliski have been particularly kind in letting me use their wonderful lecture notes. In addition, I would like to thank Paul Debevec, Stephen Palmer, Paul Heckbert, David Forsyth, Steve Marschner and others, as noted in the slides. The instructor gladly gives permission to use and modify any of the slides for academic and research purposes. However, please do also acknowledge the original sources where appropriate.

   

CLASS SCHEDULE:

CLASS DATE

TOPICS

Material

Aug 23

Introduction

 

Aug 28

Capturing Light... in man and machine

 

Aug 30

Image Processing I

 

Sep 6

Image Processing II: Convolution and Derivatives

 

Sep 11

The Frequency Domain

 

Sep 13

Pyramid Blending, Templates, NL Filters

 

Sep 18

Image Transformations

 

Sep 20

Image Warping and Morphing

 

Sep 25

Data-driven Methods: Faces

 

Sep 27

The Camera

  • Slides: pptx, pdf
  • Perspective projection in 5 minutes: Video

 

Oct 02

Homographies and Mosaics

 

Oct 04

More Mosaics

 

Oct 09

Automatic Image Alignment

 

Oct 11

3D Vision: Intro

 

Oct 16

Stereo

 

Oct 18

Epipolar

 

Oct 23

SfM and MVS

 

Oct 25

MVS & Neural Radiance Fields

 

Oct 30

Neural Radiance Fields 2

 

Nov 1

Neural Radiance Fields 3

 

Nov 6

Visual Texture

 

Nov 8

Sequence Models for Words and Pixels.

 

Nov 15

Generative Models.

Nov 20

HDR + IBL

Nov 27

Morden Art

CAMERAS:
Although it is not required, students are highly encouraged to obtain a digital camera for use in the course.

METHOD OF EVALUATION:
Grading will be based on a set of programming and written assignments (60%), a final exam + potentially some Pop Quizzes (20%), and a final project (20%).  For the programming assignments, students will be allowed a total of 5 (five) late days per semester; each additional late day will incur a 10% penalty.

Students taking CS280A will also be required to submit a conference-style paper describing their final project.

PROGRAMMING RESOURCES: :
Students will be encouraged to use either Python (with either scikit-image or opencv) or MATLAB (with the Image Processing Toolkit) as their primary computing platform.   Specific libraries in both languages offer tons of built-in image processing functions.   Here is a link to some useful MATLAB and Python resources compiled for this class.

PREVIOUS OFFERINGS OF THIS COURSE: :
Previous offerings of this course can be found here.

SIMILAR COURSES IN OTHER UNIVERSITIES:

 

Page design courtesy of Doug James