470 likes | 489 Views
Texture Optimization for Example-based Synthesis. Vivek Kwatra Irfan Essa Aaron Bobick Nipun Kwatra. GVU Center/College of Computing, Georgia Tech. Objects vs. Textures. Objects Computer Graphics Primitives Described by structure. Objects vs. Textures. Textures Characterized by appearance
E N D
Texture Optimization for Example-based Synthesis Vivek KwatraIrfan EssaAaron BobickNipun Kwatra GVU Center/College of Computing, Georgia Tech
Objects vs. Textures • Objects • Computer Graphics Primitives • Described by structure
Objects vs. Textures • Textures • Characterized by appearance • Elements arranged quasi-randomly
Dynamic Textures • Appearance similar across evolution
Natural Scenes contain Texture Vegetation Sand Water Clouds Rocks Snow
Goal: Video Extension Output: 30% Larger SpatiallyCan play it infinitely
Motivation + = InputTexture InputFlow Field OutputSequence
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
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 does not make sense • 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
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
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 • Flow-guided texture animation within optimization framework
Limitations and Future Work • Optimization finds local minima • Blurry / misaligned texture elements • Extensions • Controllable video textures • Other control criteria like shape, illumination