Diffusion Curves: A Vector Representation for Smooth-Shaded Image<br />Alexandrina Orzan<br />AdrienBousseau<br />HolgerWi...
Abstract<br /><ul><li>Diffusion curve  represent smooth shaded image
Manual, assisted or automatic extraction for the diffusion curve
GPU-based multi-grid gradient solution</li></li></ul><li>Outline<br />Introduction<br />Relative Work<br />Diffusion Curve...
Introduction<br />Benefits of vector-based primitives <br />More compact representation, resolution-independence, geometri...
Introduction – cont.<br />Gradient mesh(Adobe Illustrator and Corel CorelDraw)<br />A lattice with colors at each vertex t...
Diffusion Curve<br />A curve that diffuses colors on both sides<br />Support traditional freehand drawing<br />Artists ske...
Contribution<br />A prototype allowing manual creation and editing of diffusion curves<br />A full automatic conversion fr...
Relative work<br />
Gradient Tools<br />Optimized Gradient Meshes<br />[Sun el al. SIGGRAPH07]<br />A manually initialized mesh<br />Sample an...
Gradient Tools<br />Gradient Brush<br />[McCann & Pollard,  SIGGRAPH08]<br />Interactive edge-focused  drawing tools on gr...
GPU-Based Multigrid Method for Gradient-Domain<br />Multi-grid method<br />Use a coarse version of the domain to efficient...
Standard Multigrid V-cycle<br /><ul><li>u= F </li></ul>Figure 1 of “Streaming Multigrid for Gradient-Domain Operations on ...
Diffusion Curves<br />Diffusion curve<br />Final image <br />
Rendering<br />Diffusion curve<br />Final image <br />Color source (CL, CR)<br />2.Diffuse<br />Sharp color image <br />1....
1. Rasterize sources<br />Diffusion curve<br />(similar to edge-based representation [Elder 99])<br />P<br />Bezier spline...
Gradient Field<br />Compute the gradient of RGB 3 channels on the edges<br />wx,y = (CL – CR) N<br />P<br />0 0 0 …<br />0...
2. Diffusion<br />I<br />C<br />Sharp color image <br />Compute I from gradient w with color source C as constrain<br />Ap...
3. Reblurring<br />Diffuse the Blur map [Elder 99]  to define blur kernel size with multigrid method<br />Blur each pixel ...
Panning and Zooming<br />Require to solve a global eq. <br />How to pan&zoom without a full Poisson solution at a higher r...
Creating diffusion curves<br />
Creating Diffusion Curves<br />Manual<br />artists can create an image with our tool by sketching the lines of the drawing...
Assisted <br />Extracting color control points along a drawn curve<br />Identify color outliers<br />Sample colors along t...
Original image<br />Stylistic tracing using color sampling (drawing time &lt; 1 min.)<br />Original image<br />Active cont...
Automatic Extraction<br />Original bitmap<br />Automatic reconstruction<br />
1. Data Extraction<br />Structure-preserving manipulation[Orzan et al.,07]<br />Extract edge locations and blur values for...
1. Data Extraction<br />Structure-preserving manipulation[Orzan et al.,07]<br />Extract edge locations and blur values for...
2. Conversion to Diffusion Curve<br />Open source Portraces.w. [Selinger 03]<br />Approximate a pixel chain with a polylin...
Result<br />NvidiaGeForce 8800<br />Realtime performance<br />512 x 512 grid<br />Several thousands curves<br />website<br />
Global Shape Stylization<br />
Low Lifetime<br />
Upcoming SlideShare
Loading in …5
×

study Diffusion Curves: A Vector Representation for Smooth-Shaded Images

1,863 views

Published on

study

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,863
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
40
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

study Diffusion Curves: A Vector Representation for Smooth-Shaded Images

  1. 1. Diffusion Curves: A Vector Representation for Smooth-Shaded Image<br />Alexandrina Orzan<br />AdrienBousseau<br />HolgerWinnem¨oller<br />Pascal Barla<br />Jo¨elleThollot<br />David Salesin3<br />SIGGRAPH08<br />
  2. 2. Abstract<br /><ul><li>Diffusion curve represent smooth shaded image
  3. 3. Manual, assisted or automatic extraction for the diffusion curve
  4. 4. GPU-based multi-grid gradient solution</li></li></ul><li>Outline<br />Introduction<br />Relative Work<br />Diffusion Curves<br />Creating Diffusion Curves<br />Results<br />Discussion & Future Work<br />
  5. 5. Introduction<br />Benefits of vector-based primitives <br />More compact representation, resolution-independence, geometric editability,easity animated, more readily stylized <br />Limited to represent complex color gradients<br />Only support linear or radial gradients<br />Fail in soft shadows, defocus blur, diffuse shading, glossy reflection …<br />
  6. 6. Introduction – cont.<br />Gradient mesh(Adobe Illustrator and Corel CorelDraw)<br />A lattice with colors at each vertex that are linearly interpolated across the mesh<br />Difficult to create meshes<br />Optimized gradient mesh<br />[Sun et al.,SIGGRAPH07]<br />A semi-automatic method for optimizing a manually initialized mesh<br />
  7. 7. Diffusion Curve<br />A curve that diffuses colors on both sides<br />Support traditional freehand drawing<br />Artists sketch lines first as color boundaries<br />Most color variations can be assumed to caused by edges<br />Edges constitute a near-complete and natural primitive for encoding and editing images <br /> [Carlsson 88; Elder 99; Elder and Goldberg 01]<br />
  8. 8. Contribution<br />A prototype allowing manual creation and editing of diffusion curves<br />A full automatic conversion from a bitmap to diffusion curves <br />
  9. 9. Relative work<br />
  10. 10. Gradient Tools<br />Optimized Gradient Meshes<br />[Sun el al. SIGGRAPH07]<br />A manually initialized mesh<br />Sample and estimate color of control points on Ferguson patches<br />Optimize the reconstruct image with constrains – smooth, vector line guided and boundary constrained<br />Initial mesh<br />Optimized mesh<br />reconstructed<br />photographic<br />
  11. 11. Gradient Tools<br />Gradient Brush<br />[McCann & Pollard, SIGGRAPH08]<br />Interactive edge-focused drawing tools on gradient domain G <br />Brush, edge copy, clone<br /> I = G<br />Solve as Poisson Eq. with GPU-based multigridmethod<br />  I = ‧G<br />Gradient brush<br />Edge brush<br />Clone brush<br />
  12. 12. GPU-Based Multigrid Method for Gradient-Domain<br />Multi-grid method<br />Use a coarse version of the domain to efficiently solve for the low frequency components of the solution, <br />Use a fine version of the domain to refine the high frequency components. <br />GPU-based multigrid method<br />[Kazhdan and Hoppe, SIGGRAPH08]<br />[Goodnight et al.,03]<br />[Briggs et al.,00]<br />
  13. 13. Standard Multigrid V-cycle<br /><ul><li>u= F </li></ul>Figure 1 of “Streaming Multigrid for Gradient-Domain Operations on Large Images”, SIGGRAPH 08<br />
  14. 14. Diffusion Curves<br />Diffusion curve<br />Final image <br />
  15. 15. Rendering<br />Diffusion curve<br />Final image <br />Color source (CL, CR)<br />2.Diffuse<br />Sharp color image <br />1. Rasterize sources<br />3. Reblur<br />Wy<br />Wx<br />Blur sources<br />Blur map (B)<br />Smoothness of the transition between Left and Right<br />
  16. 16. 1. Rasterize sources<br />Diffusion curve<br />(similar to edge-based representation [Elder 99])<br />P<br />Bezier spline<br />CR<br />CL<br />Color source - interpolation<br />Σ<br />Blur source - interpolation<br />
  17. 17. Gradient Field<br />Compute the gradient of RGB 3 channels on the edges<br />wx,y = (CL – CR) N<br />P<br />0 0 0 …<br />0 ..<br />….<br />….<br />0 ..<br />0 0 0 ..<br />CR<br />CL<br />N<br />
  18. 18. 2. Diffusion<br />I<br />C<br />Sharp color image <br />Compute I from gradient w with color source C as constrain<br />Apply GPU-based multigrid method<br />Use Jocobi relaxation to solve each level of multigrid<br />Limit the number of relaxation iteration, <br />ex: 512x512 image<br />5i Jacobi iteration per multigrid level<br />i is the level no. (fine  coarse)<br />w = (wx, wy)<br />Solve Poisson equation with color constrain C<br /> I =‧w<br />I(x,y) = C(x,y) <br />where pixel (x,y) store color value<br />
  19. 19. 3. Reblurring<br />Diffuse the Blur map [Elder 99] to define blur kernel size with multigrid method<br />Blur each pixel with the blur kernel defined in blur map<br />Final image <br />Sharp color image <br />B = 0<br />B(x,y) = σ(x,y) <br />if pixel (x,y) is on a curve<br />σ<br />B<br />
  20. 20. Panning and Zooming<br />Require to solve a global eq. <br />How to pan&zoom without a full Poisson solution at a higher resolution ?<br />Compute a low-resolution diffusion on the un-zoomed image domain<br />Use the obtained solution to define Dirichlet boundary conditions around the zooming window<br /> I =‧w<br />I(x,y) = C(x,y)<br />Curves outside the current viewport still influence the viewport’s content !<br />
  21. 21. Creating diffusion curves<br />
  22. 22. Creating Diffusion Curves<br />Manual<br />artists can create an image with our tool by sketching the lines of the drawing and then filling in the color<br />Assisted<br />artists can trace manually over parts of an image and we recover the colors of the underlying content<br />Automatic<br />artists can automatically convert an image into our representation and possibly post-edit it<br />
  23. 23. Assisted <br />Extracting color control points along a drawn curve<br />Identify color outliers<br />Sample colors along the curve at distance d in N<br />Measure σ of the neighborhoodeach sample. Identify outliers where if it deviates too much from mean<br />Fit a polyline to the color points usingDouglasPeucker algorithm<br />Start from the first and the last pt.<br />Repeatedly subdivide the line into smaller segments until the max diff &lt; є<br />The end points of the final polyline yield the color controls points<br />N<br />d<br />working on L*a*b channels<br />
  24. 24. Original image<br />Stylistic tracing using color sampling (drawing time &lt; 1 min.)<br />Original image<br />Active contours and color sampling (drawing time 90 min.)<br />
  25. 25. Automatic Extraction<br />Original bitmap<br />Automatic reconstruction<br />
  26. 26.
  27. 27. 1. Data Extraction<br />Structure-preserving manipulation[Orzan et al.,07]<br />Extract edge locations and blur values for edge pixels after scale space analysis<br />Extract colors at both side of edge<br />
  28. 28. 1. Data Extraction<br />Structure-preserving manipulation[Orzan et al.,07]<br />Extract edge locations and blur values for edge pixels after scale space analysis<br />Extract colors at both edge<br />Connect pixel-chains from the edge map and proceed to sample colors in the original image on both sides of edge<br />Hard to detect the color on blur edges – pick the colors at 3σ<br />
  29. 29. 2. Conversion to Diffusion Curve<br />Open source Portraces.w. [Selinger 03]<br />Approximate a pixel chain with a polyline that has a min. number of segments<br />Least approximation error<br />Transform the polyline into a smooth curve made from end-to-end connected Bezier curve<br />Least square Bezier fitting based on a max. user-specified fitting error and degree of smoothness<br />
  30. 30. Result<br />NvidiaGeForce 8800<br />Realtime performance<br />512 x 512 grid<br />Several thousands curves<br />website<br />
  31. 31. Global Shape Stylization<br />
  32. 32. Low Lifetime<br />
  33. 33. Discussion & Future Work<br />
  34. 34. photograph<br />Manually created gradient mesh. 340 vertices<br />Our drawing – manually tracing, <br />38 diffusion curves, 365 geometric, 176 CL, 156 CR control point<br />
  35. 35. Comparison with Gradient Meshes<br />Representation efficiency<br />D seems more compact. But G has more regular mesh<br />Usability<br />D are more natural drawing tool<br />D requires good understanding of the final combination. The meshes are often overlapping <br />Topology<br />Dis hard to move a part of an image or warp the entire mesh<br />Relevant edges have to be selected<br />Hard to make sure how the colors of outer edges should interact with their new surrounds for D<br />
  36. 36. Future Challenges<br />Layered system<br />Interaction of multi layers (a global Poisson solution)<br />Blending layers with gradual transparency<br />Intersections<br />Curve splitting<br />Color editing<br />Still poor to create texture<br />The colors attached to intersecting curves compete with each other creating a smooth color gradient after diffusion<br />Diffusion curves at intersection can be corrected by curve splitting and color editing<br />
  37. 37. Conclusion<br />Introduce Diffusion Curve as s new image representation<br />Offer most benefit of vector primitives<br />Allow to create highly complex image<br />Compared with gradient mesh<br />Comparable both in quality and coding efficiency<br />Simpler to create<br />Diffusion curves can be capture automatically<br />
  38. 38. END<br />

×