Video Textures Arno Schödl Richard Szeliski David Salesin Irfan Essa Microsoft Research, Georgia Tech Still Photos Video Clips Video Textures Problem Statement video clip video texture Approach How do we find good transitions? Finding Good Transitions Compute L2 distance Di, j between all frames vs. frame i frame j Similar frames make good transitions Markov Chain Representation 1 2 Similar frames make good transitions 3 4 Transition Costs Transition from i to j if successor of i is similar to j Cost function: Cij = Di+1, j i i+ 1 i j j-1 D i+ 1 ,j j Transition Probabilities Probability for transition Pij inversely related to cost: Ci j Pi j exp 2 high low Preserving Dynamics Preserving Dynamics Preserving Dynamics Cost for transition ij N -1 wk Di+k+1, j+k k = -N Cij = i-1 i Di-1, j-2 Di, j-1 j-2 j-1 i j i+1 i+2 Di+1, j Di+2, j+1 j j+1 Preserving Dynamics – Effect Cost for transition ij Cij = N -1 wk Di+k+1, j+k k = -N Deadends No good transition at the end of sequence 1 2 3 4 Future Cost • Propagate future transition costs backward • Iteratively compute new cost Fij = Cij + mink Fjk 1 2 3 4 Future Cost • Propagate future transition costs backward • Iteratively compute new cost Fij = Cij + mink Fjk 1 2 3 4 Future Cost • Propagate future transition costs backward • Iteratively compute new cost Fij = Cij + mink Fjk 1 2 3 4 Future Cost • Propagate future transition costs backward • Iteratively compute new cost Fij = Cij + mink Fjk 1 2 3 4 Future Cost • Propagate future transition costs backward • Iteratively compute new cost Fij = Cij + mink Fjk • Q-learning 1 2 3 4 Future Cost – Effect Finding Good Loops • Alternative to random transitions • Precompute a good set of loops up front (using dynamic programming) Visual Discontinuities • Problem: Visible “Jumps” Crossfading • Solution: Crossfade from one sequence to the other. 3 4 … Ai-2 + Ai-2 1 4 Ai-1 2 4 Bj-2 2 + 4 Ai-1/Bj-2 Ai Bj-1 15 Ai-1/Bj-2 1 4 3 + 4 Ai+1 Bj Ai-1/Bj-2 Bj+1 … Bj+1 Morphing • Interpolation task: 2 5 A + 2 5 B + 1 5 C Morphing • Interpolation task: 2 5 A + 2 5 B + 1 5 • Compute correspondence between pixels of all frames C Morphing • Interpolation task: 2 5 A + 2 5 B + 1 5 • Compute correspondence between pixels of all frames • Interpolate pixel position and color in morphed frame • based on [Shum 2000] C Results – Crossfading / Morphing Results – Crossfading / Morphing Jump Cut Crossfade Morph Crossfading Frequent Jump & Crossfading Video Portrait Useful for web pages Video Portrait – 3D Combine with IBR techniques Region-based Analysis • Divide video up into regions • Generate a video texture for each region Automatic Region Analysis User-controlled Video Textures slow variable User selects target frame range fast Time Warping shorter original longer Lengthen / shorten video without affecting speed Summary • Video clips video textures • • • • define Markov process preserve dynamics avoid dead-ends disguise visual discontinuities Summary • Extensions • regions • external constraints • video-based animation Discussion • Some things are relatively easy Discussion • Some are hard