gaussian kd-tree for fast high-dimensional filtering

48
Gaussian KD-Tree for Fast High-Dimensional Filtering A. Adams, N. Gelfand, J. Dolson, and M. Levoy, Stanford University, SIGGRAPH 2009.

Upload: jalena

Post on 24-Feb-2016

64 views

Category:

Documents


0 download

DESCRIPTION

Gaussian KD-Tree for Fast High-Dimensional Filtering. A. Adams, N. Gelfand , J. Dolson , and M. Levoy , Stanford University, SIGGRAPH 2009. Edge-Preserving Filtering. Noise Suppression . Detail Enhancement . High Dynamic Range Imaging . - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Gaussian KD-Tree for Fast High-Dimensional Filtering

A. Adams, N. Gelfand, J. Dolson, and M. Levoy, Stanford University,

SIGGRAPH 2009.

Page 2: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Edge-Preserving Filtering

Noise Suppression

Detail Enhancement

High Dynamic Range Imaging

Page 3: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Edge-Preserving Filtering for Image Analysis

Input Image

Base Image Detail Image

Page 4: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Edge-Preserving Vs. Edge-Blurring

Input Image

Edge-Preserving Base Image Edge-Blurring Base Image

Page 5: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Edge-Preserving Vs. Edge-Blurring

Edge-Preserving Enhanced Image Edge-Blurring Enhanced Image

Halo Artifacts

Page 6: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Gaussian Filtering

i

ii

i

i

i

yx

p

ipiviv

pixel ofposition : pixel of ueoutput val :ˆ pixel of ueintput val :

Page 7: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Gaussian Filtering

i

ii

i

i

i

yx

p

ipiviv

pixel ofposition : pixel of ueoutput val :ˆ pixel of ueintput val :

Page 8: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Bilateral Filtering

i

iii

i

i

yx

pip

iviv

, pixel ofposition :

pixel of ueoutput val :ˆ pixel of ueintput val :

Output InputSpace Weight Range Weight

Space Weight Range Weight

x

y

Intensity

Page 9: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Bilateral Filtering

i

iii

i

i

yx

pip

iviv

, pixel ofposition :

pixel of ueoutput val :ˆ pixel of ueintput val :

Output InputBilateral Weight

Space Weight Range Weight

x

y

Intensity

Page 10: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Bilateral Filtering

Input Image Gaussian: σp = 12

Bilateral: σp = 12, σc = 0.15

Page 11: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Computational Complexity of Bilateral Filtering

• O(n2d)– Image Size: n– Maximum Filter Size: n– Dimension: d

• High Computational Complexity

Input

x

y

Intensity

Page 12: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Novel Methods

• Bilateral Grid– J. Chen, S. Paris, and F. Durand, “Real-time

edgeaware image processing with the bilateral grid,” ACM Transactions on Graphics (Proc. SIGGRAPH 07).

• Gaussian KD-Tree– A. Adams, N. Gelfand, J. Dolson, and M. Levoy,

“Gaussian KD-Trees for Fast High-Dimensional Filtering,” ACM Transactions on Graphics (Proc. SIGGRAPH 09).

Page 13: Gaussian KD-Tree for  Fast High-Dimensional Filtering

High-Dimensional Filtering

x

y

Intensity

Page 14: Gaussian KD-Tree for  Fast High-Dimensional Filtering

A Two-Dimensional Example

x

ISpaceRange

Signal Kernel

x

IOutput Signal

Kernel

Gaussian Filtering

x

ISpace

Signal Output Signal

Bilateral Filtering

Large Kernel Size High Computational Complexity!

Page 15: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Bilateral Grid Downsampling

x

I

Signal

Bilateral Grid

x

I

Signal

Spatial Grid

Traditional Spatial Downsampling

x

I

Signal

Bilateral Grid

Bilateral Grid Downsamplingx

I Bilateral GridKernel

Page 16: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Bilateral Filter on the Bilateral GridImage scanline

space

inte

nsityBilateral

Grid

Page 17: Gaussian KD-Tree for  Fast High-Dimensional Filtering

space

inte

nsity

Bilateral Filter on the Bilateral GridImage scanline

Filtered scanline

Slice: query gridwith input image

BilateralGrid

Gaussian blur grid values

space

inte

nsity

Page 18: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Bilateral Filtering for Color Image

Bilateral Filtering Based on Luminance Bilateral Filtering Based on Color

Page 19: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Bilateral Grid for Color Image

Tiiiiii

i

i

i

bgryxp

ipiviv

pixel ofposition : pixel of ueoutput val :ˆ pixel of ueintput val :

Image

High-Dimensional Grid (5d grid)

High Memory Usage Cost

Page 20: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Gaussian KD-Tree

• Low Computational Complexity• Low Memory Usage

Page 21: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Gaussian KD-Tree

• Building The Tree• Querying The Tree

Page 22: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Building The Tree

Space

Intensity

Bounding Box

Longest Dimension, η1d

η1min η1

max

η1cut

η1

Gaussian KD-Tree

Page 23: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Building The Tree

Space

Intensity

η2d

η2min η2

max

η2cut

η1

Gaussian KD-Tree

η2

η2

Page 24: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Building The Tree

Space

Intensity

η3d

η3min

η3max

η3cut

η1

Gaussian KD-Tree

η2

η3

η3

Page 25: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Building The Tree

Space

Intensity

η4d

η4min η4

max

η4cut

η1

Gaussian KD-Tree

η2

η4

η3

η4

Page 26: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Building The Tree

Space

Intensity

Inner Node• Cutting Dimension• Min, Max Bound• Left, Right Child

η1

Gaussian KD-Tree

η2 η3

η4

……………….

Page 27: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Building The Tree

Space

Intensity

Leaf Node• Position

Page 28: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Querying The Tree

η1

Gaussian KD-Tree

η2 η3

η4

……………….

High-Dimensional Space

Image Pixel Querying

Page 29: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Querying The Tree

Gaussian KD Tree

Inner Node

Leaf Node

Image Pixel

Different Weighting to Leaf Nodes

Page 30: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Splatting

Page 31: Gaussian KD-Tree for  Fast High-Dimensional Filtering

1-D Example of Splatting

SpaceQuerying Position

Space

Querying Position

ηcut

Sample Distribution

ηcut

SplattingSplatting

Page 32: Gaussian KD-Tree for  Fast High-Dimensional Filtering

1-D Example of Splatting

SpaceQuerying Position

Space

Querying Position

ηcut

Sample Distribution

ηcut

SplattingSplatting

Page 33: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Correcting Weights for Splatting

q

pi

Page 34: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Querying The Tree

Gaussian KD Tree

Inner Node

Leaf Node

Image Pixel

Sample Splitting to Leaf Nodes

Samples

Page 35: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Blurring The Leaf Nodes

Page 36: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Slicing

Page 37: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Summary

x

y

r,g,b

Input Image

Gaussian KD Tree

High-Dimensional Space

Resolution Reduction

• Monte-Carlo Sampling• Weighted Importance Sampling

Page 38: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Applications

• Bilateral Filtering

Naïve Bilateral Filtering 5-D Bilateral Grid

Page 39: Gaussian KD-Tree for  Fast High-Dimensional Filtering

3-D Bilateral GridKD-Tree

Page 40: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Complexity and Performance Analysis

Filter Size

Large

Small

5D Grid

Gaussian KD-Tree

Naïve

Page 41: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Applications

• Non-local Mean Filtering

Input Image Output Image

Page 42: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Non-local Mean Filtering

Target Patch

Searching Patches

…..

ii

i

i

pipiviv

pixel ofposition : pixel of ueoutput val :ˆ pixel of ueintput val :

Patch

Page 43: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Non-local Mean Filtering with PCA

Patch Examples 16 Leading Eigenvectors

http://www.ceremade.dauphine.fr/~peyre/numerical-tour/tours/denoising_nl_means/

Page 44: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Non-local Mean Filtering

Target Patch

Searching Patches

…..

ii

i

i

pipiviv

pixel ofposition : pixel of ueoutput val :ˆ pixel of ueintput val :

Patch

High-Dimensional Space

Page 45: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Non-local Mean Filtering with Gaussian KD-Tree

Gaussian KD Tree

Inner Node

Leaf Node

Image Pixel

Different Weighting to Leaf Nodes

High-Dimensional Space

Page 46: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Applications

• Non-local Mean Filtering

Input Image Output Image

Page 47: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Applications

• Geometry Filtering

Input Model Output Model with Gaussian Filtering

Output Model with Non-local Mean

Page 48: Gaussian KD-Tree for  Fast High-Dimensional Filtering

Conclusions

• Novel methods of non-linear filter.– Bilateral grid and Gaussian kd-tree

• High-dimensional non-linear filter.– Edge preserving smoothing

• Computational Complexity Reduction– Importance sampling