60
Advanced Computer Graphics Advanced Computer Graphics (Fall 2010) (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi http://inst.eecs.berkeley.edu/~cs283/fa10 Slides, lecture courtesy Alexei Efros, from CMU l

Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Embed Size (px)

Citation preview

Page 1: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Advanced Computer Graphics Advanced Computer Graphics (Fall 2010)(Fall 2010)

CS 283, Lecture 26

Texture Synthesis

Ravi Ramamoorthihttp://inst.eecs.berkeley.edu/~cs283/fa10

Slides, lecture courtesy Alexei Efros, from CMU lecture

Page 2: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Weather Forecast for Dummies Weather Forecast for Dummies

Let’s predict weather: Given today’s weather only, we want to know tomorrow’s Suppose weather can only be {Sunny, Cloudy, Raining}

The “Weather Channel” algorithm: Over a long period of time, record:

How often S followed by R How often S followed by S Etc.

Compute percentages for each state: P(R|S), P(S|S), etc.

Predict the state with highest probability! It’s a Markov Chain

Page 3: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

4.04.02.0

3.03.04.0

1.06.03.0

Markov ChainMarkov Chain

What if we know today and yesterday’s weather?

Page 4: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Text SynthesisText Synthesis [Shannon,’48] proposed a way to generate

English-looking text using N-grams: Assume a generalized Markov model Use a large text to compute prob.

distributions of each letter given N-1 previous letters

Starting from a seed repeatedly sample this Markov chain to generate new letters

Also works for whole words

WE NEED TO EAT CAKE

Page 5: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Mark V. Shaney (Bell Labs)Mark V. Shaney (Bell Labs)

Results (using alt.singles corpus): “As I've commented before, really relating

to someone involves standing next to impossible.”

“One morning I shot an elephant in my arms and kissed him.”

“I spent an interesting evening recently with a grain of salt”

Page 6: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Texture

• Texture depicts spatially repeating patterns

• Many natural phenomena are textures

radishes rocks yogurt

Page 7: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

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

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

filling, texturing surfaces

Page 8: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

The Challenge

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

repeated

stochastic

Both?

Page 9: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

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 10: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

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 11: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Neighborhood Window

input

Page 12: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Varying Window Size

Increasing window size

Page 13: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Synthesis Results

french canvas rafia weave

Page 14: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

More Resultswhite bread brick wall

Page 15: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Homage to Shannon

Page 16: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Hole Filling

Page 17: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Extrapolation

Page 18: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Summary

• The Efros & Leung algorithm– Very simple– Surprisingly good results– Synthesis is easier than analysis!– …but very slow

Page 19: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

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 20: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Input texture

B1 B2

Random placement of blocks

block

B1 B2

Neighboring blocksconstrained by overlap

B1 B2

Minimal errorboundary cut

Page 21: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

min. error boundary

Minimal error boundary

overlapping blocks vertical boundary

__ ==22

overlap error

Page 22: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

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 23: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture
Page 24: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture
Page 25: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture
Page 26: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture
Page 27: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture
Page 28: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture
Page 29: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Failures

(Chernobyl

Harvest)

Page 30: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

input image

Portilla & Simoncelli

Wei & Levoy Our algorithm

Xu, Guo & Shum

Page 31: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Portilla & Simoncelli

Wei & Levoy Our algorithm

Xu, Guo & Shum

input image

Page 32: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Portilla & Simoncelli

Wei & Levoy Our algorithm

input image

Xu, Guo & Shum

Page 33: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Political Texture Synthesis!

Page 34: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Fill Order

• In what order should we fill the pixels?

Page 35: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Fill Order

• In what order should we fill the pixels?– choose pixels that have more neighbors filled

– choose pixels that are continuations of lines/curves/edgesCriminisi, Perez, and Toyama. “Object Removal by Exemplar-based Inpainting,” Proc. CVPR, 2003.

Page 36: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Exemplar-based Inpainting demo

http://research.microsoft.com/vision/cambridge/i3l/patchworks.htm

Page 37: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

++ ==

Application: Texture Transfer

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

Page 38: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Texture Transfer Constraint

Texture sample

Page 39: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

• 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 40: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

==++

Page 41: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture
Page 42: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Image Analogies

Aaron Hertzmann1,2

Chuck Jacobs2

Nuria Oliver2

Brian Curless3

David Salesin2,3

1New York University2Microsoft Research3University of Washington

Page 43: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Image Analogies

A A’

B B’

Page 44: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture
Page 45: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Blur Filter

Page 46: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Edge Filter

Page 47: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

A A’

B B’

Artistic Filters

Page 48: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Colorization

Page 49: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Texture-by-numbers

A A’

B B’

Page 50: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Super-resolution

A A’

Page 51: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Super-resolution (result!)

B B’

Page 52: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Video Textures

Arno SchödlRichard Szeliski

David SalesinIrfan Essa

Microsoft Research, Georgia Tech

Page 53: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Problem statement

video clip video texture

Page 54: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Our approach

• How do we find good transitions?

Page 55: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Finding good transitions

• Compute L2 distance Di, j between all

frames

Similar frames make good transitions

frame ivs.

frame j

Page 56: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Markov chain representation

2 3 41

Similar frames make good transitions

Page 57: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Transition costs

• Transition from i to j if successor of i is similar to j

• Cost function: Cij = Di+1, j

• i

j

i+ 1

j-1

i j D i+ 1, j

Page 58: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Transition probabilities

•Probability for transition Pij inversely related to

cost:•Pij ~ exp ( – Cij / 2 )

high low

Page 59: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Example

Page 60: Advanced Computer Graphics (Fall 2010) CS 283, Lecture 26 Texture Synthesis Ravi Ramamoorthi cs283/fa10 Slides, lecture

Example