52
INF 5860 Machine learning for image classification Lecture 8 Background in image convolution, filtering, and filter banks for feature extraction Anne Solberg March 17, 2017

Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

INF 5860 Machine learning for image classificationLecture 8Background in image convolution, filtering, and filter banks for feature extractionAnne Solberg March 17, 2017

Page 2: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Today

• Image filtering• 2D convolution• Edge detection filters• Filtering in the frequency domain

– Lowpass, bandpass, highpass• Gabor-filters for feature extraction/segmentation

• PURPOSE: give a short background to those without a background in image analysis

• Convolutional nets use convolution as the basic operation.

17.3.2017 INF 5860 3

Page 3: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

17.03.17 INF 5860 4

Properties of the human visual system

• We can see light intensities over a broad range– The largest is about 1010 times higher than the lowest we can sense.

• We can only see a certain number of levels simultaneously,– About 50 different gray levels, but many more colors.

• When we focus on a different area, the eye adapts and we see localintensity differences.

Page 4: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

F1 17.03.11 INF 5860 5

Neural processes in the retina

• Amplifies edges.

• Stimulating one part suspendsother parts.– See one orientation at a time

• Increased contrast in edgesbetween uniform regions– Called Mach band

Page 5: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

INFINF 5860 6

Optical illusions• Illusional contours Straight or curved lines

• Multistable images Simultaneous contrast

Page 6: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Image filtering• One of the most used operations on images• A filter kernel is applied either in the image domain or 2D

Fourier domain.• Applications:

– Image enhancement– Image restoration– Image analysis – preprocessing

• Used to:– Reduce noise– Enhance sharpness– Detect edges and other structures– Detect objects– Extract texture information

17.3.2017 INF 5860 7

Page 7: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Spatial filtering

• A filter is given as a matrix:

• The size of the matrix and the coefficients decides the result.

17.3.2017 INF 5860 8

Page 8: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Spatial filtering in general

17.3.2017 INF 5860 9

Page 9: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

F1 7.2.06 INF 2310 10

2-D convolution

• Output image: g. Input image f.

• h is a m×n filter of size m=2w1+1, n=2w2+1• m and n usually odd. • Output image: weighted sum of input image pixels

surrounding pixel (x,y). Weights:h(j,k).• This operation is done for every pixel in the image

1

1

2

2

1

1

2

2

),(),(

),(),(),(

wx

wxj

wy

wyk

w

wj

w

wk

kjfkyjxh

kyjxfkjhyxg

Page 10: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Step 1: convolution: rotate the image 180 degrees

11

In this case, nothing changes

Page 11: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Step 2: Iterate over all locations where thefilter overlaps the image

17.3.2017 INF 5860 12

Multiply the image and the maskCompute the result for location (x,y)

Page 12: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

13

Mean filters

• 3×3:

• 5×5:

• 7×7:

• Scale the result by thesum of the coefficients

111111111

91

1111111111111111111111111

251

1111111111111111111111111111111111111111111111111

491

Page 13: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

14

OriginalFiltered 3x3

Page 14: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

15

9x925x25

Page 15: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

16

Gradients

• Gradient of F along r in direction

• Largest gradient when

• This is the angle g where

• gx=F/x and gy =F/x are the horisontal and verticalcomponents of the gradient.

ry

yF

rx

xF

rF

gggg xF

yF

yF

xF sincos0cossin

0

rF

sincosyF

xF

rF

Page 16: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

17

Gradient magnitude and direction

• Gradient direction:

• Gradient magnitude

gg

g

x

y

gg

tancossin

x

yg g

g1tan

2/122

maxyx gg

rF

Page 17: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

18

Gradient-filters• Prewitt-operator

• Sobel-operator

111000111

),(101101101

),( jiHjiH yx

121000121

),(101202101

),( jiHjiH yx

Page 18: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

19

Frequency content in images• Low frequencies

– Small gray level changes– Homogeneous ares

• High frequencies:– Large variations– Edges

Page 19: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

20

Sinusoids in images

A - amplitudeu - horisontal

frequencyv - vertical

frekvency - phase

)2cos(128),(

NvyuxAyxf

A=50, u=10, v=0 A=20, u=0, v=10

A=100, u=15, v=5A=100, u=5, v=10A=50, u=10, v=10

Note: u and v are the number of cycles (horisontally and vertically) in the image

Page 20: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

21

2D Discrete Fouriertransform (DFT)

f(x,y) is a pixel in a NM imageDefinition:

This can also be written:

Inverse transform:

1

0

1

0

)//(2),(1),(M

x

N

y

NvyMuxjeyxfMN

vuF

1

0

1

0)//(2sin))//(2cos(),(1),(

M

x

N

yNvyMuxjNvyMuxyxf

MNvuF

1

0

1

0

)//(2),(),(M

u

N

v

NvyMuxjevuFyxf

sincos je j

Page 21: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

22

Displaying the Fourier spectrum• Since F(u,v) is periodic with period N, it is common to

translate the spectrum such that origo (u=v=0) is in the center of the image– Change quadrantsOR: pre-multiply f(x,y) with (-1)x+y

f(x,y) |F(u,v)|f(x,y): image domain F(u,v): frequency domain

|F(u,v)| is called the spectrum of f(x,y)(amplitude spectrum)

Power spectrum: |F(u,v)|2

Page 22: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

23

2D Fourier spectrum - oriented structure

Page 23: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

24

The convolution theorem

Convolution in the image domain Multiplication in the frequencydomain

And the opposite:

Multiplication in the image domain Convolution in the frequencydomain

),(),(),(),( vuHvuFyxhyxf

),(),(),(),( vuHvuFyxhyxf

Page 24: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

25

How do we filter out this effect?

Page 25: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

26

Filtering in the frequency domain

1. Multiply the image by (-1)x+y to center the transform.2. Compute F(u,v) using the 2D DFT3. Multiply F(u,v) by a filter H(u,v)4. Compute the inverse FFT of the result from 35. Obtain the real part from 4.6. Multiply the result by (-1)x+y

Page 26: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

27

The ”ideal” low pass filter

Page 27: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

28

Example - ideal low pass

Originalr0=0.2 r0=0.3

Warning: Look at these image in high resolution. You should see ringing effects in the two rightmost images.

Page 28: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

29

Butterworth low pass filter• Window-functions are used to reduce the ringing effect.• Butterworth low pass filter of order n:

• D0 describes the point where H(u,v) has decreased to the half of its maximum)– Low filter order (n small): H(u,v) decreases slowly: Little ringing– High filter order (n large): H(u,v) decreases fast: More ringing

• Other filters can also be used, e.g. Gaussian, Bartlett, Blackman, Hamming, Hanning

nDvuDvuH 2

0/),(11),(

Page 29: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

30

Gaussian lowpass filter22 2/),(),( vuDevuH

Page 30: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

31

High pass filtering

• Simple (”Ideal”) highpass filter:

• Butterworth high pass filter:

• Gaussian high pass filter:

),(1),(

.),(,1,),(,0

),(0

0

vuHvuHor

DvuDDvuD

vuH

lphp

hp

nhpB vuDDvuH 2

0 ),(/11),(

20

2 2/),(1),( DvuDhpG evuH

Page 31: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

32

Ideal, Butterworth and Gaussian highpassfilters

Page 32: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

33

Example – Butterworth highpass

Page 33: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

34

Bandpass and bandstop filters

• Bandpass filter: Keeps only the energy in a given frequency band <Dlow,Dhigh> (or <D0-W/2,D0+ W/2>)

• W is the width of the band• D0 is its radial center.

• Bandstop filter: Removes all energy in a given frequency band <Dlow,Dhigh>

Page 34: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

35

Bandstop/bandreject filters

• Ideal

• Butterworth

• Gaussian

2),( if1

2),(

2-D if0

2),( if1

),(

0

00

0

WDvuD

WDvuDW

WDvuD

vuHbs

nbs

DvuDWvuD

vuH 2

20

2 ),(),(1

1),(

B

220

2

),(),(

21

1),(

WvuDDvuD

bsG evuH

Page 35: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

36

An example of bandstop filtering

Page 36: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

37

Bandpass filters

• Are defined by ),(1),( vuHvuH bsbp

OriginalResult after bandpass filtering

Page 37: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Feature extraction from filter banks

• Idea: convolve the image with a set of filters to extract stuctures with different size and orientations• In this lecture: Gabor filters, but we could useother types e.g wavelets• These are low-level features similar to thoseextracted by convolutional net.• Convolutional nets:

– Estimate the filter coefficients themselves– Adapts a classifier also.

38

Page 38: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Fourier texture from filter banks1. Compute the 2D Fourier spectrum of the

image2. Design a set of 2D bandpass filters that

covers the spectrum with varying center frequency and orientations.

3. Apply each filter to the input image.4. Apply a non-linear transform to the filtered

images with the aim of creating homogeneous regions corresponding to texture with a certain frequency and orientation.

5. Segmentation or classification based on all the images from after applying the non-linear transform.

39

Page 39: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Gabor-filters - spatial domain

• A popular method for designing filters. • A 2D Gabor function consists of a sinusoidal plane wave of

some frequency and orientation, modulated by a 2D Gaussian envelope, typically in the spatial domain:

• u0 and are the frequency and phase of the sinusoid along the x-axis (for orientation 0 degrees), and x and y are the width of the Gaussian envelope function.

• A Gabor filter with arbitrary orientation can be obtained by rotating the coordinate system.

40

xuyxyxh

yx02

2

2

2

2cos21exp,

Page 40: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Gabor-filters for extracting information from the Fourier spectrum

• A 2D Gabor filter H(u’,v’) with orientation and radial filter center FR in the frequency domain is defined by rotating the coordinate system from (u,v) to (u’,v’):

• The filter consists of a sinusoidal wave modulated with a 2D Gaussian. They have high resolution both in the spatial and the Fourier domain.

• The filter is specified in terms of radial filter bandwidth BR in octaves and angular filter width Bin radians and use the conversion:

Page 41: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Gabor filters - filter parameters

• The following filter parameters are normally used:• Orientations: 0, 45, 90, 135• For an image of size N, radial frequencies

12, 22, 42, 82, 162,....... but the lowest can often be skipped• The frequencies are one octave apart.

42

Page 42: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Gabor filters: feature images• The purpose of the non-linear transform is to transform the band-pass filtered

result, which has large amplitude fluctuations with the given frequency in regions where the selected frequency has a significant presence in the Fourierspectrum.

• The following function is often used:

• This will act as a blob detector for regions corresponding high amplitude valuefor the given frequency.

• This is later combined with computing texture energy as average absolutiondeviation in small windows:

• The size of the window is proportional to the average size of the intensityvariations in the image T=N/u0. 43

Page 43: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Sampling the Fourier spectrum with a filter bank of Gabor filters

A bank of 24 filterswith different center frequencies and orientation sample the Fourier domain

Orientations: 0 , 30 , 45 , 60 , 90 , 120 , 135 and 150

Frequencies: u0=0.1N, 0.15N and 0.35NN is the image size.

Page 44: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Gabor filter : example

17.3.2017 INF 5860 45

Filter with 4 Gabor filters withequal center frequency and Orientation 0, 45, 90 and 135 degrees

Page 45: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Gabor-filtered images

17.3.2017 INF 5860 46

0 45

90 135

Page 46: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

135

17.3.2017 INF 5860 47

0

90

45

135

Gabor feature images after nonlinear transform

Page 47: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Simple feature combination: the averageimage

17.3.2017 INF 5860 48

Page 48: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Example 2: texture segmentationCan we segment the boundaries betweenthe 4 textures?

17.3.2017 INF 5860 49

Page 49: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Gabor-filtered images

17.3.2017 INF 5860 50

0 45

90 135

Page 50: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

135

17.3.2017 INF 5860 51

0

90

45

135

Gabor feature images after nonlinear transform

Page 51: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

Simple feature combination: the averageimage

17.3.2017 INF 5860 52

Page 52: Lecture 8 Backgroundin image convolution, filtering, and ... · Backgroundin image convolution, filtering, and filter banks for featureextraction Anne Solberg March17, 2017. Today

• Classification based on these images might be possible, but is not stable with respect to size, orientation etc.

• What if the object was a cat? Or horse? • We see that this approach builds a set of primities as edges in

given orientations.• Filter coefficients must be determined by the used.• To detect over different scales we could either resample the

images and use one filter set, or use filter sets of different sizes. • At least these filters are sensitive to orientation patterns.

17.3.2017 INF 5860 53