Top Banner
Computational Photography Connelly Barnes Slides from James Hays, Alexei Efros, Paul Debe
46

Computational Photography

Feb 25, 2016

Download

Documents

raina

Computational Photography. Connelly Barnes Fall 2013. Slides from James Hays, Alexei Efros , Paul Debevec. Review of Last Class. Matting foreground from background Using a known background – ChromaKey / greenscreen Using two known backgrounds – Background subtraction - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Computational Photography

Computational Photography

Connelly Barnes

Slides from James Hays, Alexei Efros, Paul Debevec

Page 2: Computational Photography

Review of Last Class

Matting foreground from backgroundUsing a known background – ChromaKey/greenscreenUsing two known backgrounds – Background subtractionIntelligent scissors

Poisson mattingUsing many backgrounds to capture reflection/refraction

Page 3: Computational Photography

Now talk about HDR

(1) Recovering high dynamic range images(2) Rendering high dynamic range back to

displayable low dynamic range (tone mapping)

Page 4: Computational Photography

High Dynamic Range Images

Computational Photography

Page 5: Computational Photography

Limitations of Low Dynamic Range

Cathedral of Saint Vigilio by Flickr user Przemek Więch

Page 6: Computational Photography

Cathedral Basilica by Flickr user Zeitzeph

High Dynamic Range

Page 7: Computational Photography

Problem: Dynamic Range

1500

1

25,000

400,000

2,000,000,000

The real world ishigh dynamic

range.

Page 8: Computational Photography

Long Exposure

10-6 106

10-6 106

Real world

Picture

0 to 255

High dynamic range

Page 9: Computational Photography

Short Exposure

10-6 106

10-6 106

Real world

Picture

High dynamic range

0 to 255

Page 10: Computational Photography

pixel (312, 284) = 42

Image

42 photons?

Page 11: Computational Photography

Camera Calibration

• Geometric– How pixel coordinates relate to directions in the

world

• Photometric– How pixel values relate to radiance amounts in

the world

Page 12: Computational Photography

Camera Calibration

• Geometric– How pixel coordinates relate to directions in the

world in other images.

• Photometric– How pixel values relate to radiance amounts in

the world in other images.

Page 13: Computational Photography

The ImageAcquisition Pipeline

sceneradiance

(W/sr/m )

ò sensorexposure

Lens Shutter

2

Dt

analogvoltages

digitalvalues

pixelvalues

ADC RemappingCCD

Raw Image

JPEGImage

sensorirradiance

(W/m )2

Page 14: Computational Photography

log Exposure = log (Radiance * Dt)

Imaging system response function

Pixelvalue

0

255

(CCD photon count)

Page 16: Computational Photography

Varying Exposure

Page 17: Computational Photography

Camera is not a photometer!

• Limited dynamic rangeÞ Perhaps use multiple exposures?

• Unknown, nonlinear response Þ Not possible to convert pixel values to

radiance• Solution:

– Recover response curve from multiple exposures, then reconstruct the radiance map

Page 18: Computational Photography

Recovering High Dynamic RangeRadiance Maps from Photographs

Paul DebevecJitendra Malik

August 1997

Computer Science DivisionUniversity of California at Berkeley

Page 19: Computational Photography

Ways to vary exposure Shutter Speed (*)

F/stop (aperture, iris)

Neutral Density (ND) Filters

Page 20: Computational Photography

Shutter Speed• Ranges: Canon D30: 30 to 1/4,000 sec.• Sony VX2000: ¼ to 1/10,000

sec.• Pros:• Directly varies the exposure• Usually accurate and repeatable• Issues:• Noise in long exposures

Page 21: Computational Photography

Shutter Speed• Note: shutter times usually obey a power

series – each “stop” is a factor of 2

• ¼, 1/8, 1/15, 1/30, 1/60, 1/125, 1/250, 1/500, 1/1000 sec

• Usually really is:

• ¼, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256, 1/512, 1/1024 sec

Page 22: Computational Photography

• 3

• 1 •

2

Dt =1 sec

• 3

• 1 •

2

Dt =1/16 sec

• 3

• 1• 2

Dt =4 sec

• 3

• 1 •

2

Dt =1/64 sec

The AlgorithmImage series

• 3

• 1 •

2

Dt =1/4 sec

Exposure = Radiance * Dtlog Exposure = log Radiance + log Dt

Pixel Value Z = f(Exposure)

Page 23: Computational Photography

The Algorithm

• 3

• 1 •

2

Dt =1 sec

• 3

• 1 •

2

Dt =1/16 sec

• 3

• 1• 2

Dt =4 sec

• 3

• 1 •

2

Dt =1/64 sec

Image series

• 3

• 1 •

2

Dt =1/4 sec

log Exposure = log Radiance + log Dt

ln Exposure

Plot which incorrectly assumes unit radiance

for each pixel

Pixe

l val

ue

3

1

2Exposure = Radiance * DtPixel Value Z = f(Exposure)

Page 24: Computational Photography

Response Curve

ln Exposure

Plot which incorrectly assumes unit radiance for each pixel

Solve for unknown irradiance at each pixel to recover

response function

Pixe

l val

ue

3

1

2

ln Exposure

Pixe

l val

ue

Page 25: Computational Photography

The Math• Let g(z) be the discrete inverse response function• For each pixel site i in each image j, want:

• Solve the overdetermined linear system for g, Radiancei:

fitting term smoothness term

ln Radiancei + lnDt j g(Zij ) 2j1

P

i1

N

+ g (z)2

zZ min

Zmax

ln Radiance i + ln Dt j g(Zij )

Z=pixel value

Page 26: Computational Photography

MatlabCode

function [g,lE]=gsolve(Z,B,l,w)

n = 256;A = zeros(size(Z,1)*size(Z,2)+n+1,n+size(Z,1));b = zeros(size(A,1),1);

k = 1; %% Include the data-fitting equationsfor i=1:size(Z,1) for j=1:size(Z,2) wij = w(Z(i,j)+1); A(k,Z(i,j)+1) = wij; A(k,n+i) = -wij; b(k,1) = wij * B(i,j); k=k+1; endend

A(k,129) = 1; %% Fix the curve by setting its middle value to 0k=k+1;

for i=1:n-2 %% Include the smoothness equations A(k,i)=l*w(i+1); A(k,i+1)=-2*l*w(i+1); A(k,i+2)=l*w(i+1); k=k+1;end

x = A\b; %% Solve the system using SVD

g = x(1:n);lE = x(n+1:size(x,1));

Page 27: Computational Photography

Results: Digital Camera

Recovered response curve

log Exposure

Pixe

l val

ue

Kodak DCS4601/30 to 30 sec

Page 28: Computational Photography

Reconstructed radiance map

Page 29: Computational Photography

Results: Color Film• Kodak Gold ASA 100, PhotoCD

Page 30: Computational Photography

Recovered Response Curves

Red Green

RGBBlue

Page 31: Computational Photography

Reconstruct HDR via Response Curve

w(z)

z

Page 32: Computational Photography

The Radiance

Map

Page 33: Computational Photography

How do we store this?

Page 34: Computational Photography

Portable FloatMap (.pfm)• 12 bytes per pixel, 4 for each channel

sign exponent mantissa

PF768 5121<binary image data>

Floating Point TIFF similar

Text header similar to Jeff Poskanzer’s .ppmimage format:

Page 35: Computational Photography

(145, 215, 87, 149) =

(145, 215, 87) * 2^(149-128) =

(1190000, 1760000, 713000)

Red Green Blue Exponent

32 bits / pixel

(145, 215, 87, 103) =

(145, 215, 87) * 2^(103-128) =

(0.00000432, 0.00000641, 0.00000259)

Ward, Greg. "Real Pixels," in Graphics Gems IV, edited by James Arvo, Academic Press, 1994

Radiance Format(.pic, .hdr)

Page 36: Computational Photography

ILM’s OpenEXR (.exr)• 6 bytes per pixel, 2 for each channel, compressed

sign exponent mantissa

• Several lossless compression options, 2:1 typical• Compatible with the “half” datatype in NVidia's

Cg• Supported natively on GeForce FX and Quadro FX

• Available at http://www.openexr.net/

Page 37: Computational Photography

Now What?

Page 38: Computational Photography

Tone Mapping

10-6 106

10-6 106

Real WorldRay Traced World (Radiance)

Display/Printer

0 to 255

High dynamic range

• How can we do this?Linear scaling?, thresholding? Suggestions?

Page 39: Computational Photography

TheRadiance

Map

Linearly scaled todisplay device

Page 40: Computational Photography

Simple Global Operator

• Compression curve needs to

– Bring everything within range– Leave dark areas alone

• In other words

– Asymptote at 255– Derivative of 1 at 0

Page 41: Computational Photography

Global Operator (Reinhart et al)

world

worlddisplay L

LL+

1

Page 42: Computational Photography

Global Operator Results

Page 43: Computational Photography

Darkest 0.1% scaledto display device

Reinhart Operator

Page 44: Computational Photography

What do we see?

Vs.

Page 45: Computational Photography

Issues with multi-exposure HDR

• Scene and camera need to be static• Camera sensors are getting better and better• Display devices are fairly limited anyway

(although getting better).

Page 46: Computational Photography

Next:

Local tone mapping

Video