Jongmin Baek and David E Jacobs Stanford University Motivation Input Gaussian Filter Spatially Varying Gaussian Filter Accelerating Spatially Varying Gaussian Filters Accelerating ID: 399003
Download Presentation The PPT/PDF document "Accelerating Spatially Varying Gaussian ..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1Slide2
Accelerating Spatially Varying Gaussian Filters
Jongmin Baek and David E. Jacobs
Stanford UniversitySlide3
Motivation
Input
Gaussian
Filter
Spatially
Varying
Gaussian
FilterSlide4
Accelerating Spatially Varying
Gaussian Filters Accelerating
Spatially Varying Gaussian Filters
Accelerating
Spatially Varying Gaussian Filters
Applications
RoadmapSlide5
Gaussian Filters
Given
pairs as input,
Position
ValueSlide6
Gaussian Filters
Each output value …
Slide7
Gaussian Filters
… is a weighted
sum of input values …
Slide8
Gaussian Filters
… whose weight is a
Gaussian …
Slide9
Gaussian Filters
… in the space of the associated positions.
Slide10
Gaussian Blur
Gaussian Filters: Uses
Slide11
Bilateral Filter
Gaussian Filters: Uses
Slide12
Non-local Means Filter
Gaussian Filters: Uses
Slide13
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) Slide14
Summary of Previous Implementations:
A
separable blur flanked by resampling
operations.
Exploit
the
separability
of the Gaussian kernel.
Gaussian Filters: ImplementationsSlide15
Spatially Varying Gaussian Filters
Spatially varying covariance matrix
Spatially InvariantSlide16
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 WorkSlide17
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-filteredSlide18
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
AccelerationSlide19
Na
ïve Approach (Toy Example)
I LOST THE GAME
Input Signal
Desired Kernel
1
1
1
2
3
4
filtered w/
1
filtered w/
2
filtered w/
3
filtered w/
4
1
1
1
2
3
Output Signal
4Slide20
In
practice, the # of kernels can be very large.
Challenge #1
Pixel Location
x
Desired Kernel
K(x)
Range of
Kernels neededSlide21
Sample
a few kernels and interpolate.
Solution #1
Desired Kernel
K(x)
Sampled
kernels
Interpolate result!
Pixel Location
x
K
1
K
2
K
3Slide22
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
.
AssumptionsSlide23
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
K
1
K
2
K
3Slide24
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
K
1
K
2
K
3Slide25
Dilating the Support
Desired Kernel
K(x)
Pixel Location
x
K
1
K
2
K
3Slide26
Algorithm
Identify kernels to sample.
For each kernel, compute the support needed.
Dilate each support.
Filter each dilated support with its kernel.
Interpolate from the filtered results.Slide27
Algorithm
Identify kernels to sample.
For each kernel, compute the support needed.
Dilate each support.
Filter each dilated support with its kernel.
Interpolate from the filtered results.
K
1
K
2
K
3Slide28
Algorithm
Identify kernels to sample.
For each kernel, compute the support needed.
Dilate each support.
Filter each dilated support with its kernel.
Interpolate from the filtered results.
K
1
K
2
K
3Slide29
Algorithm
Identify kernels to sample.
For each kernel, compute the support needed.
Dilate each support.
Filter each dilated support with its kernel.
Interpolate from the filtered results.
K
1
K
2
K
3Slide30
Algorithm
Identify kernels to sample.
For each kernel, compute the support needed.
Dilate each support.
Filter each dilated support with its kernel.
Interpolate from the filtered results.
K
1
K
2
K
3Slide31
Algorithm
Identify kernels to sample.
For each kernel, compute the support needed.
Dilate each support.
Filter each dilated support with its kernel.
Interpolate from the filtered results.
K
1
K
2
K
3Slide32
Applications
HDR Tone-mapping
Joint Range Data
UpsamplingSlide33
Application #1: HDR Tone-mapping
Input HDR
Detail
Base
Filter
Output
AttenuateSlide34
Tone-mapping
Example
Bilateral Filter
Kernel SamplingSlide35
Application #2:
Joint Range Data Upsampling
Range Finder Data
Sparse
Unstructured
Noisy
Scene Image
Output
FilterSlide36
Synthetic Example
Scene Image
Ground Truth DepthSlide37
Synthetic Example
Scene Image
Simulated Sensor DataSlide38
Synthetic Example : Result
Kernel Sampling
Bilateral FilterSlide39
Synthetic Example : Relative Error
Bilateral Filter
Kernel Sampling
2.41% Mean Relative Error
0.95% Mean Relative ErrorSlide40
Real-World Example
Scene Image
Range Finder Data
*Dataset courtesy of Jennifer Dolson, Stanford UniversitySlide41
Real-World Example: Result
Input
Bilateral
Naive
Kernel
SamplingSlide42
Performance
Kernel Sampling
Choudhury
and
Tumblin
(2003)
Naïve
Tonemap1
5.10 s
41.54 s
312.70 s
Tonemap2
6.30 s
88.08 s
528.99
s
Kernel Sampling
Kernel Sampling
(No segmentation)
Depth1
3.71 s
57.90 s
Depth2
9.18 s
131.68 sSlide43
A generalization of Gaussian filters
Spatially varying kernels
Lose the piecewise-constant assumption.
Acceleration via Kernel Sampling
Filter only necessary pixels (and their support) and interpolate.
Applications
Conclusion