Presentation is loading. Please wait.

Presentation is loading. Please wait.

Accelerating Spatially Varying Gaussian Filters Jongmin Baek and David E. Jacobs Stanford University.

Similar presentations


Presentation on theme: "Accelerating Spatially Varying Gaussian Filters Jongmin Baek and David E. Jacobs Stanford University."— Presentation transcript:

1

2 Accelerating Spatially Varying Gaussian Filters Jongmin Baek and David E. Jacobs Stanford University

3 Motivation Input Gaussian Filter Spatially Varying Gaussian Filter

4 1) Accelerating Spatially Varying Gaussian Filters 2) Accelerating Spatially Varying Gaussian Filters 3) Accelerating Spatially Varying Gaussian Filters 4) Applications Roadmap

5 Gaussian Filters Position Value

6 Gaussian Filters Each output value …

7 Gaussian Filters … is a weighted sum of input values …

8 Gaussian Filters … whose weight is a Gaussian …

9 Gaussian Filters … in the space of the associated positions.

10 Gaussian Blur Gaussian Filters: Uses

11 Bilateral Filter Gaussian Filters: Uses

12 Non-local Means Filter Gaussian Filters: Uses

13 Applications  Denoising images and meshes  Data fusion and upsampling  Abstraction / Stylization  Tone-mapping ... Gaussian Filters: Summary Previous work on fast Gaussian Filters  Bilateral Grid (Chen, Paris, Durand; 2007)  Gaussian KD-Tree (Adams et al.; 2009)  Permutohedral Lattice (Adams, Baek, Davis; 2010)

14 Summary of Previous Implementations:  A separable blur flanked by resampling operations.  Exploit the separability of the Gaussian kernel. Gaussian Filters: Implementations

15 Spatially Varying Gaussian Filters Spatially varying covariance matrix Spatially Invariant

16 Trilateral Filter (Choudhury and Tumblin, 2003)  Tilt the kernel of a bilateral filter along the image gradient.  “Piecewise linear” instead of “Piecewise constant” model. Spatial Variance in Previous Work

17 Spatially Varying Gaussian Filters: Tradeoff Benefits:  Can adapt the kernel spatially.  Better filtering performance. Cost:  No longer separable.  No existing acceleration schemes. Input Bilateral-filtered Trilateral-filtered

18 Problem:  Spatially varying (thus non-separable) Gaussian filter Existing Tool:  Fast algorithms for spatially invariant Gaussian filters Solution:  Re-formulate the problem to fit the tool.  Need to obey the “piecewise-constant” assumption Acceleration

19 Naïve Approach (Toy Example) I LOST THE GAME Input Signal Desired Kernel filtered w/ 1 filtered w/ 2 filtered w/ 3 filtered w/ Output Signal 4

20 In practice, the # of kernels can be very large. Challenge #1 Pixel Location x Desired Kernel K(x) Range of Kernels needed

21 Sample a few kernels and interpolate. Solution #1 Desired Kernel K(x) Sampled kernels Interpolate result! Pixel Location x K1K1 K2K2 K3K3

22 Interpolation needs an extra assumption to work:  The covariance matrix Ʃ i is either piecewise- constant, or smoothly varying.  Kernel is spatially varying, but locally spatially invariant. Assumptions

23 Runtime scales with the # of sampled kernels. Challenge #2 Desired Kernel K(x) Filter only some regions of the image with each kernel. (“support”) Pixel Location x Sampled kernels K1K1 K2K2 K3K3

24 In this example, x needs to be in the support of K 1 & K 2. Defining the Support Desired Kernel K(x) Pixel Location x K1K1 K2K2 K3K3

25 Dilating the Support Desired Kernel K(x) Pixel Location x K1K1 K2K2 K3K3

26 Algorithm 1) Identify kernels to sample. 2) For each kernel, compute the support needed. 3) Dilate each support. 4) Filter each dilated support with its kernel. 5) Interpolate from the filtered results.

27 Algorithm 1) Identify kernels to sample. 2) For each kernel, compute the support needed. 3) Dilate each support. 4) Filter each dilated support with its kernel. 5) Interpolate from the filtered results. K1K1 K2K2 K3K3

28 Algorithm 1) Identify kernels to sample. 2) For each kernel, compute the support needed. 3) Dilate each support. 4) Filter each dilated support with its kernel. 5) Interpolate from the filtered results. K1K1 K2K2 K3K3

29 Algorithm 1) Identify kernels to sample. 2) For each kernel, compute the support needed. 3) Dilate each support. 4) Filter each dilated support with its kernel. 5) Interpolate from the filtered results. K1K1 K2K2 K3K3

30 Algorithm 1) Identify kernels to sample. 2) For each kernel, compute the support needed. 3) Dilate each support. 4) Filter each dilated support with its kernel. 5) Interpolate from the filtered results. K1K1 K2K2 K3K3

31 Algorithm 1) Identify kernels to sample. 2) For each kernel, compute the support needed. 3) Dilate each support. 4) Filter each dilated support with its kernel. 5) Interpolate from the filtered results. K1K1 K2K2 K3K3

32 Applications  HDR Tone-mapping  Joint Range Data Upsampling

33 Application #1: HDR Tone-mapping Input HDR Detail Base Filter Output Attenuate

34 Tone-mapping Example Bilateral Filter Kernel Sampling

35 Application #2: Joint Range Data Upsampling Range Finder Data  Sparse  Unstructured  Noisy Scene Image Output Filter

36 Synthetic Example Scene Image Ground Truth Depth

37 Synthetic Example Scene ImageSimulated Sensor Data

38 Synthetic Example : Result Kernel Sampling Bilateral Filter

39 Synthetic Example : Relative Error Bilateral Filter Kernel Sampling 2.41% Mean Relative Error0.95% Mean Relative Error

40 Real-World Example Scene Image Range Finder Data *Dataset courtesy of Jennifer Dolson, Stanford University

41 Real-World Example: Result Input Bilateral Naive Kernel Sampling

42 Performance Kernel Sampling Choudhury and Tumblin (2003) Naïve Tonemap s41.54 s s Tonemap s88.08 s s Kernel Sampling (No segmentation) Depth s57.90 s Depth s s

43 1.A generalization of Gaussian filters Spatially varying kernels Lose the piecewise-constant assumption. 2.Acceleration via Kernel Sampling Filter only necessary pixels (and their support) and interpolate. 3.Applications Conclusion


Download ppt "Accelerating Spatially Varying Gaussian Filters Jongmin Baek and David E. Jacobs Stanford University."

Similar presentations


Ads by Google