Photometric*Stereo* October*8,*2013* Dr.*Grant*Schindler* * - - PowerPoint PPT Presentation

photometric stereo
SMART_READER_LITE
LIVE PREVIEW

Photometric*Stereo* October*8,*2013* Dr.*Grant*Schindler* * - - PowerPoint PPT Presentation

Photometric*Stereo* October*8,*2013* Dr.*Grant*Schindler* * schindler@gatech.edu* Mul@ple*Images:*Different*Ligh@ng* Mul@ple*Images:*Different*Ligh@ng* Mul@ple*Images:*Different*Ligh@ng* Religh@ng*the*Scene* Credit:*Alex*Powell*


slide-1
SLIDE 1

Photometric*Stereo*

October*8,*2013* Dr.*Grant*Schindler* * schindler@gatech.edu*

slide-2
SLIDE 2

Mul@ple*Images:*Different*Ligh@ng*

slide-3
SLIDE 3

Mul@ple*Images:*Different*Ligh@ng*

slide-4
SLIDE 4

Mul@ple*Images:*Different*Ligh@ng*

slide-5
SLIDE 5

Religh@ng*the*Scene*

slide-6
SLIDE 6

Credit:*Alex*Powell*

slide-7
SLIDE 7

Credit:*Alex*Powell*

slide-8
SLIDE 8

Credit:*Alex*Powell*

slide-9
SLIDE 9

Credit:*Alex*Powell*

slide-10
SLIDE 10

Credit:*Alex*Powell*

slide-11
SLIDE 11

Credit:*Alex*Powell*

slide-12
SLIDE 12

Demo*

  • Froggies*
slide-13
SLIDE 13

Geometry*of*Ligh@ng*

Lamber@an*Surface*

slide-14
SLIDE 14

Infinitely*Distant*Light*Source*

slide-15
SLIDE 15

Acquiring)the)Reflectance)Field)of)a) Human)Face:)Paul)Debevec)et)al*

hOp://gl.ict.usc.edu/LightStages/*

slide-16
SLIDE 16
slide-17
SLIDE 17
slide-18
SLIDE 18

More*Info*

  • hOp://www.pauldebevec.com/*
  • hOp://www.pauldebevec.com/Research/LS/*
  • hOp://gl.ict.usc.edu/Research/DigitalEmily/*
  • hOp://gl.ict.usc.edu/Research/RHL/*
slide-19
SLIDE 19

RealTTime*Photometric*Stereo*

Surface*Normals*

(Eigenvectors*via*Power*Itera@on)* 6*ms*

Height*Field*

(Integrate*Surface*Normals*via*GaussTSeidel)* 32*ms*

slide-20
SLIDE 20

RealTTime*Photometric*Stereo*

slide-21
SLIDE 21

Demo*

  • Processing*Demo*
slide-22
SLIDE 22

Reading **

  • Szeliski*Book:*Sec@on*12.1.1*(page*580T583)*
slide-23
SLIDE 23

3D*Scanner*in*Your*Pocket*

slide-24
SLIDE 24

How*does*it*work?*

Emit*Light* Reflect*Light* Camera*(FrontTFacing)*

slide-25
SLIDE 25

How*does*it*work?*

Emit*Light* Reflect*Light* Camera*(FrontTFacing)*

slide-26
SLIDE 26

How*does*it*work?*

Emit*Light* Reflect*Light* Camera*(FrontTFacing)*

slide-27
SLIDE 27

How*does*it*work?*

Emit*Light* Reflect*Light* Camera*(FrontTFacing)*

slide-28
SLIDE 28

How*does*it*work?*

2D* 3D*

slide-29
SLIDE 29
slide-30
SLIDE 30
slide-31
SLIDE 31
slide-32
SLIDE 32
slide-33
SLIDE 33
slide-34
SLIDE 34
slide-35
SLIDE 35
slide-36
SLIDE 36
slide-37
SLIDE 37

Lambertian Surface

a(u,v) is the albedo of the surface projecting to (u,v). n(u,v) is the direction of the surface normal. s0 is the light source intensity. s is the direction to the light source.

^ n ^ s a

I(u,v) The intensity of a pixel I(u,v) is:

Slide courtesy of David Kriegman

I(u,v) = [a(u,v) ˆ n (u,v)]•[s0 ˆ s ] = b(u,v)•s

slide-38
SLIDE 38

b

Orthographic Projection

  • Simplification for light

sources that are sufficiently far away from an object.

  • All incoming light rays

are parallel.

  • Thus, while b vectors

vary over the surface, s vector is constant.

s b s b s

Pixels:b1

Ts, b2 Ts, b3 Ts,...⇒ Bs

slide-39
SLIDE 39

Images Live in a 3-D Subspace

  • f All Possible Images

Images = Surface Normals #pixels #pixels 4 3 3 4 Light Directions

slide-40
SLIDE 40

Images Live in a 3-D Subspace

  • f All Possible Images

Images = Surface Normals #pixels #pixels 4 3 3 4 Light Directions

slide-41
SLIDE 41

Background:*Linear*Algebra*

  • hOp://www.cc.gatech.edu/~phlosob/

transforms/*

  • Keywords:*Singular*Value*Decomposi@on*
  • Related:*Image*Compression*
slide-42
SLIDE 42

Synthetic Sphere Images

Five different lighting conditions

Slide courtesy of David Forsyth

slide-43
SLIDE 43

Recovered Albedo

Slide courtesy of David Forsyth

slide-44
SLIDE 44

Recovered Surface Normals

Slide courtesy of David Forsyth

slide-45
SLIDE 45

Recovered Surface Shape

Recovery up to a constant depth error (not absolute depth)

Slide courtesy of David Forsyth

slide-46
SLIDE 46

Integra@on*Methods*

TFrankotTChellappa*(FFT)* TGaussTSeidel*(Itera@ve*Condi@onal*Modes)* TPath*Integra@on*

slide-47
SLIDE 47

High Quality Results

George Vogiatzis and Carlos Hernandez

slide-48
SLIDE 48

Photometric Stereo

slide-49
SLIDE 49

Photometric Stereo

  • Given multiple images of the same surface

under different known lighting conditions, can we recover the surface shape?

– Yes! (Woodham, 1978)

b1 b2 b3

s1 s2 s3

slide-50
SLIDE 50

Photometric Stereo

  • Assume:

– A set of point sources that are infinitely distant – A set of pictures of an object, obtained in exactly the same camera/object configuration but using different sources – A Lambertian object (or the specular component has been identified and removed)

I1 = Bs1; I2 = Bs2; I3 = Bs3 ...

slide-51
SLIDE 51

Stereo for a Pixel

b

s1 s2 s3 I

Solve an over-constrained linear system for b (with n>3)

For a pixel (x,y) we have n measurements: I1(x,y) =s1

Tb(x,y);

I2(x,y) =s2

Tb(x,y) ...⇒ I(x,y) = Sb(x,y)

slide-52
SLIDE 52

What About Shadows?

  • Shadowed pixels (e.g. attached shadows for

a given light source position) are outliers.

  • Max trick can be adapted for this case too:

Pre-multiplying by a thresholded weight matrix zeros the contributions from shadowed pixels I1(x,y)  In(x,y) " # $ $ $ % & ' ' ' I1(x,y)  In(x,y) " # $ $ $ % & ' ' ' = I1(x,y)  In(x,y) " # $ $ $ % & ' ' ' s1

T

 sn

T

" # $ $ $ % & ' ' ' b(x,y)

slide-53
SLIDE 53

Recovering the Albedo

  • This gives a check on the normal

recovery at a pixel

– If the magnitude of a(x, y) is greater than 1, theres a problem

Recall that b(x,y) = a(x,y)ˆ n (x,y) ⇒ a(x,y) = b(x,y)

Then ˆ n (x,y) = b(x,y)/a(x,y)

slide-54
SLIDE 54

Recovering the Surface Shape

Depth map model (also called Monge patch):

Graphic courtesy of David Forsyth

z = f (x,y) Surface is set of points {x,y, f (x,y)}

slide-55
SLIDE 55

Recovering a surface from normals - 1

  • Recall the surface

is written as

  • This means the

normal has the form:

  • If we write the known

vector g as

  • Then we obtain values

for the partial derivatives of the surface:

(x,y, f (x, y))

g(x,y) = g1(x, y) g2(x, y) g3(x, y) " # $ $ % & ' '

fx(x,y) = g1(x, y) g3(x, y)

( )

fy(x, y) = g2(x,y) g3(x,y)

( )

N(x,y) = 1 fx

2 + fy 2 +1

" # $ % & ' − fx − fy 1 " # $ $ % & ' '

Slide courtesy of David Forsyth

slide-56
SLIDE 56

Recovering a surface from normals - 2

  • Recall that mixed

second partials are equal --- this gives us a check. We must have:

  • (or they should be

similar, at least)

  • We can now recover

the surface height at any point by integration along some path, e.g. ∂ g1(x, y) g3(x, y)

( )

∂y = ∂ g2(x, y) g3(x, y)

( )

∂x f (x, y) = fx(s, y)ds

x

+ fy(x,t)dt

y

+ c

Slide courtesy of David Forsyth

slide-57
SLIDE 57

Light Sources

slide-58
SLIDE 58

Lambertian Surface

a(u,v) is the albedo of the surface projecting to (u,v). n(u,v) is the direction of the surface normal. s0 is the light source intensity. s is the direction to the light source.

^ n ^ s a

I(u,v) The intensity of a pixel I(u,v) is:

Slide courtesy of David Kriegman

I(u,v) = [a(u,v) ˆ n (u,v)]•[s0 ˆ s ] = b(u,v)•s

slide-59
SLIDE 59

b

Orthographic Projection

  • Simplification for light

sources that are sufficiently far away from an object.

  • All incoming light rays

are parallel.

  • Thus, while b vectors

vary over the surface, s vector is constant.

s b s b s

Pixels:b1

Ts, b2 Ts, b3 Ts,...⇒ Bs