Presentation is loading. Please wait.

Presentation is loading. Please wait.

Sebastian Thrun CS223B Computer Vision, Winter 2005 1 Stanford CS223B Computer Vision, Winter 2005 Lecture 3 Filters and Features (with Matlab) Sebastian.

Similar presentations


Presentation on theme: "Sebastian Thrun CS223B Computer Vision, Winter 2005 1 Stanford CS223B Computer Vision, Winter 2005 Lecture 3 Filters and Features (with Matlab) Sebastian."— Presentation transcript:

1 Sebastian Thrun CS223B Computer Vision, Winter 2005 1 Stanford CS223B Computer Vision, Winter 2005 Lecture 3 Filters and Features (with Matlab) Sebastian Thrun, Stanford Rick Szeliski, Microsoft Hendrik Dahlkamp, Stanford [with slides by D Forsyth, D. Lowe, M. Polleyfeys, C. Rasmussen, G. Loy, D. Jacobs, J. Rehg, A, Hanson, G. Bradski,…]

2 Sebastian Thrun CS223B Computer Vision, Winter 2005 2 Assignment 1 FAQ Compiling projects –cxcored.dll is the debug version of cxcore.dll, can be compiled from cxcore.dsp –Use template cvsample.dsp to get paths right Taking the images –Assignment change: out-of-focus images no longer needed –Don’t print a border around the chessboard

3 Sebastian Thrun CS223B Computer Vision, Winter 2005 3 Assignment 1 FAQ Corner finding –Supply correct parameters e.g. corner_count<>0 –Visualize corner ordering How to verify results –Backproject scene corners into image –Use common sense: etc

4 Sebastian Thrun CS223B Computer Vision, Winter 2005 4 Stanford CS223B Computer Vision, Winter 2005 Lecture 3 Filters and Features (with Matlab) Sebastian Thrun, Stanford Rick Szeliski, Microsoft Hendrik Dahlkamp, Stanford [with slides by D Forsyth, D. Lowe, M. Polleyfeys, C. Rasmussen, G. Loy, D. Jacobs, J. Rehg, A, Hanson, G. Bradski,…]

5 Sebastian Thrun CS223B Computer Vision, Winter 2005 5 Today’s Goals Features 101 Linear Filters and Edge Detection Canny Edge Detector

6 Sebastian Thrun CS223B Computer Vision, Winter 2005 6 Today’s Question What is a feature? What is an image filter? How can we find corners? How can we find edges?

7 Sebastian Thrun CS223B Computer Vision, Winter 2005 7 What is a Feature? Local, meaningful, detectable parts of the image

8 Sebastian Thrun CS223B Computer Vision, Winter 2005 8 Features in Computer Vision What is a feature? –Location of sudden change Why use features? –Information content high –Invariant to change of view point, illumination –Reduces computational burden

9 Sebastian Thrun CS223B Computer Vision, Winter 2005 9 (One Type of) Computer Vision Computer Vision Algorithm Feature 1 Feature 2 : Feature N Feature 1 Feature 2 : Feature N Image 2 Image 1

10 Sebastian Thrun CS223B Computer Vision, Winter 2005 10 Where Features Are Used Calibration Image Segmentation Correspondence in multiple images (stereo, structure from motion) Object detection, classification

11 Sebastian Thrun CS223B Computer Vision, Winter 2005 11 What Makes For Good Features? Invariance –View point (scale, orientation, translation) –Lighting condition –Object deformations –Partial occlusion Other Characteristics –Uniqueness –Sufficiently many –Tuned to the task

12 Sebastian Thrun CS223B Computer Vision, Winter 2005 12 Today’s Goals Features 101 Linear Filters and Edge Detection Canny Edge Detector

13 Sebastian Thrun CS223B Computer Vision, Winter 2005 13 Depth discontinuity Surface orientation discontinuity Reflectance discontinuity (i.e., change in surface material properties) Illumination discontinuity (e.g., shadow) Slide credit: Christopher Rasmussen What Causes an Edge?

14 Sebastian Thrun CS223B Computer Vision, Winter 2005 14 Quiz: How Can We Find Edges?

15 Sebastian Thrun CS223B Computer Vision, Winter 2005 15 Edge Finding 101 im = imread('bridge.jpg'); image(im); figure(2); bw = double(rgb2gray(im)); image(bw); gradkernel = [-1 1]; dx = abs(conv2(bw, gradkernel, 'same')); image(dx); colorbar; colormap gray [dx,dy] = gradient(bw); gradmag = sqrt(dx.^2 + dy.^2); image(gradmag); colorbar colormap(gray(255)) colormap(default) matlab

16 Sebastian Thrun CS223B Computer Vision, Winter 2005 16 Edge Finding 101 Example of a linear Filter

17 Sebastian Thrun CS223B Computer Vision, Winter 2005 17 What is Image Filtering? Modify the pixels in an image based on some function of a local neighborhood of the pixels 1053 451 117 7 Some function

18 Sebastian Thrun CS223B Computer Vision, Winter 2005 18 Linear Filtering Linear case is simplest and most useful –Replace each pixel with a linear combination of its neighbors. The prescription for the linear combination is called the convolution kernel. 1053 451 117 7 000 00.50 01.00.5 kernel

19 Sebastian Thrun CS223B Computer Vision, Winter 2005 19 Linear Filter = Convolution g 22 + g 22 I(i,j) I(.) f (i,j) = I(.) g 12 + g 12 I(i-1,j) I(.) g 13 + g 13 I(i-1,j+1) + I(.) g 21 g 21 I(i,j-1) I(.) g 23 + g 23 I(i,j+1) + I(.) g 31 g 31 I(i+1,j-1) I(.) g 32 + g 32 I(i+1,j) I(.) g 33 + g 33 I(i+1,j+1) I(.) g 11 g 11 I(i-1,j-1)

20 Sebastian Thrun CS223B Computer Vision, Winter 2005 20 Linear Filter = Convolution

21 Sebastian Thrun CS223B Computer Vision, Winter 2005 21 Filtering Examples

22 Sebastian Thrun CS223B Computer Vision, Winter 2005 22 Filtering Examples

23 Sebastian Thrun CS223B Computer Vision, Winter 2005 23 Filtering Examples

24 Sebastian Thrun CS223B Computer Vision, Winter 2005 24 Image Smoothing With Gaussian figure(3); sigma = 3; width = 3 * sigma; support = -width : width; gauss2D = exp( - (support / sigma).^2 / 2); gauss2D = gauss2D / sum(gauss2D); smooth = conv2(conv2(bw, gauss2D, 'same'), gauss2D', 'same'); image(smooth); colormap(gray(255)); gauss3D = gauss2D ' * gauss2D; tic ; smooth = conv2(bw,gauss3D, ' same ' ); toc

25 Sebastian Thrun CS223B Computer Vision, Winter 2005 25 Slide credit: Marc Pollefeys Smoothing With Gaussian GaussianAveraging

26 Sebastian Thrun CS223B Computer Vision, Winter 2005 26 Smoothing Reduces Noise The effects of smoothing Each row shows smoothing with gaussians of different width; each column shows different realizations of an image of gaussian noise. Slide credit: Marc Pollefeys

27 Sebastian Thrun CS223B Computer Vision, Winter 2005 27 Example of Blurring ImageBlurred Image -=

28 Sebastian Thrun CS223B Computer Vision, Winter 2005 28 Edge Detection With Smoothed Images figure(4); [dx,dy] = gradient(smooth); gradmag = sqrt(dx.^2 + dy.^2); gmax = max(max(gradmag)); imshow(gradmag); colormap(gray(gmax));

29 Sebastian Thrun CS223B Computer Vision, Winter 2005 29 Scale Increased smoothing: Eliminates noise edges. Makes edges smoother and thicker. Removes fine detail.

30 Sebastian Thrun CS223B Computer Vision, Winter 2005 30 The Edge Normal

31 Sebastian Thrun CS223B Computer Vision, Winter 2005 31 Displaying the Edge Normal figure(5); hold on; image(smooth); colormap(gray(255)); [m,n] = size(gradmag); edges = (gradmag > 0.3 * gmax); inds = find(edges); [posx,posy] = meshgrid(1:n,1:m); posx2=posx(inds); posy2=posy(inds); gm2= gradmag(inds); sintheta = dx(inds)./ gm2; costheta = - dy(inds)./ gm2; quiver(posx2,posy2, gm2.* sintheta / 10, -gm2.* costheta / 10,0); hold off;

32 Sebastian Thrun CS223B Computer Vision, Winter 2005 32 Separable Kernels

33 Sebastian Thrun CS223B Computer Vision, Winter 2005 33 Combining Kernels / Convolutions 0.0030 0.0133 0.0219 0.0133 0.0030 0.0133 0.0596 0.0983 0.0596 0.0133 0.0219 0.0983 0.1621 0.0983 0.0219 0.0133 0.0596 0.0983 0.0596 0.0133 0.0030 0.0133 0.0219 0.0133 0.0030

34 Sebastian Thrun CS223B Computer Vision, Winter 2005 34 Effect of Smoothing Radius 1 pixel3 pixels7 pixels

35 Sebastian Thrun CS223B Computer Vision, Winter 2005 35 Robert’s Cross Operator 1 0 0 -1 0 1 -1 0 + or | I(x, y) - I(x+1, y+1) | + | I(x, y+1) - I(x+1, y) | [ I(x, y) - I(x+1, y+1) ] 2 + [ I(x, y+1) - I(x+1, y) ] 2 S =

36 Sebastian Thrun CS223B Computer Vision, Winter 2005 36 Sobel Operator -1 -2 -1 0 0 0 1 2 1 -1 0 1 -2 0 2 -1 0 1 S1=S1=S 2 = Edge Magnitude = Edge Direction = S 1 + S 1 2 2 tan -1 S1S1 S2S2

37 Sebastian Thrun CS223B Computer Vision, Winter 2005 37 The Sobel Kernel, Explained Sobel kernel is separable! Averaging done parallel to edge

38 Sebastian Thrun CS223B Computer Vision, Winter 2005 38 Sobel Edge Detector figure(6) edge(bw, 'sobel')

39 Sebastian Thrun CS223B Computer Vision, Winter 2005 39 Robinson Compass Masks -1 0 1 -2 0 2 -1 0 1 0 1 2 -1 0 1 -2 -1 0 1 2 1 0 0 0 -1 -2 -1 2 1 0 1 0 -1 0 -1 -2 1 0 -1 2 0 -2 1 1 -1 0 -1 -2 -1 0 -1 2 1 0 -1 -2 -1 0 0 0 1 2 1 -2 -1 0 -1 0 1 0 1 2

40 Sebastian Thrun CS223B Computer Vision, Winter 2005 40 Claim Your Own Kernel! Frei & Chen

41 Sebastian Thrun CS223B Computer Vision, Winter 2005 41 Comparison (by Allan Hanson) Analysis based on a step edge inclined at an angle q (relative to y- axis) through center of window. Robinson/Sobel: true edge contrast less than 1.6% different from that computed by the operator. Error in edge direction –Robinson/Sobel: less than 1.5 degrees error –Prewitt: less than 7.5 degrees error Summary –Typically, 3 x 3 gradient operators perform better than 2 x 2. –Prewitt2 and Sobel perform better than any of the other 3x3 gradient estimation operators. –In low signal to noise ratio situations, gradient estimation operators of size larger than 3 x 3 have improved performance. –In large masks, weighting by distance from the central pixel is beneficial.

42 Sebastian Thrun CS223B Computer Vision, Winter 2005 42 Today’s Goals Features 101 Linear Filters and Edge Detection Canny Edge Detector

43 Sebastian Thrun CS223B Computer Vision, Winter 2005 43 Canny Edge Detector figure(7) edge(bw, 'canny')

44 Sebastian Thrun CS223B Computer Vision, Winter 2005 44 Canny Edge Detection Steps: 1.Apply derivative of Gaussian 2.Non-maximum suppression Thin multi-pixel wide “ridges” down to single pixel width 3.Linking and thresholding Low, high edge-strength thresholds Accept all edges over low threshold that are connected to edge over high threshold

45 Sebastian Thrun CS223B Computer Vision, Winter 2005 45 Non-Maximum Supression Non-maximum suppression: Select the single maximum point across the width of an edge.

46 Sebastian Thrun CS223B Computer Vision, Winter 2005 46 Linking to the Next Edge Point Assume the marked point is an edge point. Take the normal to the gradient at that point and use this to predict continuation points (either r or s).

47 Sebastian Thrun CS223B Computer Vision, Winter 2005 47 Edge Hysteresis Hysteresis: A lag or momentum factor Idea: Maintain two thresholds k high and k low –Use k high to find strong edges to start edge chain –Use k low to find weak edges which continue edge chain Typical ratio of thresholds is roughly k high / k low = 2

48 Sebastian Thrun CS223B Computer Vision, Winter 2005 48 Canny Edge Detection (Example) courtesy of G. Loy gap is gone Original image Strong edges only Strong + connected weak edges Weak edges

49 Sebastian Thrun CS223B Computer Vision, Winter 2005 49 Canny Edge Detection (Example) Using Matlab with default thresholds

50 Sebastian Thrun CS223B Computer Vision, Winter 2005 50 Application: Road Finding (add roadrunner video here)

51 Sebastian Thrun CS223B Computer Vision, Winter 2005 51 Corner Effects

52 Sebastian Thrun CS223B Computer Vision, Winter 2005 52 Today’s Goals Features 101 Linear Filters and Edge Detection Canny Edge Detector


Download ppt "Sebastian Thrun CS223B Computer Vision, Winter 2005 1 Stanford CS223B Computer Vision, Winter 2005 Lecture 3 Filters and Features (with Matlab) Sebastian."

Similar presentations


Ads by Google