+ All Categories
Home > Documents > Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision...

Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision...

Date post: 25-May-2020
Category:
Upload: others
View: 22 times
Download: 0 times
Share this document with a friend
26
Correlation, Convolution, Filtering COMPSCI 527 — Computer Vision COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 1 / 26
Transcript
Page 1: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Correlation, Convolution, Filtering

COMPSCI 527 — Computer Vision

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 1 / 26

Page 2: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Outline

1 Template Matching and Correlation

2 Image Convolution

3 Filters

4 Separable Convolution

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 2 / 26

Page 3: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Template Matching and Correlation

Template Matching

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 3 / 26

Page 4: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Template Matching and Correlation

Normalized Cross-Correlationρ(r , c) = τ Tω(r , c)

τ =t−mt

‖t−mt‖and ω(r , c) =

w(r , c)−mw(r ,c)

‖w(r , c)−mw(r ,c)‖

−1 ≤ ρ(r , c) ≤ 1

ρ = 1 ⇔ W (r , c) = αT + β , α > 0ρ = −1 ⇔ W (r , c) = αT + β , α < 0

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 4 / 26

Page 5: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Template Matching and Correlation

Results

A numpy warning: Slices are views, not copies

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 5 / 26

Page 6: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Template Matching and Correlation

Cross-Correlation

(without normalization)

j(r , c) = tT w(r , c)

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 6 / 26

Page 7: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Template Matching and Correlation

Code, Math

for r = 1:mfor c = 1:n

J(r, c) = 0for u = -h:h

for v = -h:hJ(r, c) = J(r, c) + T(u, v) * I(r+u, c+v)

endend

endend

J(r , c) =h∑

u=−h

h∑v=−h

I(r + u, c + v)T (u, v)

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 7 / 26

Page 8: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Image Convolution

ConvolutionCorrelation:

J(r , c) =h∑

u=−h

h∑v=−h

I(r + u, c + v)T (u, v)

Convolution:

J(r , c) =h∑

u=−h

h∑v=−h

I(r−u, c−v)H(u, v)

Same as

J(r , c) =h∑

u=−h

h∑v=−h

I(r+u, c+v)H(−u,−v)

Convolution with H(u, v) is correlation with H(−u,−v)COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 8 / 26

Page 9: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Image Convolution

What’s the Big Deal?

Simplify J(r , c) =h∑

u=−h

h∑v=−h

I(r − u, c − v)H(u, v)

to J(r , c) =∞∑

u=−∞

∞∑v=−∞

I(r − u, c − v)H(u, v)

Changes of variables u ← r − u and v ← c − v

J(r , c) =∞∑

u=−∞

∞∑v=−∞

H(r − u, c − v)I(u, v)

Convolution commutes: I ∗ H = H ∗ I(Correlation does not)

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 9 / 26

Page 10: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Image Convolution

Importance of Convolution in Mathematics• Polynomials: coefficients of product are “full” convolutions

of coefficients:P(x) = p0 + p1x + . . .+ pmxm

Q(x) = q0 + q1x + . . .+ qnxn

R(x) = p0q0 + (p0q1 + p1q0)x + . . .+ pmqnxm+n

• Example:P(x) = p0 + p1x + p2x2 + p3x3 → (p0,p1,p2,p3)

Q(x) = q0 + q1x + q2x2 → (q0,q1,q2)

Convolve (p0,p1,p2,p3) with (q0,q1,q2) to get (r0, r1, r2, r3, r4, r5)

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 10 / 26

Page 11: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Image Convolution

Important Consequence

• Discrete Fourier transform is a polynomial:p = (p0, . . . ,pn−1)

• F [p](`) = p0 + p1z + . . .+ pn−1zn−1 where z = 1ne−i2π`/n

• All of spectral signal theory follows• Example: The Fourier transform of a convolution is the

product of the Fourier transforms• [We will not see this]

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 11 / 26

Page 12: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Image Convolution

Point-Spread Function

T was a templateH is called a (convolutional) kernelA.k.a. point-spread functionIf the image I is a point, then H spreads the point:

δ(u, v) ={

1 for u = v = 00 elsewhere

J(r , c) =∞∑

u=−∞

∞∑v=−∞

H(r − u, c − v)δ(u, v) = H(r , c)

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 12 / 26

Page 13: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Image Convolution

More Generally:

δa,b(u, v) ={

1 for u = a and v = b0 elsewhere

J(r , c) =∞∑

u=−∞

∞∑v=−∞

H(r − u, c − v)δa,b(u, v) = H(r − a, c − b)

(No flip in the output!)

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 13 / 26

Page 14: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Image Convolution

Image Boundaries: “Valid” Convolution

If I is m×n and H is k × `, then J is (m− k +1)× (n− `+1)

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 14 / 26

Page 15: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Image Convolution

Image Boundaries: “Full” Convolution

If I is m × n and H is k × `, then J is (m+k−1)× (n+`−1)[Pad with either zeros or copies of boundary pixels]

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 15 / 26

Page 16: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Image Convolution

Image Boundaries: “Same” Convolution

If I is m × n and H is k × `, then J is m × n

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 16 / 26

Page 17: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Filters

Filters

• What is convolution for?• Smoothing for noise reduction• Image differentiation• Convolutional Neural Networks (CNNs)• . . .

• We’ll see the first two next, CNNs later• Smoothing and differentiation are examples of filtering:

Local, linear image→ image transformations

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17 / 26

Page 18: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Filters

Smoothing for Noise Reduction

• Assume: Image varies slowly enough to be locally linear• Assume: Noise is zero-mean and white

xx x

x

xx

x

x x xx

xx

xx

x x

x xx

xx x

xx

1/5

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 18 / 26

Page 19: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Filters

2 Dimensions: The Pillbox Kernel

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 19 / 26

Page 20: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Filters

Issues with the Pillbox

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 20 / 26

Page 21: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Filters

The Gaussian Kernel

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 21 / 26

Page 22: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Filters

Gaussian versus Pillbox

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 22 / 26

Page 23: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Filters

Truncation

G(u, v) = e−12

u2+v2

σ2

• The larger σ, the more smoothing• u, v integer, and cannot keep them all• Truncate at 3σ or so

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 23 / 26

Page 24: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Filters

Normalization

G(u, v) = e−12

u2+v2

σ2

• We want I ∗G ≈ I• For I = c (constant), I ∗G = I• Normalize by computing γ = 1 ∗G, and then let G← G/γ

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 24 / 26

Page 25: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Separable Convolution

Separability• A kernel that satisfies H(u, v) = h(u)`(v) is separable• The Gaussian is separable with h = `:

G(u, v) = e−12

u2+v2

σ2 = g(u)g(v) with g(u) = e−12(

uσ )

2

• A separable kernel leads to efficient convolution:

J(r , c) =h∑

u=−h

k∑v=−k

H(u, v) I(r − u, c − v)

=h∑

u=−h

h(u)k∑

v=−k

`(v) I(r − u, c − v)

=h∑

u=−h

h(u)φ(r − u, c) where φ(r , c) =h∑

v=−h

`(v)I(r , c − v)

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 25 / 26

Page 26: Correlation, Convolution, Filtering - Computer Science · COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 17/26. Filters Smoothing for Noise Reduction Assume:

Separable Convolution

Computational Complexity

General: J(r , c) =∑h

u=−h

∑kv=−k H(u, v) I(r − u, c − v)

Separable: J(r , c) =∑h

u=−h h(u)φ(r − u, c) whereφ(r , c) =

∑hv=−h `(v)I(r , c − v)

Let m = 2h + 1 and n = 2k + 1General: About 2mn operations per pixelSeparable: About 2m + 2n operations per pixelExample:

When m = n (square kernel), the gain is 2m2/4m = m/2With m = 20: About 80 operations per pixel instead of 800

COMPSCI 527 — Computer Vision Correlation, Convolution, Filtering 26 / 26


Recommended