520 likes | 661 Views
Texture Optimization for Example-based Synthesis. Vivek Kwatra 1,2 Irfan Essa 1 Aaron Bobick 1 Nipun Kwatra 1. 1 GVU Center/College of Computing, Georgia Tech 2 Computer Science Dept., UNC Chapel Hill. Motivation. +. =. Input Texture. Input Flow Field. Output Sequence.
E N D
Texture Optimization for Example-based Synthesis Vivek Kwatra1,2Irfan Essa1Aaron Bobick1Nipun Kwatra1 1GVU Center/College of Computing, Georgia Tech 2Computer Science Dept., UNC Chapel Hill
Motivation + = InputTexture InputFlow Field OutputSequence
Example-based Texture Synthesis • Dynamic texturing (animation/video) • Greater control: external knobs, e.g., flow, shape, illumination • Explicit texture quality evaluation and refinement
Contributions I • Global Optimization for texture synthesis • Global texture quality metric • Iterative multi-scale optimization
+ = InputTexture InputFlow Field OutputSequence Contributions II • Flow-guided texture animation • Flow incorporated into optimization • Applications: fluid rendering, flow visualization
Related Work (a selected sample) TextureOptimization[Kwatra’05] MRF Annealing[Paget’98] Histogram Matching[Heeger’95] Local vs. Global Graphcut Textures[Kwatra’03] Non-parametricsampling[Efros’99,Wei’00] Image Quilting[Efros’01] Pixel vs. Patch
Related Work (a selected sample) Better Quality TextureOptimization[Kwatra’05] MRF Annealing[Paget’98] Histogram Matching[Heeger’95] Local vs. Global Graphcut Textures[Kwatra’03] Non-parametricsampling[Efros’99,Wei’00] Image Quilting[Efros’01] Pixel vs. Patch
Related Work (a selected sample) Better Quality TextureOptimization[Kwatra’05] MRF Annealing[Paget’98] Greater Controllability Histogram Matching[Heeger’95] Local vs. Global Graphcut Textures[Kwatra’03] Non-parametricsampling[Efros’99,Wei’00] Image Quilting[Efros’01] Pixel vs. Patch
Related Work • Flow-guided Synthesis • Advected Textures [Neyret’03] • Flow-based Video Editing [Bhat’04] • Optimization • Image-based Priors [Fitzgibbon’03] • Space-time Video Completion [Wexler’04]
Flow-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
Source Texture Texture Similarity Naive Approach • Ignore Texture Similarity • Warp each frame via flow field Source Texture Warp TargetFrames X0 X1 Xn Texture Similarity FlowConsistency Flowing Target Target Flow
Naive Approach Texture structure not maintained Source Texture Texture Similarity FlowConsistency Flowing Target Target Flow
Warp X0 X1 Xn Instead of… Warp TargetFrames
Warp X0 X1 Xn Instead of… Warp TargetFrames
SynthesizedFrame X– X Warp Correct W WarpedFrame Our Approach Warp + Correct TargetFrames
“Correct” Operation Link to original goals TargetFrames X– X Correct Warp W
“Correct” Operation Link to original goals TargetFrames X– X Correct Flow Consistency Warp W
“Correct” Operation Link to original goals Source Texture Similarity TargetFrames X– X Correct Flow Consistency Warp W
Optimization of Energy / Cost Energy = Flow Energy + Texture Energy Source Texture Similarity TargetFrames X– X Correct Flow Consistency Warp W
Flow Energy TargetFrames X– X Warp Flow Energy W
Texture 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
Texture Energy Z(source) X(target frame)
Energy for Single Neighborhood Z(source) p(pixel) X(target frame)
Energy for Single Neighborhood Z(source) Xp(neighborhood) X(target frame)
Energy for Single Neighborhood Z(source) Xp(neighborhood) X(target frame)
Energy for Single Neighborhood (nearest neighbor) Zp Z(source) Xp(neighborhood) X(target frame)
Energy for Single Neighborhood (nearest neighbor) Zp Z Xp(neighborhood) Texture Energy(single neighborhood) X
Texture Energy for Entire Image Z X = individual neighborhood energy
Optimization • Optimize Total Energy of target frame: • Initialize: X W(target frame warped frame) • Iteratively improve target frame
Optimization: Intuition Zp Texture Force Xp Source Target Frame Flow Force Wp Warped Frame
Optimization: Intuition Zp Xp Blend Source Target Frame Wp Warped Frame
Overlapping Neighborhoods Zp Xq Zq Blend Source Xp Target Frame Wp Warped Frame
We are not done yet! Nearest neighbor may change Zp Xp Source Target Frame Wp Warped Frame
Iterative Algorithm • Step 1 • Find Nearest Source Neighborhoods • Step 2 • Blend Source & Warped Neighborhoods • Repeat until convergence
Iterative Algorithm • Step 1 • Find Nearest Source Neighborhoods • Minimize E( X ) w.r.t {Zp} • Approximate nearest-neighbors • Hierarchical Clustering [Johnson’67] • Tree-Structured Vector Quantization [Wei’00]
Iterative Algorithm • Step 2 • Blend Source & Warped Neighborhoods • Minimize E( X ) w.r.t X • Set Solve Linear System
Robust Optimization • Quadratic Texture Energy Etsensitive to outlier neighborhoods • Non-quadratic Etmore robust • Et( X ) = pkXp – Zpkr, 0 < r < 2
Robust Optimization • Quadratic Texture Energy Etsensitive to outlier neighborhoods • Non-quadratic Etmore robust • Et( X ) = pkXp – Zpkr, 0 < r < 2 • Solve weighted quadratic at each iteration Et( X ) = pkXp – Zpkr-2. kXp – Zpk2 = p p . kXp – Zpk2
Minimize Texture Energy Alone • Novel Static Texture Synthesis Algorithm Source Texture Similarity X– X Correct Flow Consistency W
Texture Energy Graph • Random Initialization • Multiple • Resolution Levels • Neighborhood Sizes • Progressively refined output
Texture Energy Graph • Random Initialization • Multiple • Resolution Levels • Neighborhood Sizes • Progressively refined output
Results: Texture Synthesis Input Wei-Levoy[Wei’00] Image Quilting[Efros’01] Graph-cuts[Kwatra’03] Texture Optimization[Kwatra’05]
Results: Texture Synthesis Image Quilting[Efros’01] Graph-cuts[Kwatra’03] Texture Optimization[Kwatra’05]
Results: Timing • Static texture synthesis • 5-10 iterations per resolution level • Flowing texture synthesis • 20-60 seconds per frame
+ = InputTexture InputFlow Field OutputSequence Summary • Global Optimization for controllable texture synthesis • Explicit evaluation of texture quality • Iterative progressive refinement of texture • Flow-guided texture animation within optimization framework