Lecture 10: Pyramids and Scale Space •G*(G*f) = (G*G)*f …rtc12/CSE486/lecture10_6pp.pdf ·...

5
1 CSE486 Robert Collins Lecture 10: Pyramids and Scale Space CSE486 Robert Collins Recall Cascaded Gaussians – Repeated convolution by a smaller Gaussian to simulate effects of a larger one. G*(G*f) = (G*G)*f [associativity] CSE486 Robert Collins Example: Cascaded Convolutions [1 1] * [1 1] --> [1 2 1] [1 1] * [1 2 1] --> [1 3 3 1] [1 1] * [1 3 3 1] --> [1 4 6 4 1] ..and so on… 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 and so on… Pascal’s Triangle CSE486 Robert Collins Aside: Binomial Approximation 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 and so on… Pascal’s Triangle Binomial Coefficients CSE486 Robert Collins Aside: Binomial Approximation Look at odd-length rows of Pascal’s triangle: 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 and so on… [1 2 1]/4 - approximates Gaussian with sigma=1/sqrt(2) [1 4 6 4 1]/16 - approximates Gaussian with sigma=1 An easy way to generate integer-coefficient Gaussian approximations. CSE486 Robert Collins From Homework 2

Transcript of Lecture 10: Pyramids and Scale Space •G*(G*f) = (G*G)*f …rtc12/CSE486/lecture10_6pp.pdf ·...

  • 1

    CSE486Robert Collins

    Lecture 10:Pyramids and Scale Space

    CSE486Robert Collins

    Recall

    • Cascaded Gaussians– Repeated convolution by a smaller Gaussian

    to simulate effects of a larger one.

    • G*(G*f) = (G*G)*f [associativity]

    CSE486Robert Collins

    Example: Cascaded Convolutions

    [1 1] * [1 1] --> [1 2 1][1 1] * [1 2 1] --> [1 3 3 1][1 1] * [1 3 3 1] --> [1 4 6 4 1]..and so on…

    1 11 2 1

    1 3 3 11 4 6 4 1

    1 5 10 10 5 1and so on…

    Pascal’s Triangle

    CSE486Robert Collins

    Aside: Binomial Approximation

    1 11 2 1

    1 3 3 11 4 6 4 1

    1 5 10 10 5 1and so on…

    Pascal’s Triangle

    BinomialCoefficients

    CSE486Robert Collins

    Aside: Binomial Approximation

    Look at odd-length rows of Pascal’s triangle:

    1 11 2 1

    1 3 3 11 4 6 4 1

    1 5 10 10 5 1and so on…

    [1 2 1]/4 - approximatesGaussian with sigma=1/sqrt(2)

    [1 4 6 4 1]/16 - approximatesGaussian with sigma=1

    An easy way to generate integer-coefficientGaussian approximations.

    CSE486Robert Collins

    From Homework 2

  • 2

    CSE486Robert Collins

    More about Cascaded Convolutions

    Fun facts:The distribution of the sum of two random variablesX + Y is the convolution of their two distributions

    Given N i.i.d. random variables, X1 … XN, the distributionof their sum approaches a Gaussian distribution (aka thecentral limit theorem)

    Therefore:The repeated convolution of a (nonnegative)filter with itself takes on a Gaussian shape.

    (for the mathematically inclined)

    CSE486Robert Collins Gaussian Smoothing at

    Different Scales

    original sigma = 1

    CSE486Robert Collins

    original sigma = 3

    Gaussian Smoothing atDifferent Scales

    CSE486Robert Collins Gaussian Smoothing at

    Different Scales

    original sigma = 10

    CSE486Robert Collins Idea for Today:

    Form a Multi-Resolution Representation

    original

    sigma = 10

    sigma = 3

    sigma = 1

    CSE486Robert Collins

    Pyramid Representations

    Because a large amount of smoothing limitsthe frequency of features in the image, we donot need to keep all the pixels around!

    Strategy: progressively reduce the number ofpixels as we smooth more and more.

    Leads to a “pyramid” representation if wesubsample at each level.

  • 3

    CSE486Robert Collins

    Gaussian Pyramid

    • Synthesis: Smooth image with a Gaussian anddownsample. Repeat.

    • Gaussian is used because it is self-reproducing(enables incremental smoothing).

    • Top levels come “for free”. Processing costtypically dominated by two lowest levels(highest resolution).

    CSE486Robert Collins

    Gaussian Pyramid

    High res

    Low

    res

    CSE486Robert Collins Emphasis: Smaller Images

    have Lower ResolutionCSE486Robert Collins

    Generating a Gaussian Pyramid

    Basic Functions:Blur (convolve with Gaussian to smooth image)

    DownSample (reduce image size by half)

    Upsample (double image size)

    CSE486Robert Collins

    Generating a Gaussian Pyramid

    Basic Functions:Blur (convolve with Gaussian to smooth image)

    DownSample (reduce image size by half)

    Upsample (double image size)

    CSE486Robert Collins

    Downsample

    By the way: Subsampling is a bad idea unless you have previously blurred/smoothed the image! (because it leads to aliasing)

  • 4

    CSE486Robert Collins

    To Elaborate: Thumbnails

    original image262x195

    downsampled (left)vs. smoothed then

    downsampled (right)

    131x97

    65x48

    32x24

    CSE486Robert Collins

    To Elaborate: Thumbnails

    original image262x195

    131x97

    downsampled (left)vs. smoothed then

    downsampled (right)

    CSE486Robert Collins

    To Elaborate: Thumbnails

    original image262x195

    downsampled (left)vs. smoothed then

    downsampled (right)

    65x48

    CSE486Robert Collins

    To Elaborate: Thumbnails

    original image262x195

    downsampled (left)vs. smoothed then

    downsampled (right)

    32x24

    CSE486Robert Collins

    Upsample

    How to fill in the empty values?Interpolation:• initially set empty pixels to zero• convolve upsampled image with Gaussian filter! e.g. 5x5 kernel with sigma = 1.• Must also multiply by 4. Explain why.

    CSE486Robert Collins

    Specific ExampleFrom Crowley et.al., “Fast Computation of Characteristic Scale using a Half-Octave Pyramid.” Proc International Workshop on Cognitive Vision (CogVis), Zurich, Switzerland, 2002.

    General idea: cascaded filtering using [1 4 6 4 1] kernel to generate a pyramid with two images per octave (power of 2 change in resolution). When we reach a full octave, downsample the image.

    blur blur

    blur blur

    downsample

  • 5

    CSE486Robert Collins

    Effective Sigma at Each Level

    Crowley etal.

    CSE486Robert Collins

    Effective Sigma at Each Level

    CAN YOUEXPLAIN HOWTHESE VALUESARISE?

    CSE486Robert Collins

    Basic idea: different scales are appropriate for describing differentobjects in the image, and we may not know the correct scale/sizeahead of time.

    Concept: Scale Space CSE486Robert Collins Example: Detecting “Blobs” at

    Different Scales.

    But first, we have to talkabout detecting blobsat one scale...

    CSE486Robert Collins