Introduction
COMPUTATIONAL ASPECTS OF DIGITAL PHOTOGRAPHY
Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu
COMPUTATIONAL PHOTOGRAPHY
CS 89.15/189.5, Fall 2015
C OMPUTATIONAL A SPECTS OF C OMPUTATIONAL D IGITAL P HOTOGRAPHY P - - PowerPoint PPT Presentation
CS 89.15/189.5, Fall 2015 C OMPUTATIONAL A SPECTS OF C OMPUTATIONAL D IGITAL P HOTOGRAPHY P HOTOGRAPHY Introduction Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu CS 89.15/189.5, Fall 2015 C OMPUTATIONAL P HOTOGRAPHY Introduction Wojciech
Introduction
Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu
CS 89.15/189.5, Fall 2015
CS 89.15/189.5, Fall 2015 Introduction
Wojciech Jarosz wojciech.k.jarosz@dartmouth.edu
CS 89/189: Computational Photography, Fall 2015
“Measuring light” Traditional/analog photography:
Digital photography:
3 Modeled after a slide by Frédo Durand
CS 89/189: Computational Photography, Fall 2015
Fundamental shift from analog to digital is complete
Today, we (mostly) do what we did with film, but digitally:
Tomorrow: what is possible with lots of computation?
4 Modeled after a slide by Steve Marschner
CS 89/189: Computational Photography, Fall 2015
More than just digital photography Arbitrary computation between light measurement and final image
Two types of computation:
5 Modeled after a slide by Matthias Zwicker
High dynamic range images & tone mapping
6
Before After
[Wojciech Jarosz]
CS 89/189: Computational Photography, Fall 2015
Computation
No Flash
[Petschnigg et al. 2004]
Output
[Petschnigg et al. 2004]
CS 89/189: Computational Photography, Fall 2015
Denoising with detail transfer
7
+ Flash
[Petschnigg et al. 2004]
Modeled after a slide by Matthias Zwicker
Computation
CS 89/189: Computational Photography, Fall 2015
Denoising & deblurring
8
Blurry Noisy Output +
[Yuan et al. 2007]
Modeled after a slide by Matthias Zwicker
Computation
[Yuan et al. 2007] [Yuan et al. 2007]
CS 89/189: Computational Photography, Fall 2015
Do lenses have to get everything right?
9 Modeled after a slide by Steve Marschner
everydayhdr.com
Computation
everydayhdr.com
CS 89/189: Computational Photography, Fall 2015
Do I really need a fish-eye lens?
10
Do I really need a fish-eye lens?
11 CS 89/189: Computational Photography, Fall 2015
CS 89/189: Computational Photography, Fall 2015
12
CS 89/189: Computational Photography, Fall 2015
13
[Wojciech Jarosz]
CS 89/189: Computational Photography, Fall 2015
Do I really need to put a bear in a swimming pool with my kids?
14
sources destinations cloning seamless cloning
Images from [Pérez et al. 2003]
CS 89/189: Computational Photography, Fall 2015
modify lens so you can recover depth & refocus?
15
lens aperture shape
point spread function
Images from [Levin et al. 2007]
CS 89/189: Computational Photography, Fall 2015
Course administration Course topics Programming Assignment 0
History of photo technology (if there is time)
16
CS 89/189: Computational Photography, Fall 2015
Instructor: Prof. Wojciech Jarosz
TA: Rawan Ghofaili
17
CS 89/189: Computational Photography, Fall 2015
Lecture
X-hour
18
CS 89/189: Computational Photography, Fall 2015
Class website (www.cs.dartmouth.edu/~wjarosz/courses/cs89-fa15/)
Canvas (linked from above)
Piazza (linked from above)
19
CS 89/189: Computational Photography, Fall 2015
No textbook required
You will need to take some photos
(ideally also aperture)
20
CS 89/189: Computational Photography, Fall 2015
Good programming experience (we will use C++)
Some linear algebra (matrix calculations, linear systems
21
CS 89/189: Computational Photography, Fall 2015
60%: Weekly assignments (mostly programming in C++) 25%: Final project 15%: Paper reading, participation, and presentation Graduate/Extra Credit
22
CS 89/189: Computational Photography, Fall 2015
Assignments will have a strict deadline (typically 9pm on Wednesdays)
Regrade request by email within 1 week of grade
23
CS 89/189: Computational Photography, Fall 2015
You are welcome and encouraged to chat about assignments All code must be written on your own!
Read the full policy on the class website
24
CS 89/189: Computational Photography, Fall 2015
ZIP file with:
partial credit)
25
CS 89/189: Computational Photography, Fall 2015
We’ll be programming in C++ You can develop on whatever platform you want, but… I must be able to compile/run your code on Mac (preferable) or Linux
www.cs.dartmouth.edu/~wbc/suditour/011
26
CS 89/189: Computational Photography, Fall 2015
Similar in style to weekly programming assignments, but should be roughly 3× larger in scope We can suggest some projects, or you can design your own
27
CS 89/189: Computational Photography, Fall 2015
We will read recent research papers on comp. photo. You will present a research paper We will discuss the papers together
28
CS 89/189: Computational Photography, Fall 2015
29
CS 89/189: Computational Photography, Fall 2015
Who are you? What is your experience with photography? Why did you sign up for the class?
30
CS 89/189: Computational Photography, Fall 2015
Go on Canvas and record yourself saying your name
31
CS 89/189: Computational Photography, Fall 2015
Topics of this class
today
photography in the future
32
CS 89/189: Computational Photography, Fall 2015
This is not a photography art class!
Not a class about how to use Photoshop/Lightroom
No medical imaging, tomography, microscopy, radar No image processing for scientific applications (physics, biology, etc.) Little on hardware
33 Modeled after a slide by Frédo Durand
CS 89/189: Computational Photography, Fall 2015
Technical basics of photography, light, and color Software aspects of computational photography
Emphasis on applications in consumer domain
Cool and creative applications of mathematical tools
techniques, probabilistic models…
34 Modeled after a slide by Frédo Durand
Concepts apply to other domains/types of data:
CS 89/189: Computational Photography, Fall 2015
35 Dragon images from [Sorkin et al. 2004]
CS 89/189: Computational Photography, Fall 2015
How does a conventional camera+lens work?
37 [Wikimedia]
CS 89/189: Computational Photography, Fall 2015
Color & color perception How do cameras capture color? Demosaicing
38
x y 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
520 560 540 580 600 620 700 500 490 480 470
460 380[Wikimedia]
CS 89/189: Computational Photography, Fall 2015
How can we capture the whole intensity range of a scene?
How do we display that on screen?
39 Images from debevec.org
Panoramic imaging, automatic alignment, stitching
CS 89/189: Computational Photography, Fall 2015
40
[Wojciech Jarosz]
CS 89/189: Computational Photography, Fall 2015
Warping the contents of an image Morphing one image to another
41
CS 89/189: Computational Photography, Fall 2015
Gradient-domain manipulation Optimization-based manipulation
42
sources destinations cloning seamless cloning
Images from [Pérez et al. 2003]
Modifying cameras and capturing more information
L y t r
43
Stanford Multi-Camera Array
CS 89/189: Computational Photography, Fall 2015
Brightness, constrast, black & white Color spaces Spanish Castle illusion Histograms & histogram matching
45
[John Sadowski] [John Sadowski]
CS 89/189: Computational Photography, Fall 2015
Build your own pinhole camera
46
Rachel Albert Dylan Paddock
CS 89/189: Computational Photography, Fall 2015
Reconstruct full color image from RAW mosaiced sensor data
47
Anita Martinz (wikimedia)
CS 89/189: Computational Photography, Fall 2015
Blur, unsharp mask Denoising with the bilateral filter
48
Ru_dagon (wikimedia) Paris et al. 09
merge multiple exposures for greater intensity range
49
Before After
CS 89/189: Computational Photography, Fall 2015
CS 89/189: Computational Photography, Fall 2015
Image rescaling & warping Morphing from one face to another
50
CS 89/189: Computational Photography, Fall 2015
A project of your choosing, or, some pre-defined suggestions
51
CS 89/189: Computational Photography, Fall 2015
If you believe you’ll use Linux servers, email me within 24 hours:
Go on Canvas and record an intro by Monday, Sep 21 First programming assignment due Tuesday, Sep 22
52
CS 89/189: Computational Photography, Fall 2015
Programming assignment 0
53
CS 89/189: Computational Photography, Fall 2015
Frédo Durand Matthias Zwicker Steve Marschner
54