data-driven methods: texture (sz 10.5) cs129 computational photography james hays, brown, spring...

34
Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Upload: selena-lavis

Post on 22-Jan-2016

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Data-driven methods: Texture (Sz 10.5)

Cs129 Computational PhotographyJames Hays, Brown, Spring 2011Many slides from Alexei Efros

Page 2: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Texture

• Texture depicts spatially repeating patterns

• Many natural phenomena are textures

radishes rocks yogurt

Page 3: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Texture Synthesis• Goal of Texture Synthesis: create new samples of

a given texture• Many applications: virtual environments, hole-

filling, texturing surfaces

Page 4: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

The Challenge

• Need to model the whole spectrum: from repeated to stochastic texture

Page 5: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Efros & Leung Algorithm

• Assuming Markov property, compute P(p|N(p))– Building explicit probability tables infeasible

pp

Synthesizing a pixel

non-parametricsampling

Input image

– Instead, we search the input image for all similar neighborhoods — that’s our pdf for p

– To sample from this pdf, just pick one match at random

Page 6: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Some Details

• Growing is in “onion skin” order– Within each “layer”, pixels with most neighbors are

synthesized first– If no close match can be found, the pixel is not

synthesized until the end

• Using Gaussian-weighted SSD is very important– to make sure the new pixel agrees with its closest

neighbors– Approximates reduction to a smaller neighborhood

window if data is too sparse

Page 7: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Neighborhood Window

input

Page 8: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Varying Window Size

Increasing window size

Page 9: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Synthesis Results

french canvas rafia weave

Page 10: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

More Resultswhite bread brick wall

Page 11: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Homage to Shannon

Page 12: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Hole Filling

Page 13: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Extrapolation

Page 14: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Summary

• The Efros & Leung algorithm– Very simple– Surprisingly good results– …but very slow

Page 15: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

pp

Image Quilting [Efros & Freeman]

• Observation: neighbor pixels are highly correlated

Input image

non-parametricsampling

BB

Idea:Idea: unit of synthesis = block unit of synthesis = block• Exactly the same but now we want P(B|N(B))

• Much faster: synthesize all pixels in a block at once

• Not the same as multi-scale!

Synthesizing a block

Page 16: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Input texture

B1 B2

Random placement of blocks

block

B1 B2

Neighboring blocksconstrained by overlap

B1 B2

Minimal errorboundary cut

Page 17: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

min. error boundary

Minimal error boundary

overlapping blocks vertical boundary

__ ==22

overlap error

Page 18: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Our Philosophy

• The “Corrupt Professor’s Algorithm”:– Plagiarize as much of the source image as you can– Then try to cover up the evidence

• Rationale: – Texture blocks are by definition correct samples of

texture so problem only connecting them together

Page 19: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros
Page 20: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros
Page 21: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros
Page 22: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros
Page 23: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros
Page 24: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros
Page 25: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Failures

(Chernobyl

Harvest)

Page 26: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

input image

Portilla & Simoncelli

Wei & Levoy Our algorithm

Xu, Guo & Shum

Page 27: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Portilla & Simoncelli

Wei & Levoy Our algorithm

Xu, Guo & Shum

input image

Page 28: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Portilla & Simoncelli

Wei & Levoy Our algorithm

input image

Xu, Guo & Shum

Page 29: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Political Texture Synthesis!

Page 30: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

++ ==

Application: Texture Transfer

• Try to explain one object with bits and pieces of another object:

Page 31: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

Texture Transfer Constraint

Texture sample

Page 32: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

• Take the texture from one image and “paint” it onto another object

Texture Transfer

Same as texture synthesis, except an additional constraint:1. Consistency of texture 2. Similarity to the image being “explained”

Page 33: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros

==++

Page 34: Data-driven methods: Texture (Sz 10.5) Cs129 Computational Photography James Hays, Brown, Spring 2011 Many slides from Alexei Efros