Title: Texture Optimization for Example-based Synthesis
1Texture Optimization for Example-based Synthesis
- Vivek Kwatra1,2 Irfan Essa1Aaron Bobick1Nipun
Kwatra1
1GVU Center/College of Computing, Georgia
Tech 2Computer Science Dept., UNC Chapel Hill
2Motivation
InputTexture
InputFlow Field
OutputSequence
3Example-based Texture Synthesis
4Example-based Texture Synthesis
- Dynamic texturing (animation/video)
- Greater control external knobs, e.g., flow,
shape, illumination - Explicit texture quality evaluation and refinement
5Contributions I
- Global Optimization for texture synthesis
- Global texture quality metric
- Iterative multi-scale optimization
6Contributions II
- Flow-guided texture animation
- Flow incorporated into optimization
- Applications fluid rendering, flow visualization
7Related Work (a selected sample)
TextureOptimizationKwatra05
MRF AnnealingPaget98
Histogram MatchingHeeger95
Local vs. Global
Graphcut TexturesKwatra03
Non-parametricsamplingEfros99,Wei00
Image QuiltingEfros01
Pixel vs. Patch
8Related Work (a selected sample)
Better Quality
TextureOptimizationKwatra05
MRF AnnealingPaget98
Histogram MatchingHeeger95
Local vs. Global
Graphcut TexturesKwatra03
Non-parametricsamplingEfros99,Wei00
Image QuiltingEfros01
Pixel vs. Patch
9Related Work (a selected sample)
Better Quality
TextureOptimizationKwatra05
MRF AnnealingPaget98
Greater Controllability
Histogram MatchingHeeger95
Local vs. Global
Graphcut TexturesKwatra03
Non-parametricsamplingEfros99,Wei00
Image QuiltingEfros01
Pixel vs. Patch
10Related Work
- Flow-guided Synthesis
- Advected Textures Neyret03
- Flow-based Video Editing Bhat04
- Optimization
- Image-based Priors Fitzgibbon03
- Space-time Video Completion Wexler04
11Flow-guided Texture Animation
- Flow consistency
- Perceived motion similar to flow
- Texture similarity
- Shape, size, orientation of texture elements
similar to source
Source Texture
Texture Similarity
FlowConsistency
Flowing Target
Target Flow
12Naive Approach
- Ignore Texture Similarity
- Warp each frame via flow field
Source Texture
Warp
TargetFrames
X1
Xn
X0
Texture Similarity
FlowConsistency
Flowing Target
Target Flow
13Naive Approach
- Texture structure not maintained
Source Texture
Texture Similarity
FlowConsistency
Flowing Target
Target Flow
14Instead of
TargetFrames
15Instead of
TargetFrames
16Our Approach
TargetFrames
17Correct Operation
TargetFrames
X
X
Correct
Warp
W
18Correct Operation
TargetFrames
X
X
Correct
Flow Consistency
Warp
W
19Correct Operation
Source
Texture Similarity
TargetFrames
X
X
Correct
Flow Consistency
Warp
W
20Optimization of Energy / Cost
- Energy Flow Energy Texture Energy
Source
Texture Similarity
TargetFrames
X
X
Correct
Flow Consistency
Warp
W
21Flow Energy
TargetFrames
X
X
Flow Energy
Warp
W
22Texture Energy
- Tricky!
- Pixel-by-pixel comparison of source and target
not possible - Compare texture elements
- Local pixel neighborhoods
- Want each target neighborhood to be similar to
some source neighborhood
23Texture Energy
Z(source)
X(target frame)
24Energy for Single Neighborhood
Z(source)
p (pixel)
X(target frame)
25Energy for Single Neighborhood
Z(source)
Xp (neighborhood)
X(target frame)
26Energy for Single Neighborhood
Z(source)
Xp (neighborhood)
X(target frame)
27Energy for Single Neighborhood
(nearest neighbor) Zp
Z(source)
Xp (neighborhood)
X(target frame)
28Energy for Single Neighborhood
(nearest neighbor) Zp
Z
Xp (neighborhood)
Texture Energy(single neighborhood)
X
29Texture Energy for Entire Image
Z
X
30Texture Energy for Entire Image
Z
X
? individual neighborhood energy
31Optimization
- Optimize Total Energy of target frame
-
-
- Initialize X ? W(target frame ? warped frame)
- Iteratively improve target frame
32Optimization Intuition
Zp
Texture Force
Xp
Source
Target Frame
Flow Force
Wp
Warped Frame
33Optimization Intuition
Zp
Xp
Blend
Source
Target Frame
Wp
Warped Frame
34Overlapping Neighborhoods
Zp
Xq
Zq
Blend
Source
Xp
Target Frame
Wp
Warped Frame
35We are not done yet!
Nearest neighbor may change
Zp
Xp
Source
Target Frame
Wp
Warped Frame
36Iterative Algorithm
- Step 1
- Find Nearest Source Neighborhoods
- Step 2
- Blend Source Warped Neighborhoods
- Repeat until convergence
37Iterative Algorithm
- Step 1
- Find Nearest Source Neighborhoods
- Minimize E( X ) w.r.t Zp
- Approximate nearest-neighbors
- Hierarchical Clustering Johnson67
- Tree-Structured Vector Quantization Wei00
38Iterative Algorithm
- Step 2
- Blend Source Warped Neighborhoods
- Minimize E( X ) w.r.t X
- Set ? Solve Linear System
39Robust Optimization
- Quadratic Texture Energy Et sensitive to outlier
neighborhoods - Non-quadratic Et more robust
- Et( X ) ?p kXp Zpkr, 0 lt r lt 2
40Robust Optimization
- Quadratic Texture Energy Et sensitive to outlier
neighborhoods - Non-quadratic Et more robust
- Et( X ) ?p kXp Zpkr, 0 lt r lt 2
- Solve weighted quadratic at each iteration
- Et( X ) ?p kXp Zpkr-2. kXp Zpk2
- ?p ?p . kXp
Zpk2
41Minimize Texture Energy Alone
- Novel Static Texture Synthesis Algorithm
Source
Texture Similarity
X
X
Correct
Flow Consistency
W
42Texture Energy Graph
- Random Initialization
- Multiple
- Resolution Levels
- Neighborhood Sizes
- Progressively refined output
43Texture Energy Graph
- Random Initialization
- Multiple
- Resolution Levels
- Neighborhood Sizes
- Progressively refined output
44Results Texture Synthesis
45(No Transcript)
46Results Texture Synthesis
Input
Wei-LevoyWei00
Image QuiltingEfros01
Graph-cutsKwatra03
Texture OptimizationKwatra05
47Results Texture Synthesis
Image QuiltingEfros01
Graph-cutsKwatra03
Texture OptimizationKwatra05
48Results Flow-guided Synthesis
49Results Timing
- Static texture synthesis
- 5-10 iterations per resolution level
- Flowing texture synthesis
- 20-60 seconds per frame
Resolution One iteration Total time
64x64 2.5 sec 20 sec
128x128 10 sec 2 min
256x256 25 sec 8.5 min
50Summary
- Global Optimization for controllable texture
synthesis - Explicit evaluation of texture quality
- Iterative progressive refinement of texture
- Flow-guided texture animation within optimization
framework
51Limitations and Future Work
- Optimization finds local minima
- Blurry / misaligned texture elements
- Texture scale should be compatible with flow
field - Extensions
- Controllable video textures
- Other control criteria like shape, illumination
52Acknowledgements
- Eugene Zhang for flow design code
- Greg Turk, Gabriel Brostow, Delphine Nain, Ravi
Ruddarraju, Gaurav Chanda, Stephanie Brubaker,
Mitch Parry, Pei Yen - Computational Perception Lab, Geometry Group _at_
Georgia Tech - CMU Graphics Lab
- Web page
- http//www.cc.gatech.edu/cpl/projects/textureoptim
ization/