420 likes | 642 Views
Texture Optimization for Example-based Synthesis. Vivek Kwatra Irfan Essa Aaron Bobick Nipun Kwatra. Image vs. Texture. Example-based Texture Synthesis. Input Example. Related Work. Local region-growing method -Pixel-based - Patch-based Global optimization-based method
E N D
Texture Optimization for Example-based Synthesis Vivek KwatraIrfan EssaAaron BobickNipun Kwatra
Example-based Texture Synthesis InputExample
Related Work • Local region-growing method -Pixel-based -Patch-based • Global optimization-based method Heeger and Bergen sig95,Pyramid-based texture synthesis Paget and Longstaff IEEE Tran… 98,Texture synthesis via a noncausal nonparametric multiscale markov random field ….. • Physical Simulation et al
Example-based Texture Synthesis • Dynamic texturing (animation/video) • Greater control: external knobs, e.g., flow, shape, illumination • Texture quality evaluation and refinement
OutputSequence Motivation + InputTexture InputFlow Field
Limitations of previous work • Pixel-based can not maintain global structure of the texture inconsistencies • Patch-based have no control over individual pixel values • Global methods: pixel-to-pixel interactions insufficient to capture large scale structures complex formulations difficult to optimize
Texture Energy • 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
Texture Synthesis 1.Initialize texture X 2.Find closest input neighborhood ZP corresponding to each output neighborhood XP 3.Update X to be texture that minimizes the energy 4.Repeat iteratively until set {ZP} stops changing
Gradient-based Energy D is the differentiation operator and µ is a relative weighting coefficient
Muti-level Synthesis • Multi-resolution • Multi-scale/multiple neighborhood sizes Reasons • a good initialization of the texture • avoid undesirable local minima • avoid inconsistencies • capture large scale structures
Texture Energy Graph • Random Initialization • Multiple • Resolution Levels • Neighborhood Sizes • Progressively refined output
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 “Correct” Operation 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 Energy = Flow Energy + Texture Energy Source Texture Similarity TargetFrames X– X Correct Flow Consistency Warp W
Flow Energy 2D flow field frame i frame i+1 pixel (p,i) pixel (q,i+1)
Results: Texture Synthesis Input Wei-Levoy[Wei’00] Image Quilting[Efros’01] Graph-cuts[Kwatra’03] Texture Optimization[Kwatra’05]
Time Cost • Static texture synthesis • 5-10 iterations per resolution level • Flowing texture synthesis • 20-60 seconds per frame
Limitations • Optimization finds local minima • Blurry / misaligned texture elements • Texture scale should be compatible with flow field
Pixel-based Methods • Compare local causal neighbourhoods Efros and Leung (ICCV ’99) Wei and Levoy (Siggraph 2000) Ashikhmin (I3D 2001) Input Output
Patch-based Methods • Copy patches of pixels rather than single pixels Chaos Mosaic, Xu et al, 1997 Patch-Based Sampling, Liang et al(ACM 2001) Image Quilting, Efros and Williams(Siggraph 2001)