Computational Photography: Texture Synthesis and Hole-Filling Overview

 
COMP790:  Computational Photography
Image Growing:
Texture synthesis and hole filling
 
Montek Singh
Mar 4, 2019
 
(Credits to numerous other
people on individual slides)
 
Next section of slides from Derek Hoiem
(mainly), and some from James Hays and
Alexei Efros.  Note many other sources for
individual slides
Texture Synthesis and Hole-Filling
 
Slides by Derek Hoiem
 
Where are we?  “Digital Canvas”
 
 
Image warping
Object morphing
Composting and blending
 
Remaining: Growing and Cutting
Texture synthesis (today)
Hole filling (today)
Intelligent scissors (next class)
 
Today’s Class:  Growing and Cutting
 
Texture synthesis and hole-filling
 
Texture
 
Texture depicts spatially repeating patterns
Textures appear naturally and frequently
 
radishes
 
rocks
 
yogurt
 
Many slides from James Hays
Texture Synthesis
Goal of Texture Synthesis: create new samples of
a given texture
Many applications: virtual environments, hole-
filling, texturing surfaces
 
The Challenge
 
 
Need to model the whole spectrum: from
repeated to stochastic texture
 
stochastic
:  a pattern that may be analyzed statistically but
may not be predicted precisely (Google dictionary)
 
One idea: Build Probability Distributions
 
 
Basic idea
1.
Compute statistics of input texture (e.g., histogram of edge
filter responses)
2.
Generate a new texture that keeps those same statistics
 
 
 
 
 
 
 
 
 
D. J. Heeger and J. R. Bergen.  Pyramid-based texture analysis/synthesis. In 
SIGGRAPH
’95.
E. P. Simoncelli and J. Portilla. Texture characterization via joint statistics of wavelet
coefficient magnitudes. In 
ICIP 1998.
 
One idea: Build Probability Distributions
 
But it (usually) doesn’t work
Probability distributions are hard to model well
 
 
 
 
 
 
 
 
Input
 
Synthesized
Another idea: Sample from the image
Assuming Markov property, compute P(
p
|N(
p
))
Building explicit probability tables infeasible
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
Synthesizing a pixel
Efros and Leung 1999 SIGGRAPH
 
Idea from Shannon (Information Theory)
 
 
Generate English-sounding sentences by
modeling the probability of each word given
the previous words (n-grams)
 
Large “n” will give more structured sentences
 
“I spent an interesting evening recently
with a grain of salt.”
(example from fake single.net user 
Mark V Shaney
)
Details
 
How to match patches?
Gaussian-weighted SSD (more emphasis on nearby
pixels)
What order to fill in new pixels?
“Onion skin” order: pixels with most neighbors are
synthesized first
To synthesize from scratch, start with a randomly
selected small patch from the source texture
How big should the patches be?
Size of Neighborhood Window
input
 
Varying Window Size
 
Increasing window size
 
Texture synthesis algorithm
 
While image not filled
1.
Get unfilled pixels with filled neighbors, sorted
by number of filled neighbors
 
2.
For each pixel, get top N matches based on
visible neighbors
-  Patch Distance: Gaussian-weighted SSD
 
3.
Randomly select one of the matches and copy
pixel from it
 
Synthesis Results
 
french canvas
 
rafia weave
 
More Results
 
white bread
 
brick wall
 
Homage to Shannon
 
Hole Filling
Extrapolation
In-painting natural scenes
Criminisi, Perez, and Toyama. “
Object Removal by Exemplar-based Inpainting
,” Proc. CVPR, 2003.
 
Key idea: Filling order matters
 
Image with Hole
 
Raster-Scan Order
 
In-painting Result
 
Onion-Peel
(Concentric Layers)
 
Gradient-Sensitive
Order
 
Criminisi, Perez, and Toyama. “
Object Removal by Exemplar-based Inpainting
,” Proc. CVPR, 2003.
 
Gradient-Sensitive Order:
Give preference to those pixels that continue edges and lines
Because of vision psychology:  “connectivity principle”
We prefer to see connections between existing and new data
 
Filling order
 
 
Fill a pixel that:
1.
Is surrounded by other known pixels
2.
Is a continuation of a strong gradient or edge
 
Criminisi, Perez, and Toyama. “
Object Removal by Exemplar-based Inpainting
,” Proc. CVPR, 2003.
 
Comparison
 
Criminisi, Perez, and Toyama. “
Object Removal by Exemplar-based Inpainting
,” Proc. CVPR, 2003.
 
    Original          With Hole            Onion-Ring Fill      Criminisi
 
Comparison
Concentric Layers
Gradient Sensitive
 
Summary
 
Texture synthesis algorithm
Very simple
Surprisingly good results
Synthesis is easier than analysis!
…but very slow
 
 
What can we do to improve speed?
Try synthesizing more than one pixel at a time
!
Image Quilting [Efros & Freeman 2001]
Observation:
 neighbor pixels are highly correlated
Input image
 
non-parametric
sampling
Input texture
B1
B2
Random placement 
of blocks 
block
Minimal error boundary
overlapping blocks
vertical boundary
 
Solving for Minimum Cut Path
1
2
4
3
1
2
4
2
1
1
3
4
 
Cost of a cut through this pixel
 
Solving for Minimum Cut Path
1
2
4
3
1
2
4
2
1
1
3
4
 
prev = r1
cost = 4
 
r1
 
r2
 
r3
 
prev = r1
cost = 2
 
prev = r2
cost = 4
 
cost = 3
 
cost = 4
 
cost = 6
 
cost = 5
 
cost = 6
 
cost = 7
 
Solving for Minimum Cut Path
1
2
4
3
1
2
4
2
1
3
1
4
 
Best Path
1
3
 
c
o
s
t
 
=
 
5
 
cost = 6
 
cost = 7
 
Solving for Minimum Cut Path
1
2
4
3
1
2
4
2
1
3
1
2
 
Mask Based on Best Path
3
1
 
Region 1
 
Region 2
 
Portilla & Simoncelli
 
Wei & Levoy
 
Quilting
 
Xu, Guo & Shum
 
input image
 
Portilla & Simoncelli
 
Wei & Levoy
 
Quilting
 
input image
 
Xu, Guo & Shum
 
Political Texture Synthesis!
+
+
=
=
Texture Transfer
Try to explain one object with bits and
pieces of another object:
 
Texture Transfer
 
Constraint
 
Texture sample
 
Take the texture from one
image and “paint” it onto
another object
 
 
Same as texture synthesis, except an additional
constraint:
1.
Consistency of texture
2.
Patches from texture should correspond to patches from constraint in
some way.  Typical example: blur luminance, use SSD for distance
Texture Transfer
 
 
 
=
=
 
+
+
 
Making sacred toast
 
+
 
?
 
http://www.nbcnews.com/id/6511148/ns/us_news-weird_news/t/virgin-mary-grilled-cheese-sells/
 
More toast!
Texture Synthesis and Transfer Recap
Sample
Output
Slide Note
Embed
Share

Delve into the world of texture synthesis and hole-filling in computational photography, exploring the challenges, goals, and techniques involved in creating new textures and filling in image gaps. Learn about building probability distributions, modeling textures, and the intricacies of synthesizing textures for various applications like virtual environments and surface texturing.

  • Computational Photography
  • Texture Synthesis
  • Hole-Filling
  • Image Processing
  • Digital Art

Uploaded on Aug 01, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. COMP790: Computational Photography Image Growing: Texture synthesis and hole filling Montek Singh Mar 4, 2019 (Credits to numerous other people on individual slides)

  2. Next section of slides from Derek Hoiem (mainly), and some from James Hays and Alexei Efros. Note many other sources for individual slides

  3. Texture Synthesis and Hole-Filling Slides by Derek Hoiem

  4. Where are we? Digital Canvas Image warping Object morphing Composting and blending Remaining: Growing and Cutting Texture synthesis (today) Hole filling (today) Intelligent scissors (next class)

  5. Todays Class: Growing and Cutting Texture synthesis and hole-filling

  6. Texture Texture depicts spatially repeating patterns Textures appear naturally and frequently radishes rocks yogurt Many slides from James Hays

  7. Texture Synthesis Goal of Texture Synthesis: create new samples of a given texture Many applications: virtual environments, hole- filling, texturing surfaces

  8. The Challenge Need to model the whole spectrum: from repeated to stochastic texture stochastic: a pattern that may be analyzed statistically but may not be predicted precisely (Google dictionary)

  9. One idea: Build Probability Distributions Basic idea 1. Compute statistics of input texture (e.g., histogram of edge filter responses) 2. Generate a new texture that keeps those same statistics D. J. Heeger and J. R. Bergen. Pyramid-based texture analysis/synthesis. In SIGGRAPH 95. E. P. Simoncelli and J. Portilla. Texture characterization via joint statistics of wavelet coefficient magnitudes. In ICIP 1998.

  10. One idea: Build Probability Distributions But it (usually) doesn t work Probability distributions are hard to model well Input Synthesized

  11. Another idea: Sample from the image non-parametric sampling p Input image Synthesizing a pixel Assuming Markov property, compute P(p|N(p)) Building explicit probability tables infeasible 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 Efros and Leung 1999 SIGGRAPH

  12. Idea from Shannon (Information Theory) Generate English-sounding sentences by modeling the probability of each word given the previous words (n-grams) Large n will give more structured sentences I spent an interesting evening recently with a grain of salt. (example from fake single.net user Mark V Shaney)

  13. Details How to match patches? Gaussian-weighted SSD (more emphasis on nearby pixels) What order to fill in new pixels? Onion skin order: pixels with most neighbors are synthesized first To synthesize from scratch, start with a randomly selected small patch from the source texture How big should the patches be?

  14. Size of Neighborhood Window input

  15. Varying Window Size Increasing window size

  16. Texture synthesis algorithm While image not filled 1. Get unfilled pixels with filled neighbors, sorted by number of filled neighbors 2. For each pixel, get top N matches based on visible neighbors - Patch Distance: Gaussian-weighted SSD 3. Randomly select one of the matches and copy pixel from it

  17. Synthesis Results french canvas rafia weave

  18. More Results white bread brick wall

  19. Homage to Shannon

  20. Hole Filling

  21. Extrapolation

  22. In-painting natural scenes Criminisi, Perez, and Toyama. Object Removal by Exemplar-based Inpainting, Proc. CVPR, 2003.

  23. Key idea: Filling order matters In-painting Result Onion-Peel (Concentric Layers) Gradient-Sensitive Order Raster-Scan Order Image with Hole Gradient-Sensitive Order: Give preference to those pixels that continue edges and lines Because of vision psychology: connectivity principle We prefer to see connections between existing and new data Criminisi, Perez, and Toyama. Object Removal by Exemplar-based Inpainting, Proc. CVPR, 2003.

  24. Filling order Fill a pixel that: 1. Is surrounded by other known pixels 2. Is a continuation of a strong gradient or edge Criminisi, Perez, and Toyama. Object Removal by Exemplar-based Inpainting, Proc. CVPR, 2003.

  25. Comparison Original With Hole Onion-Ring Fill Criminisi Criminisi, Perez, and Toyama. Object Removal by Exemplar-based Inpainting, Proc. CVPR, 2003.

  26. Comparison Concentric Layers Gradient Sensitive

  27. Summary Texture synthesis algorithm Very simple Surprisingly good results Synthesis is easier than analysis! but very slow What can we do to improve speed? Try synthesizing more than one pixel at a time !

  28. Image Quilting [Efros & Freeman 2001] non-parametric sampling p B Input image Synthesizing a block Observation: neighbor pixels are highly correlated Idea: 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

  29. block Input texture B1 B2 B1 B1 B2 B2 Neighboring blocks constrained by overlap Minimal error boundary cut Random placement of blocks

  30. Minimal error boundary overlapping blocks vertical boundary 2 _ = overlap error min. error boundary

  31. Solving for Minimum Cut Path Cost of a cut through this pixel 1 3 4 1 2 1 2 3 4 2 1 4

  32. Solving for Minimum Cut Path cost = 6 cost = 5 prev = r1 cost = 4 1 3 4 1 r1 prev = r1 cost = 2 cost = 4 cost = 6 2 1 2 3 r2 prev = r2 cost = 4 cost = 7 cost = 3 4 2 1 4 r3

  33. Solving for Minimum Cut Path Best Path cost = 5 1 3 4 3 1 cost = 6 2 1 2 1 3 cost = 7 4 2 1 4

  34. Solving for Minimum Cut Path 1 3 4 3 3 Region 1 2 1 2 1 1 Region 2 4 2 1 2 Mask Based on Best Path

  35. Portilla & Simoncelli Xu, Guo & Shum input image Wei & Levoy Quilting

  36. Portilla & Simoncelli Xu, Guo & Shum input image Wei & Levoy Quilting

  37. Political Texture Synthesis!

  38. Texture Transfer Try to explain one object with bits and pieces of another object: = +

  39. Texture Transfer Constraint Texture sample

  40. Texture Transfer Take the texture from one image and paint it onto another object Same as texture synthesis, except an additional constraint: 1. Consistency of texture 2. Patches from texture should correspond to patches from constraint in some way. Typical example: blur luminance, use SSD for distance

  41. + =

  42. Making sacred toast ? + http://www.nbcnews.com/id/6511148/ns/us_news-weird_news/t/virgin-mary-grilled-cheese-sells/

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#