Sebastian Thrun, Stanford Rick Szeliski, Microsoft

Slides:



Advertisements
Similar presentations
Boundary Detection - Edges Boundaries of objects –Usually different materials/orientations, intensity changes.
Advertisements

1Ellen L. Walker Edges Humans easily understand “line drawings” as pictures.
Edge and Corner Detection Reading: Chapter 8 (skip 8.1) Goal: Identify sudden changes (discontinuities) in an image This is where most shape information.
Edge Detection. Our goal is to extract a “line drawing” representation from an image Useful for recognition: edges contain shape information –invariance.
EE663 Image Processing Edge Detection 1
Edge detection Goal: Identify sudden changes (discontinuities) in an image Intuitively, most semantic and shape information from the image can be encoded.
Lecture 4 Edge Detection
Computer Vision Group Edge Detection Giacomo Boracchi 5/12/2007
Edge detection. Edge Detection in Images Finding the contour of objects in a scene.
Image processing. Image operations Operations on an image –Linear filtering –Non-linear filtering –Transformations –Noise removal –Segmentation.
EE663 Image Processing Edge Detection 2 Dr. Samir H. Abdul-Jauwad Electrical Engineering Department King Fahd University of Petroleum & Minerals.
Computer Vision - A Modern Approach
Sebastian Thrun CS223B Computer Vision, Winter Stanford CS223B Computer Vision, Winter 2005 Lecture 3 Filters and Features (with Matlab) Sebastian.
Edge Detection Today’s reading Forsyth, chapters 8, 15.1
Segmentation (Section 10.2)
Filters and Edges. Zebra convolved with Leopard.
Lecture 2: Image filtering
Announcements Since Thursday we’ve been discussing chapters 7 and 8. “matlab can be used off campus by logging into your wam account and bringing up an.
3-D Computer Vision CSc Feature Detection and Grouping.
Edge Detection Today’s readings Cipolla and Gee –supplemental: Forsyth, chapter 9Forsyth Watt, From Sandlot ScienceSandlot Science.
CSE 473/573 Computer Vision and Image Processing (CVIP) Ifeoma Nwogu Lecture 10 – Edges and Pyramids 1.
Edge Detection.
Computer Vision P. Schrater Spring 2003
Edge detection Goal: Identify sudden changes (discontinuities) in an image Intuitively, most semantic and shape information from the image can be encoded.
Multimedia Systems & Interfaces Karrie G. Karahalios Spring 2007.
Neighborhood Operations
Computer Vision Spring ,-685 Instructor: S. Narasimhan WH 5409 T-R 10:30 – 11:50am.
Lecture 2: Edge detection CS4670: Computer Vision Noah Snavely From Sandlot ScienceSandlot Science.
Image Processing Edge detection Filtering: Noise suppresion.
Edges. Edge detection schemes can be grouped in three classes: –Gradient operators: Robert, Sobel, Prewitt, and Laplacian (3x3 and 5x5 masks) –Surface.
Instructor: S. Narasimhan
Edge detection Goal: Identify sudden changes (discontinuities) in an image Intuitively, most semantic and shape information from the image can be encoded.
Many slides from Steve Seitz and Larry Zitnick
CSC508 Convolution Operators. CSC508 Convolution Arguably the most fundamental operation of computer vision It’s a neighborhood operator –Similar to the.
Brent M. Dingle, Ph.D Game Design and Development Program Mathematics, Statistics and Computer Science University of Wisconsin - Stout Edge Detection.
CSE 6367 Computer Vision Image Operations and Filtering “You cannot teach a man anything, you can only help him find it within himself.” ― Galileo GalileiGalileo.
Announcements Project 0 due tomorrow night. Edge Detection Today’s readings Cipolla and Gee (handout) –supplemental: Forsyth, chapter 9Forsyth For Friday.
Lecture 04 Edge Detection Lecture 04 Edge Detection Mata kuliah: T Computer Vision Tahun: 2010.
Machine Vision Edge Detection Techniques ENT 273 Lecture 6 Hema C.R.
Computer Vision Image Features Instructor: Dr. Sherif Sami Lecture 4.
Instructor: Mircea Nicolescu Lecture 5 CS 485 / 685 Computer Vision.
Lecture 8: Edges and Feature Detection
Digital Image Processing CSC331
Sliding Window Filters Longin Jan Latecki October 9, 2002.
Winter in Kraków photographed by Marcin Ryczek
Miguel Tavares Coimbra
Edge Detection slides taken and adapted from public websites:
Image Filtering Spatial filtering
Professor Sebastian Thrun CAs: Dan Maynes-Aminzade and Mitul Saha
Linear Filters and Edges Chapters 7 and 8
Edge Detection CS 678 Spring 2018.
Jeremy Bolton, PhD Assistant Teaching Professor
Computer Vision Lecture 9: Edge Detection II
Edge detection Goal: Identify sudden changes (discontinuities) in an image Intuitively, most semantic and shape information from the image can be encoded.
Review: Linear Systems
Dr. Chang Shu COMP 4900C Winter 2008
a kind of filtering that leads to useful features
a kind of filtering that leads to useful features
Lecture 2: Edge detection
CSSE463: Image Recognition Day 6
CSSE463: Image Recognition Day 6
Edge Detection Today’s readings Cipolla and Gee Watt,
CSSE463: Image Recognition Day 6
CSSE463: Image Recognition Day 6
Canny Edge Detector Smooth image with a Gaussian
Lecture 2: Edge detection
Winter in Kraków photographed by Marcin Ryczek
IT472 Digital Image Processing
IT472 Digital Image Processing
Edge detection Goal: Identify sudden changes (discontinuities) in an image Intuitively, most semantic and shape information from the image can be encoded.
Presentation transcript:

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,…]

Assignment 1 FAQ Compiling projects Taking the images 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

Assignment 1 FAQ Corner finding How to verify results Supply correct parameters e.g. corner_count<>0 Visualize corner ordering How to verify results Backproject scene corners into image Use common sense: etc

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,…]

Today’s Goals Features 101 Linear Filters and Edge Detection Canny Edge Detector

Today’s Question What is a feature? What is an image filter? How can we find corners? How can we find edges?

What is a Feature? Local, meaningful, detectable parts of the image

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

(One Type of) Computer Vision Feature 1 Feature 2 : Feature N Image 2 Image 1 Feature 1 Feature 2 : Feature N Computer Vision Algorithm

Where Features Are Used Calibration Image Segmentation Correspondence in multiple images (stereo, structure from motion) Object detection, classification

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

Today’s Goals Features 101 Linear Filters and Edge Detection Canny Edge Detector

What Causes an Edge? Depth discontinuity Surface orientation discontinuity Reflectance discontinuity (i.e., change in surface material properties) Illumination discontinuity (e.g., shadow) Slide credit: Christopher Rasmussen

Quiz: How Can We Find Edges?

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); matlab colorbar colormap(gray(255)) colormap(default)

Edge Finding 101 Example of a linear Filter

What is Image Filtering? Modify the pixels in an image based on some function of a local neighborhood of the pixels 10 5 3 4 1 7 7 Some function

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. 10 5 3 4 1 7 0.5 1.0 7 kernel

Linear Filter = Convolution g11 g11 I(i-1,j-1) I(.) g12 + g12 I(i-1,j) I(.) g13 + g13 I(i-1,j+1) + I(.) g21 g21 I(i,j-1) g22 + g22 I(i,j) I(.) I(.) g23 + g23 I(i,j+1) + I(.) g31 g31 I(i+1,j-1) I(.) g32 + g32 I(i+1,j) I(.) g33 + g33 I(i+1,j+1) f (i,j) =

Linear Filter = Convolution

Filtering Examples

Filtering Examples

Filtering Examples

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

Smoothing With Gaussian Averaging Gaussian Slide credit: Marc Pollefeys

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

Example of Blurring Image Blurred Image - =

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));

Scale Increased smoothing: Eliminates noise edges. Makes edges smoother and thicker. Removes fine detail.

The Edge Normal

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;

Separable Kernels

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

Effect of Smoothing Radius 1 pixel 3 pixels 7 pixels

Robert’s Cross Operator 1 0 0 -1 0 1 -1 0 + S = [ I(x, y) - I(x+1, y+1) ]2 + [ I(x, y+1) - I(x+1, y) ]2 or S = | I(x, y) - I(x+1, y+1) | + | I(x, y+1) - I(x+1, y) |

Sobel Operator -1 -2 -1 0 0 0 1 2 1 -1 0 1 -2 0 2 S1= S2 = -1 -2 -1 0 0 0 1 2 1 -1 0 1 -2 0 2 S1= S2 = Edge Magnitude = Edge Direction = S1 + S1 2 tan-1 S1 S2

The Sobel Kernel, Explained Sobel kernel is separable! Averaging done parallel to edge

Sobel Edge Detector figure(6) edge(bw, 'sobel')

Robinson Compass Masks -1 0 1 -2 0 2 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 2 0 -2 1 1 -1 -1 0 -1

Claim Your Own Kernel! Frei & Chen

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.

Today’s Goals Features 101 Linear Filters and Edge Detection Canny Edge Detector

Canny Edge Detector figure(7) edge(bw, 'canny')

Canny Edge Detection Steps: Apply derivative of Gaussian Non-maximum suppression Thin multi-pixel wide “ridges” down to single pixel width Linking and thresholding Low, high edge-strength thresholds Accept all edges over low threshold that are connected to edge over high threshold

Non-Maximum Supression Non-maximum suppression: Select the single maximum point across the width of an edge.

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).

Edge Hysteresis Hysteresis: A lag or momentum factor Idea: Maintain two thresholds khigh and klow Use khigh to find strong edges to start edge chain Use klow to find weak edges which continue edge chain Typical ratio of thresholds is roughly khigh / klow = 2

Canny Edge Detection (Example) gap is gone Strong + connected weak edges Original image Strong edges only Weak edges courtesy of G. Loy

Canny Edge Detection (Example) Using Matlab with default thresholds

Application: Road Finding (add roadrunner video here)

Corner Effects

Today’s Goals Features 101 Linear Filters and Edge Detection Canny Edge Detector