+ All Categories
Home > Documents > A Gentle Introduction to Bilateral Filtering and its Applications

A Gentle Introduction to Bilateral Filtering and its Applications

Date post: 05-Jan-2016
Category:
Upload: vea
View: 36 times
Download: 0 times
Share this document with a friend
Description:
A Gentle Introduction to Bilateral Filtering and its Applications. 07/10: Novel Variants of the Bilateral Filter Jack Tumblin – EECS, Northwestern University. Range. f(x). x. Domain. Review: Bilateral Filter. A 2-D filter window: weights vary with intensity. c. 2 Gaussian Weights: - PowerPoint PPT Presentation
Popular Tags:
51
Transcript
Page 1: A Gentle Introduction to Bilateral Filtering and its Applications
Page 2: A Gentle Introduction to Bilateral Filtering and its Applications

A Gentle Introductionto Bilateral Filteringand its Applications

A Gentle Introductionto Bilateral Filteringand its Applications

07/10: Novel Variantsof the Bilateral Filter

Jack Tumblin – EECS, Northwestern University

Page 3: A Gentle Introduction to Bilateral Filtering and its Applications

Review: Bilateral FilterReview: Bilateral Filter

A 2-D filter window: weights vary with intensityA 2-D filter window: weights vary with intensity

cc

ss

DomainDomain

RangeRange

f(x)f(x)xx

2 Gaussian Weights:2 Gaussian Weights:product = product = ellisoidal footprintellisoidal footprint

Normalize weights toNormalize weights toalways sum to 1.0always sum to 1.0

Page 4: A Gentle Introduction to Bilateral Filtering and its Applications

Review: Bilateral FilterReview: Bilateral Filter

cc

ss

cc

ss

Why it works: graceful segmentationWhy it works: graceful segmentation• Smoothing for ‘similar’ parts Smoothing for ‘similar’ parts ONLYONLY• Range Gaussian Range Gaussian ss acts as a ‘filtered region’ finder acts as a ‘filtered region’ finder DomainDomain

RangeRange

f(x)f(x)xx

Page 5: A Gentle Introduction to Bilateral Filtering and its Applications

Bilateral Filter VariantsBilateral Filter Variants

• before the ‘Bilateral’ name :

– Yaroslavsky (1985): T.D.R.I.M.

– Smith & Brady (1997): SUSAN

And now, a growing set of named variants:

• ‘Trilateral’ Filter (Choudhury et al., EGSR 2003)

• Cross-Bilateral (Petschnigg04, Eisemann04)

• NL-Means (Buades 05)

And more coming: application driven…

Page 6: A Gentle Introduction to Bilateral Filtering and its Applications

Who was first? Many PioneersWho was first? Many Pioneers

• Elegant, Simple, Broad Idea

‘Invented’ several times

• Different Approaches, Increasing Clarity

– Tomasi & Manduchi(1998): ‘Bilateral Filter’

– Smith & Brady (1995): ‘SUSAN’ “Smallest Univalue Segment Assimilating Nucleus”

– Yaroslavsky(1985) ‘Transform Domain Image Restoration Methods’

Page 7: A Gentle Introduction to Bilateral Filtering and its Applications

New Idea!New Idea!1985 Yaroslavsky: 1985 Yaroslavsky:

A 2-D filter window: A 2-D filter window: weights vary with intensity ONLY weights vary with intensity ONLY

cc

ss

DomainDomain

RangeRange

f(x)f(x)xx

Square neighborhood,Square neighborhood,Gaussian WeightedGaussian Weighted‘‘similarity’similarity’

Normalize weights toNormalize weights toalways sum to 1.0always sum to 1.0

Page 8: A Gentle Introduction to Bilateral Filtering and its Applications

New Idea!New Idea!1995 Smith: ‘SUSAN’ Filter1995 Smith: ‘SUSAN’ Filter

A 2-D filter window: weights vary with intensityA 2-D filter window: weights vary with intensity

cc

ss

DomainDomain

RangeRange

f(x)f(x)xx

2 Gaussian Weights:2 Gaussian Weights:product = product = ellisoidal footprintellisoidal footprint

Normalize weights toNormalize weights toalways sum to 1.0always sum to 1.0

Page 9: A Gentle Introduction to Bilateral Filtering and its Applications

Background:Background: ‘Unilateral’ Filter ‘Unilateral’ Filter

e.g. traditional, linear, FIR filterse.g. traditional, linear, FIR filtersKey Idea:Key Idea: ConvolutionConvolution

- Output(x) = local weighted avg. of inputs.- Output(x) = local weighted avg. of inputs.- Weights vary within a ‘window’ of nearby x- Weights vary within a ‘window’ of nearby x

• Smoothes away details, Smoothes away details, BUTBUT blurs result blurs result

ccweight(x)weight(x)

Note that weightsNote that weightsalways sum to 1.0always sum to 1.0

Page 10: A Gentle Introduction to Bilateral Filtering and its Applications

Piecewise smooth result Piecewise smooth result – averages local small details, ignores outliersaverages local small details, ignores outliers– preserves steps, large-scale ramps, and curves,...preserves steps, large-scale ramps, and curves,...

• Equivalent to anisotropic diffusion and robust statisticsEquivalent to anisotropic diffusion and robust statistics [Black98,Elad02,Durand02][Black98,Elad02,Durand02]

• Simple & Fast Simple & Fast (esp. w/ (esp. w/ [Durand02][Durand02] FFT-based speedup) FFT-based speedup)

Bilateral Filter:Bilateral Filter: Strengths Strengths

cc

ss

Page 11: A Gentle Introduction to Bilateral Filtering and its Applications

Output at is Output at is

average of a average of a tiny regiontiny region

Bilateral Filter:Bilateral Filter: 3 Difficulties 3 Difficulties

• Poor Smoothing in Poor Smoothing in High Gradient RegionsHigh Gradient Regions

• Smoothes and bluntsSmoothes and bluntscliffs, valleys & ridgescliffs, valleys & ridges

• Can combine disjoint Can combine disjoint signal regions signal regions

cc

ss

Page 12: A Gentle Introduction to Bilateral Filtering and its Applications

Bilateral Filter:Bilateral Filter: 3 Difficulties 3 Difficulties

• Poor Smoothing in Poor Smoothing in High Gradient RegionsHigh Gradient Regions

• Smoothes and bluntsSmoothes and bluntscliffs, valleys & ridgescliffs, valleys & ridges

• Can combine disjoint Can combine disjoint signal regions signal regions

c

ss

Page 13: A Gentle Introduction to Bilateral Filtering and its Applications

‘‘Blunted Corners’ Blunted Corners’ Weak Halos Weak Halos

Bilateral :Bilateral :

Page 14: A Gentle Introduction to Bilateral Filtering and its Applications

‘‘Blunted Corners’ Blunted Corners’ Weak Halos Weak Halos

‘‘Trilateral’:Trilateral’:

Page 15: A Gentle Introduction to Bilateral Filtering and its Applications

Bilateral Filter:Bilateral Filter: 3 Difficulties 3 Difficulties

• Poor Smoothing in Poor Smoothing in High Gradient RegionsHigh Gradient Regions

• Smoothes and bluntsSmoothes and bluntscliffs, valleys & ridgescliffs, valleys & ridges

• Disjoint regions Disjoint regions can blend together can blend together

c

ss

Page 16: A Gentle Introduction to Bilateral Filtering and its Applications

New Idea!New Idea!Trilateral Filter (Choudhury 2003)Trilateral Filter (Choudhury 2003)

Goal:Goal: Piecewise linear smoothing, not piecewise constantPiecewise linear smoothing, not piecewise constant

Method:Method:Extensions to the Bilateral FilterExtensions to the Bilateral Filter

PositionPosition

IntensityIntensity

EXAMPLE:EXAMPLE: remove noise from a piecewise linear scanline remove noise from a piecewise linear scanline

Page 17: A Gentle Introduction to Bilateral Filtering and its Applications

Outline: BilateralOutline: BilateralTrilateral FilterTrilateral Filter

Three Key Ideas:Three Key Ideas:• TiltTilt the filter window the filter window

according to bilaterally-according to bilaterally-smoothed gradientssmoothed gradients

• LimitLimit the filter window the filter window to connected regions to connected regions of similar smoothed gradient.of similar smoothed gradient.

• AdjustAdjust Parameters Parameters from measurements from measurements of the windowed signalof the windowed signal

ccss

Page 18: A Gentle Introduction to Bilateral Filtering and its Applications

Outline: BilateralOutline: BilateralTrilateral FilterTrilateral Filter

Key Ideas:Key Ideas:• TiltTilt the filter window the filter window

according to bilaterally-according to bilaterally-smoothed gradientssmoothed gradients

• LimitLimit the filter window the filter window to connected regions to connected regions of similar smoothed gradient.of similar smoothed gradient.

• AdjustAdjust Parameters Parameters from measurements from measurements of the windowed signalof the windowed signal

ccss

Page 19: A Gentle Introduction to Bilateral Filtering and its Applications

Outline: BilateralOutline: BilateralTrilateral FilterTrilateral Filter

Key Ideas:Key Ideas:• TiltTilt the filter window the filter window

according to bilaterally-according to bilaterally-smoothed gradientssmoothed gradients

• LimitLimit the filter window the filter window to connected regions to connected regions of similar smoothed gradient.of similar smoothed gradient.

• AdjustAdjust Parameters Parameters from measurements from measurements of the windowed signalof the windowed signal

ccss

Page 20: A Gentle Introduction to Bilateral Filtering and its Applications

Comparisons: Skylight DetailsComparisons: Skylight Details

..

BilateralBilateral

Page 21: A Gentle Introduction to Bilateral Filtering and its Applications

Comparisons: Skylight DetailsComparisons: Skylight Details

..

TrilateralTrilateral

Page 22: A Gentle Introduction to Bilateral Filtering and its Applications

. .

• ,,

Page 23: A Gentle Introduction to Bilateral Filtering and its Applications

Trilateral Filter (Choudhury 2003)Trilateral Filter (Choudhury 2003)

• StrengthsStrengths– Sharpens Sharpens cornerscorners– Smoothes similar Smoothes similar gradientsgradients– Automatic Automatic parameter parameter settingsetting– 3-D 3-D mesh de-noisingmesh de-noising, too!, too!

• WeaknessesWeaknesses– S-L-O-W;S-L-O-W; very costly connected-region finder very costly connected-region finder– Shares Bilateral’s Shares Bilateral’s ‘Single-pixel region’ artifacts‘Single-pixel region’ artifacts– Noise ToleranceNoise Tolerance limits; disrupts ‘tilt’ estimates limits; disrupts ‘tilt’ estimates

Page 24: A Gentle Introduction to Bilateral Filtering and its Applications

NEW IDEA : ‘Joint’ or ‘Cross’ Bilateral’ Petschnigg(2004) and Eisemann(2004)NEW IDEA : ‘Joint’ or ‘Cross’ Bilateral’ Petschnigg(2004) and Eisemann(2004)

Bilateral two kinds of weights

NEW : get them from two kinds of images.

• Smooth image A pixels locally, but

• Limit to ‘similar regions’ of image B

Why do this? To get ‘best of both images’

Page 25: A Gentle Introduction to Bilateral Filtering and its Applications

Ordinary Bilateral FilterOrdinary Bilateral Filter

Bilateral two kinds of weights, one image A :

S

AAAGGW

ABFq

qqpp

p qp ||||||1

][rs

cc

ss

Image A:

DomainDomain

RangeRange

f(x)f(x)xx

Page 26: A Gentle Introduction to Bilateral Filtering and its Applications

‘Joint’ or ‘Cross’ Bilateral Filter‘Joint’ or ‘Cross’ Bilateral Filter

NEW: two kinds of weights, two images

S

ABBGGW

ABFq

qqpp

p qp ||||||1

][rs

cc

ss

A: Noisy, dim(ambient image)

cc

ss

B: Clean,strong (Flash image)

Page 27: A Gentle Introduction to Bilateral Filtering and its Applications

Image A: Warm, shadows, but too Noisy(too dim for a good quick photo)(too dim for a good quick photo)

Image A: Warm, shadows, but too Noisy(too dim for a good quick photo)(too dim for a good quick photo)

No-flash

Page 28: A Gentle Introduction to Bilateral Filtering and its Applications

Image B: Cold, Shadow-free, Clean(flash: simple light, ALMOST no shadows)(flash: simple light, ALMOST no shadows)

Image B: Cold, Shadow-free, Clean(flash: simple light, ALMOST no shadows)(flash: simple light, ALMOST no shadows)

Page 29: A Gentle Introduction to Bilateral Filtering and its Applications

MERGE BEST OF BOTH: apply‘Cross Bilateral’ or ‘Joint Bilateral’

MERGE BEST OF BOTH: apply‘Cross Bilateral’ or ‘Joint Bilateral’

Page 30: A Gentle Introduction to Bilateral Filtering and its Applications

(it really is much better!)(it really is much better!)

Page 31: A Gentle Introduction to Bilateral Filtering and its Applications

Recovers Weak Signals Hidden by NoiseRecovers Weak Signals Hidden by Noise

Noisy but Strong…

Noisy and Weak…

+ Noise =

+ Noise =

Page 32: A Gentle Introduction to Bilateral Filtering and its Applications

Ordinary Bilateral Filter? Ordinary Bilateral Filter?

Noisy but Strong…

Noisy and Weak…

BF

BF

Step feature GONE!!Step feature GONE!!

Page 33: A Gentle Introduction to Bilateral Filtering and its Applications

Ordinary Bilateral Ordinary Bilateral

Noisy but Strong…

Noisy and Weak…

Signal too small to rejectSignal too small to reject

Range filter preserves signalRange filter preserves signal

Page 34: A Gentle Introduction to Bilateral Filtering and its Applications

‘Cross’ or ‘Joint’ Bilateral Idea:‘Cross’ or ‘Joint’ Bilateral Idea:

Noisy but Strong…

Noisy and Weak…

Range filter preserves signalRange filter preserves signal

Use stronger signal’s range Use stronger signal’s range filter weights…filter weights…

Page 35: A Gentle Introduction to Bilateral Filtering and its Applications

‘Joint’ or ‘Cross’ Bilateral FilterPetschnigg(2004) and Eisemann(2004)

‘Joint’ or ‘Cross’ Bilateral FilterPetschnigg(2004) and Eisemann(2004)

• Useful Residues. To transfer details,

– CBF(A,B) to remove A’s noisy details

– CBF(B,A) to remove B’s clean details;

– add to CBF(A,B) – clean, detailed image!

•CBF(A,B): smoothes image A only;(e.g. no flash)

•Limits smoothing to stay within regions where Image B is ~uniform (e.g. flash)

Page 36: A Gentle Introduction to Bilateral Filtering and its Applications

New Idea:NL-Means Filter (Buades 2005)

New Idea:NL-Means Filter (Buades 2005)

• Same goals: ‘Smooth within Similar Regions’

• KEY INSIGHT: Generalize, extend ‘Similarity’

– Bilateral: Averages neighbors with similar intensities;

– NL-Means: Averages neighbors with similar neighborhoods!

Page 37: A Gentle Introduction to Bilateral Filtering and its Applications

NL-Means Method:Buades (2005)NL-Means Method:Buades (2005)

• For each and

every pixel p:

Page 38: A Gentle Introduction to Bilateral Filtering and its Applications

NL-Means Method:Buades (2005)NL-Means Method:Buades (2005)

• For each and

every pixel p:

– Define a small, simple fixed size neighborhood;

Page 39: A Gentle Introduction to Bilateral Filtering and its Applications

NL-Means Method:Buades (2005)NL-Means Method:Buades (2005)

• For each and

every pixel p:

– Define a small, simple fixed size neighborhood;

– Define vector Vp: a list of neighboring pixel values.

Vp = 0.740.320.410.55………

Page 40: A Gentle Introduction to Bilateral Filtering and its Applications

NL-Means Method:Buades (2005)NL-Means Method:Buades (2005)

‘Similar’ pixels p, q

SMALL vector distance;

|| Vp – Vq ||2

p

q

Page 41: A Gentle Introduction to Bilateral Filtering and its Applications

NL-Means Method:Buades (2005)NL-Means Method:Buades (2005)

‘Dissimilar’ pixels p, q

LARGE vector distance;

|| Vp – Vq ||2

pq

q

Page 42: A Gentle Introduction to Bilateral Filtering and its Applications

NL-Means Method:Buades (2005)NL-Means Method:Buades (2005)

‘Dissimilar’ pixels p, q

LARGE vector distance;

Filter with this!

|| Vp – Vq ||2

pq

Page 43: A Gentle Introduction to Bilateral Filtering and its Applications

NL-Means Method:Buades (2005)NL-Means Method:Buades (2005)

p, q neighbors define

a vector distance;

Filter with this:No spatial term!

|| Vp – Vq ||2 pq

S

IVVGGW

INLMFq

qqpp

p qp 2||||||||1

][rs

Page 44: A Gentle Introduction to Bilateral Filtering and its Applications

NL-Means Method:Buades (2005)NL-Means Method:Buades (2005)

pixels p, q neighborsSet a vector distance;

Vector Distance to p sets weight for each pixel q

|| Vp – Vq ||2 pq

S

IVVGW

INLMFq

qqpp

p2||||

1][

r

Page 45: A Gentle Introduction to Bilateral Filtering and its Applications

NL-Means Filter (Buades 2005)NL-Means Filter (Buades 2005)

• Noisysourceimage:

Page 46: A Gentle Introduction to Bilateral Filtering and its Applications

NL-Means Filter (Buades 2005)NL-Means Filter (Buades 2005)

• GaussianFilter

Low noise,

Low detail

Page 47: A Gentle Introduction to Bilateral Filtering and its Applications

NL-Means Filter (Buades 2005)NL-Means Filter (Buades 2005)

• AnisotropicDiffusion

(Note ‘stairsteps’:~ piecewiseconstant)

Page 48: A Gentle Introduction to Bilateral Filtering and its Applications

NL-Means Filter (Buades 2005)NL-Means Filter (Buades 2005)

• BilateralFilter

(better, butsimilar‘stairsteps’:

Page 49: A Gentle Introduction to Bilateral Filtering and its Applications

NL-Means Filter (Buades 2005)NL-Means Filter (Buades 2005)

• NL-Means:

Sharp,

Low noise,

Few artifacts.

Page 50: A Gentle Introduction to Bilateral Filtering and its Applications

Many More Possibilities: EXPERIMENT!Many More Possibilities: EXPERIMENT!

• Bilateral goals are subjective;

‘Local smoothing within similar regions’‘Edge-preserving smoothing’‘Separate large structure & fine detail’‘Eliminate outliers’‘Filter within edges, not across them’

• It’s simplicity invites new inventive answers.

Page 51: A Gentle Introduction to Bilateral Filtering and its Applications

Recommended