Texture Synthesis Tiantian Liu Texture Synthesis Definition Texture

  • Slides: 80
Download presentation
Texture Synthesis Tiantian Liu

Texture Synthesis Tiantian Liu

Texture Synthesis Definition • Texture – Texture refers to the properties held and sensations

Texture Synthesis Definition • Texture – Texture refers to the properties held and sensations caused by the external surface of objects received through the sense of touch. Texture is sometimes used to describe the feel of non-tactile sensations. Texture can also be termed as a pattern that has been scaled down (especially in case of two dimensional non-tactile textures) where the individual elements that go on to make the pattern not distinguishable.

Texture Synthesis Definition • Texture – Local • Each pixel of a texture image

Texture Synthesis Definition • Texture – Local • Each pixel of a texture image is characterized by a small set of spatially neighboring pixels – Stationary • characterization is the same for all pixels

Texture Synthesis Definition • Texture

Texture Synthesis Definition • Texture

Texture Synthesis Definition • Texture Animal Skin Stone Water Hair Fabric Bricks

Texture Synthesis Definition • Texture Animal Skin Stone Water Hair Fabric Bricks

Texture Synthesis Definition • Texture Synthesis – Texture synthesis is the process of algorithmically

Texture Synthesis Definition • Texture Synthesis – Texture synthesis is the process of algorithmically constructing a large digital image from a small digital sample image by taking advantage of its structural content. It is object of research to computer graphics and is used in many fields, amongst others digital image editing, 3 D computer graphics and post-production of films.

Texture Synthesis Definition • Texture Synthesis Algorithm Input Result

Texture Synthesis Definition • Texture Synthesis Algorithm Input Result

Texture Synthesis Application • Surface Texture producing

Texture Synthesis Application • Surface Texture producing

Texture Synthesis Application • Image Editing

Texture Synthesis Application • Image Editing

Texture Synthesis Application • Image Editing

Texture Synthesis Application • Image Editing

Texture Synthesis Application • Flow-controlled 2 D texture

Texture Synthesis Application • Flow-controlled 2 D texture

Texture Synthesis Papers • Fast Texture Synthesis using Tree-structured Vector Quantization – Wei, L.

Texture Synthesis Papers • Fast Texture Synthesis using Tree-structured Vector Quantization – Wei, L. -Y. , and Levoy, M. 2000. • Texture Optimization for Example-based Synthesis – Kwatra V, Essa I, Bobick A, Kwatra N. 2005 • Accelerated Parallel Texture Optimization – Huang HD, Tong X, Wang WC. 2007

Texture Synthesis Papers • Fast Texture Synthesis using Tree-structured Vector Quantization – Wei, L.

Texture Synthesis Papers • Fast Texture Synthesis using Tree-structured Vector Quantization – Wei, L. -Y. , and Levoy, M. 2000. • Texture Optimization for Example-based Synthesis – Kwatra V, Essa I, Bobick A, Kwatra N. 2005 • Accelerated Parallel Texture Optimization – Huang HD, Tong X, Wang WC. 2007

Texture Synthesis Fast Texture Synthesis

Texture Synthesis Fast Texture Synthesis

Texture Synthesis Fast Texture Synthesis

Texture Synthesis Fast Texture Synthesis

Texture Synthesis Fast Texture Synthesis • Basic idea copy search input output

Texture Synthesis Fast Texture Synthesis • Basic idea copy search input output

Texture Synthesis Fast Texture Synthesis • Basic idea How large should the neighbor be?

Texture Synthesis Fast Texture Synthesis • Basic idea How large should the neighbor be?

Texture Synthesis Fast Texture Synthesis • Basic idea What if the neighbor is too

Texture Synthesis Fast Texture Synthesis • Basic idea What if the neighbor is too large or too small?

Texture Synthesis Fast Texture Synthesis • Multiple resolutions Copy noise Search noise input output

Texture Synthesis Fast Texture Synthesis • Multiple resolutions Copy noise Search noise input output

Texture Synthesis Fast Texture Synthesis • Multi-resolution allows the use of smaller neighborhoods 1

Texture Synthesis Fast Texture Synthesis • Multi-resolution allows the use of smaller neighborhoods 1 level 5 5 1 level 11 11 3 levels 5 5

Texture Synthesis Fast Texture Synthesis • A major issue with pixel-based algorithms introduced so

Texture Synthesis Fast Texture Synthesis • A major issue with pixel-based algorithms introduced so far – they are very slow • For input with N pixels and output with M pixels – O(MN) time complexity – Make it O(c. MN) for neighborhood size c • A fixed neighborhood allows us to do it faster – O( c log(N) M ) – TSVQ

Texture Synthesis Fast Texture Synthesis • Acceleration - TSVQ Search per input pixel Search

Texture Synthesis Fast Texture Synthesis • Acceleration - TSVQ Search per input pixel Search tree

Texture Synthesis Fast Texture Synthesis • Pseudo Code

Texture Synthesis Fast Texture Synthesis • Pseudo Code

Texture Synthesis Fast Texture Synthesis • Results Random Regular Oriented Semi-regular

Texture Synthesis Fast Texture Synthesis • Results Random Regular Oriented Semi-regular

Texture Synthesis Fast Texture Synthesis • Results

Texture Synthesis Fast Texture Synthesis • Results

Texture Synthesis Fast Texture Synthesis • Problems – Possibly get stuck on details. –

Texture Synthesis Fast Texture Synthesis • Problems – Possibly get stuck on details. – Still slow.

Texture Synthesis Fast Texture Synthesis • Problems – Possibly get stuck on details. –

Texture Synthesis Fast Texture Synthesis • Problems – Possibly get stuck on details. – Still slow.

Texture Synthesis Papers • Fast Texture Synthesis using Tree-structured Vector Quantization – Wei, L.

Texture Synthesis Papers • Fast Texture Synthesis using Tree-structured Vector Quantization – Wei, L. -Y. , and Levoy, M. 2000. • Texture Optimization for Example-based Synthesis – Kwatra V, Essa I, Bobick A, Kwatra N. 2005 • Accelerated Parallel Texture Optimization – Huang HD, Tong X, Wang WC. 2007

Texture Synthesis Texture Optimization

Texture Synthesis Texture Optimization

Texture Synthesis Texture Optimization

Texture Synthesis Texture Optimization

Texture Synthesis Texture Optimization • Texture Similarity and Synthesis • Shape, size, orientation of

Texture Synthesis Texture Optimization • Texture Similarity and Synthesis • Shape, size, orientation of texture elements similar to source

Texture Synthesis Texture Optimization • Texture Energy – Tricky! • Pixel-by-pixel comparison of source

Texture Synthesis Texture Optimization • 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 Synthesis Texture Optimization • Texture Energy Z (source) X (target frame)

Texture Synthesis Texture Optimization • Texture Energy Z (source) X (target frame)

Texture Synthesis Texture Optimization • Texture Energy Z (source) p (pixel) X (target frame)

Texture Synthesis Texture Optimization • Texture Energy Z (source) p (pixel) X (target frame)

Texture Synthesis Texture Optimization • Texture Energy Z (source) Xp (neighborhood) X (target frame)

Texture Synthesis Texture Optimization • Texture Energy Z (source) Xp (neighborhood) X (target frame)

Texture Synthesis Texture Optimization • Texture Energy Z (source) Xp (neighborhood) X (target frame)

Texture Synthesis Texture Optimization • Texture Energy Z (source) Xp (neighborhood) X (target frame)

Texture Synthesis Texture Optimization • Texture Energy (nearest neighbor) Zp Z (source) Xp (neighborhood)

Texture Synthesis Texture Optimization • Texture Energy (nearest neighbor) Zp Z (source) Xp (neighborhood) X (target frame)

Texture Synthesis Texture Optimization • Texture Energy (nearest neighbor) Zp Z Texture Energy (single

Texture Synthesis Texture Optimization • Texture Energy (nearest neighbor) Zp Z Texture Energy (single neighborhood) Xp (neighborhood) X

Texture Synthesis Texture Optimization • Texture Energy Z X

Texture Synthesis Texture Optimization • Texture Energy Z X

Texture Synthesis Texture Optimization • Texture Energy Z X = individual neighborhood energy

Texture Synthesis Texture Optimization • Texture Energy Z X = individual neighborhood energy

Texture Synthesis Texture Optimization • Flow-guided Texture Animation – Flow consistency • Perceived motion

Texture Synthesis Texture Optimization • Flow-guided Texture Animation – Flow consistency • Perceived motion similar to flow – Texture similarity • Shape, size, orientation of texture elements similar to source + Texture = Flow Field Output

Texture Synthesis Texture Optimization Source Texture Similarity • Naïve way: • Ignore Texture Similarity

Texture Synthesis Texture Optimization Source Texture Similarity • Naïve way: • Ignore Texture Similarity • Warp each frame via flow field Target Frames X 0 Warp X 1 Flow Consistency Flowing Target Flow Xn

Texture Synthesis Texture Optimization • Warp Target Frames X 0 Warp X 1 Xn

Texture Synthesis Texture Optimization • Warp Target Frames X 0 Warp X 1 Xn

Texture Synthesis Texture Optimization • Simply Warp – Problem: Texture structure not maintained

Texture Synthesis Texture Optimization • Simply Warp – Problem: Texture structure not maintained

Texture Synthesis Texture Optimization • Warp + Correct – Problem: Texture structure not maintained

Texture Synthesis Texture Optimization • Warp + Correct – Problem: Texture structure not maintained Target Frames X– X Warp Correct W Warped Frame Synthesized Frame

Texture Synthesis Texture Optimization • Link to original goals Source Texture Similarity Target Frames

Texture Synthesis Texture Optimization • Link to original goals Source Texture Similarity Target Frames X– X Flow Consistency Warp W Correct

Texture Synthesis Texture Optimization Energy = Flow Energy + Texture Energy Source Texture Similarity

Texture Synthesis Texture Optimization Energy = Flow Energy + Texture Energy Source Texture Similarity Target Frames X– X Flow Consistency Warp W Correct

Texture Synthesis Texture Optimization Energy = Flow Energy + Texture Energy Target Frames X–

Texture Synthesis Texture Optimization Energy = Flow Energy + Texture Energy Target Frames X– X Warp Flow Energy W

Texture Synthesis Texture Optimization • Optimize Total Energy of target frame: • Initialize: X

Texture Synthesis Texture Optimization • Optimize Total Energy of target frame: • Initialize: X W (target frame warped frame) • Iteratively improve target frame (E-M algorithm!)

Texture Synthesis Texture Optimization • Two variables we need to optimize over

Texture Synthesis Texture Optimization • Two variables we need to optimize over

Texture Synthesis Texture Optimization • Two variables we need to optimize over Target Frame

Texture Synthesis Texture Optimization • Two variables we need to optimize over Target Frame

Texture Synthesis Texture Optimization • Two variables we need to optimize over Source Neighborhoods

Texture Synthesis Texture Optimization • Two variables we need to optimize over Source Neighborhoods

Texture Synthesis Texture Optimization • Iterative Algorithm – Step 1 – Minimize E( X

Texture Synthesis Texture Optimization • Iterative Algorithm – Step 1 – Minimize E( X ) w. r. t {Zp} – Find Nearest Source Neighborhoods

Texture Synthesis Texture Optimization • Iterative Algorithm – Step 2 – Minimize E( X

Texture Synthesis Texture Optimization • Iterative Algorithm – Step 2 – Minimize E( X ) w. r. t X – Set Solve Linear System

Texture Synthesis Texture Optimization • Pseudo code

Texture Synthesis Texture Optimization • Pseudo code

Texture Synthesis Texture Optimization • Multi-level synthesis – Random Initialization – Multiple • Resolution

Texture Synthesis Texture Optimization • Multi-level synthesis – Random Initialization – Multiple • Resolution Levels • Neighborhood Sizes – Progressively refined output [KEBK 05]

Texture Synthesis Texture Optimization • Multi-level synthesis – Random Initialization – Multiple • Resolution

Texture Synthesis Texture Optimization • Multi-level synthesis – Random Initialization – Multiple • Resolution Levels • Neighborhood Sizes – Progressively refined output [KEBK 05]

Texture Synthesis Texture Optimization • Results [KEBK 05]

Texture Synthesis Texture Optimization • Results [KEBK 05]

Texture Synthesis Texture Optimization • Results [KEBK 05]

Texture Synthesis Texture Optimization • Results [KEBK 05]

Texture Synthesis Texture Optimization • Results [KEBK 05]

Texture Synthesis Texture Optimization • Results [KEBK 05]

Texture Synthesis Texture Optimization • Results [KEBK 05]

Texture Synthesis Texture Optimization • Results [KEBK 05]

Texture Synthesis Texture Optimization • Problems – Linear Solve may cause blurriness • Solution:

Texture Synthesis Texture Optimization • Problems – Linear Solve may cause blurriness • Solution: Discrete Optimization – Can get stuck in local minima • Several solutions, but not work well – Very very slow (especially on surfaces) • Solution: Exploit parallel hardware • Solution: Nearest neighbor queries can be made in parallel

Texture Synthesis Papers • Fast Texture Synthesis using Tree-structured Vector Quantization – Wei, L.

Texture Synthesis Papers • Fast Texture Synthesis using Tree-structured Vector Quantization – Wei, L. -Y. , and Levoy, M. 2000. • Texture Optimization for Example-based Synthesis – Kwatra V, Essa I, Bobick A, Kwatra N. 2005 • Accelerated Parallel Texture Optimization – Huang HD, Tong X, Wang WC. 2007

Texture Synthesis Accelerated Parallel Texture Optimization

Texture Synthesis Accelerated Parallel Texture Optimization

Texture Synthesis Accelerated Parallel Texture Optimization • GPU-Based Texture Optimization – K-coherence search –

Texture Synthesis Accelerated Parallel Texture Optimization • GPU-Based Texture Optimization – K-coherence search – Principal Components Analysis(PCA)

Texture Synthesis Accelerated Parallel Texture Optimization • K-coherence search on GPU

Texture Synthesis Accelerated Parallel Texture Optimization • K-coherence search on GPU

Texture Synthesis Accelerated Parallel Texture Optimization • K-coherence search on GPU

Texture Synthesis Accelerated Parallel Texture Optimization • K-coherence search on GPU

Texture Synthesis Accelerated Parallel Texture Optimization • K-coherence search on GPU (pre-computing) • For

Texture Synthesis Accelerated Parallel Texture Optimization • K-coherence search on GPU (pre-computing) • For each input pixel, find k others with similar neighborhoods 2 1 1 1 A 1 1 1 1 input 2 B k=2 2 A 1 1 1 B 1 1

Texture Synthesis Accelerated Parallel Texture Optimization • K-coherence search on GPU (searching) 1 1

Texture Synthesis Accelerated Parallel Texture Optimization • K-coherence search on GPU (searching) 1 1 A 1 B 2 2 A 2 B 2 2 B 1 A 2 A 1 2 3 4 5 6 7 8 1 1 B input output

Texture Synthesis Accelerated Parallel Texture Optimization • PCA – reducing the dimension • mathematically

Texture Synthesis Accelerated Parallel Texture Optimization • PCA – reducing the dimension • mathematically defined as an orthogonal linear transformation that transforms the data to a new coordinate system such that the greatest variance by any projection of the data comes to lie on the first coordinate (called the first principal component), the second greatest variance on the second coordinate, and so on. • theoretically the optimum transform for given data in least square terms

Texture Synthesis Accelerated Parallel Texture Optimization • Pseudo Code

Texture Synthesis Accelerated Parallel Texture Optimization • Pseudo Code

Texture Synthesis Accelerated Parallel Texture Optimization • GPU implementation details: • Divide parallel scheme

Texture Synthesis Accelerated Parallel Texture Optimization • GPU implementation details: • Divide parallel scheme into 3 fragment programs. – E-step program – M-step program – Up sampling program

Texture Synthesis Accelerated Parallel Texture Optimization • GPU implementation details: • Divide parallel scheme

Texture Synthesis Accelerated Parallel Texture Optimization • GPU implementation details: • Divide parallel scheme into 3 fragment programs. – E-step program » Input: neighborhood texture Y(storing {zp}}) » Output: pixel texture X(storing x) – M-step program – Up sampling program

Texture Synthesis Accelerated Parallel Texture Optimization • GPU implementation details: • Divide parallel scheme

Texture Synthesis Accelerated Parallel Texture Optimization • GPU implementation details: • Divide parallel scheme into 3 fragment programs. – E-step program – M-step program » Input: X and related pre-computed data » Output: new neighborhood Y – Up sampling program

Texture Synthesis Accelerated Parallel Texture Optimization • GPU implementation details: • Divide parallel scheme

Texture Synthesis Accelerated Parallel Texture Optimization • GPU implementation details: • Divide parallel scheme into 3 fragment programs. – E-step program – M-step program – Up sampling program » Needed in multi-level synthesis.

Texture Synthesis Accelerated Parallel Texture Optimization • Results [HTW 2007]

Texture Synthesis Accelerated Parallel Texture Optimization • Results [HTW 2007]

Texture Synthesis Accelerated Parallel Texture Optimization • Comparison CPU [HTW 2007] GPU

Texture Synthesis Accelerated Parallel Texture Optimization • Comparison CPU [HTW 2007] GPU

Texture Synthesis Sum up • Texture synthesis has many applications: – Surface texture procedure,

Texture Synthesis Sum up • Texture synthesis has many applications: – Surface texture procedure, texture editing, 2 D flow controlled texture, spatio-temporal textures, lossy compression etc. • Current CPU implementation methods are mature: – Pixel based, patch based, texturing optimization, user controlled, flow controlled etc.

Texture Synthesis Sum up (cont. ) • Time consuming is still a problem of

Texture Synthesis Sum up (cont. ) • Time consuming is still a problem of texture synthesis. • Parallel algorithms that can be run on GPUs are few.

Texture Synthesis Thank You …

Texture Synthesis Thank You …