41
Recap of Previous Lecture Matting foreground from background Using a single known background (and a constrained foreground) Using two known backgrounds Using lots of backgrounds to capture reflection and refraction Separating direct illumination and global illumination using structured lighting

Recap of Previous Lecture

  • Upload
    faye

  • View
    26

  • Download
    0

Embed Size (px)

DESCRIPTION

Recap of Previous Lecture. Matting foreground from background Using a single known background (and a constrained foreground) Using two known backgrounds Using lots of backgrounds to capture reflection and refraction - PowerPoint PPT Presentation

Citation preview

Page 1: Recap of  Previous Lecture

Recap of Previous LectureMatting foreground from background

Using a single known background (and a constrained foreground)Using two known backgroundsUsing lots of backgrounds to capture reflection and refraction

Separating direct illumination and global illumination using structured lighting

Page 2: Recap of  Previous Lecture

Next lectures on HDR(1) Recovering high dynamic range images(2) Rendering high dynamic range back to displayable

low dynamic range (tone mapping)

Page 3: Recap of  Previous Lecture

High Dynamic Range Images

cs129: Computational PhotographyJames Hays, Brown, Fall 2012

slides from Alexei A. Efrosand Paul Debevec

Page 4: Recap of  Previous Lecture

Problem: Dynamic Range

1500

1

25,000

400,000

2,000,000,000

The real world ishigh dynamic

range.

Page 5: Recap of  Previous Lecture

Long Exposure

10-6 106

10-6 106

Real world

Picture

0 to 255

High dynamic range

Page 6: Recap of  Previous Lecture

Short Exposure

10-6 106

10-6 106

Real world

Picture

High dynamic range

0 to 255

Page 7: Recap of  Previous Lecture

pixel (312, 284) = 42

Image

42 photons?

Page 8: Recap of  Previous Lecture

Camera Calibration

• Geometric– How pixel coordinates relate to directions in the

world

• Photometric– How pixel values relate to radiance amounts in

the world

Page 9: Recap of  Previous Lecture

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 10: Recap of  Previous Lecture

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 11: Recap of  Previous Lecture

log Exposure = log (Radiance * Dt)

Imaging system response function

Pixelvalue

0

255

(CCD photon count)

Page 12: Recap of  Previous Lecture

Varying Exposure

Page 13: Recap of  Previous Lecture

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 14: Recap of  Previous Lecture

Recovering High Dynamic RangeRadiance Maps from Photographs

Paul DebevecJitendra Malik

August 1997

Computer Science DivisionUniversity of California at Berkeley

Page 15: Recap of  Previous Lecture

Ways to vary exposure Shutter Speed (*)

F/stop (aperture, iris)

Neutral Density (ND) Filters

Page 16: Recap of  Previous Lecture

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 17: Recap of  Previous Lecture

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 18: Recap of  Previous Lecture

• 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 19: Recap of  Previous Lecture

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

Assuming unit radiancefor each pixel

Pixe

l val

ue

3

1

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

Page 20: Recap of  Previous Lecture

Response Curve

ln Exposure

Assuming unit radiancefor each pixel

After adjusting radiances to obtain a smooth response

curve

Pixe

l val

ue

3

1

2

ln Exposure

Pixe

l val

ue

Page 21: Recap of  Previous Lecture

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:

fitting term smoothness term

ln Radiance i + lnDt j g(Zij ) 2j1

P

i1

N

+ g (z)2

zZ min

Zmax

ln Radiance i + ln Dt j g(Zij )

Page 22: Recap of  Previous Lecture

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 23: Recap of  Previous Lecture

Results: Digital Camera

Recovered response curve

log Exposure

Pixe

l val

ue

Kodak DCS4601/30 to 30 sec

Page 24: Recap of  Previous Lecture

Reconstructed radiance map

Page 25: Recap of  Previous Lecture

Results: Color Film• Kodak Gold ASA 100, PhotoCD

Page 26: Recap of  Previous Lecture

Recovered Response Curves

Red Green

RGBBlue

Page 27: Recap of  Previous Lecture

The Radiance

Map

Page 28: Recap of  Previous Lecture

How do we store this?

Page 29: Recap of  Previous Lecture

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 30: Recap of  Previous Lecture

(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 31: Recap of  Previous Lecture

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 32: Recap of  Previous Lecture

Now What?

Page 33: Recap of  Previous Lecture

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 34: Recap of  Previous Lecture

TheRadiance

Map

Linearly scaled todisplay device

Page 35: Recap of  Previous Lecture

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 36: Recap of  Previous Lecture

Global Operator (Reinhart et al)

world

worlddisplay L

LL+

1

Page 37: Recap of  Previous Lecture

Global Operator Results

Page 38: Recap of  Previous Lecture

Darkest 0.1% scaledto display device

Reinhart Operator

Page 39: Recap of  Previous Lecture

What do we see?

Vs.

Page 40: Recap of  Previous Lecture

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 41: Recap of  Previous Lecture

What about local tone mapping?

What about avoiding radiance map reconstruction entirely?