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

Uploaded on



More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


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