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

Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

Correlation, Convolution, Filtering

COMPSCI 527 — Computer Vision

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

Page 2: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

Outline

1 Template Matching and Correlation

2 Image Convolution

3 Filters

4 Separable Convolution

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

Page 3: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

Template Matching and Correlation

Template Matching

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

Page 4: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

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 / 23

Page 5: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

Template Matching and Correlation

Results

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

Page 6: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

Template Matching and Correlation

Cross-Correlation

(ignoring normalization for simplicity)

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

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

Page 7: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

Template Matching and Correlation

Code, Mathfor r = 1:m

for c = 1:nJ(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 / 23

Page 8: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

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 kernel H(u, v) is correlation with templateT (u, v) = H(−u,−v)

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

Page 9: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

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 / 23

Page 10: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

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 / 23

Page 11: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

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 / 23

Page 12: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

Image Convolution

Image Boundaries: “Valid” Convolution• Full overlap of image and kernel• If I is m×n and H is k × `, then J is (m− k +1)× (n− `+1)

f ed cb a

f ed cb a

first position last

position

input image

(m, n) = (4, 6)

a bc de f

kernel

(k, l) = (3, 2)

output image

(2, 5)

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

Page 13: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

Image Convolution

Image Boundaries: “Full” Convolution• Any non-empty overlap of image and kernel• 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]

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0000

0000

f ed cb a

f ed cb a

first position

last position

input image

(m, n) = (4, 6)

a bc de f

kernel

(k, l) = (3, 2)

output image

(6, 7)

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

Page 14: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

Image Convolution

Image Boundaries: “Same” Convolution• Require the output to have the same size as the input• If I is m × n and H is k × `, then J is m × n

0000

0 0 0 0 0 0 0

0 0 0 0 0 0 0

f ed cb a

f ed cb a

first position

last position

input image

(m, n) = (4, 6)

a bc de f

kernel

(k, l) = (3, 2)

output image

(4, 6)

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

Page 15: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

Filters

Filters

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

• Smoothing and differentiation are examples of filtering:Local, linear image→ image transformations

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

Page 16: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

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 16 / 23

Page 17: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

Filters

Averaging as Convolution

J(c) = 12h+1

∑hv=−h I(c − h) is the same as

J(c) =∑h

v=−h I(c − h)H(c) where H(c) = 12h+1 [1, . . . ,1],

a convolution with the box kernel

Box kernel in two dimensions:

u

v

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

Page 18: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

Filters

Box versus Gaussian Kernel

u

v

• The Gaussian kernel does a weighted average• Emphasizes nearby values more than distant ones• Blurs less than the box kernel for the same averaging effect

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

Page 19: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

Filters

Box versus Gaussian Kernel

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

Page 20: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

Filters

TruncationG(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

e−322 ≈ 0.01

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

Page 21: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

Filters

NormalizationG(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 21 / 23

Page 22: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

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 22 / 23

Page 23: Correlation, Convolution, Filteringdb.cs.duke.edu/courses/compsci527/current/slides/s_01...Template Matching and Correlation Code, Math for r = 1:m for c = 1:n J(r, c) = 0 for u =

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 23 / 23