From Last Time… Normalization If using a filter for smoothing want to preserve average brightnessIf using a filter for smoothing want to preserve average.

Slides:



Advertisements
Similar presentations
November 12, 2013Computer Vision Lecture 12: Texture 1Signature Another popular method of representing shape is called the signature. In order to compute.
Advertisements

Regional Processing Convolutional filters. Smoothing  Convolution can be used to achieve a variety of effects depending on the kernel.  Smoothing, or.
DREAM PLAN IDEA IMPLEMENTATION Introduction to Image Processing Dr. Kourosh Kiani
Computer Vision Lecture 16: Texture
EARS1160 – Numerical Methods notes by G. Houseman
Segmentation (2): edge detection
1Ellen L. Walker Edges Humans easily understand “line drawings” as pictures.
Instructor: Mircea Nicolescu Lecture 13 CS 485 / 685 Computer Vision.
Edge Detection CSE P 576 Larry Zitnick
Lecture 4 Edge Detection
Lecture 5 Hough transform and RANSAC
1Ellen L. Walker Segmentation Separating “content” from background Separating image into parts corresponding to “real” objects Complete segmentation Each.
(1) Feature-point matching by D.J.Duff for CompVis Online: Feature Point Matching Detection,
Announcements Mailing list: –you should have received messages Project 1 out today (due in two weeks)
Edge Detection Today’s reading Forsyth, chapters 8, 15.1
Feature Detection: Corners and Lines. Edges vs. Corners Edges = maxima in intensity gradientEdges = maxima in intensity gradient.
Fitting a Model to Data Reading: 15.1,
1 Image filtering
Stockman MSU/CSE Fall 2009 Finding region boundaries.
Lecture 4: Edge Based Vision Dr Carole Twining Thursday 18th March 2:00pm – 2:50pm.
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.
1 Image filtering Hybrid Images, Oliva et al.,
Edge Detection.
Robust estimation Problem: we want to determine the displacement (u,v) between pairs of images. We are given 100 points with a correlation score computed.
כמה מהתעשייה? מבנה הקורס השתנה Computer vision.
Computer Vision Spring ,-685 Instructor: S. Narasimhan Wean Hall 5409 T-R 10:30am – 11:50am.
October 8, 2013Computer Vision Lecture 11: The Hough Transform 1 Fitting Curve Models to Edges Most contours can be well described by combining several.
National Center for Supercomputing Applications University of Illinois at Urbana-Champaign Image Features Kenton McHenry, Ph.D. Research Scientist.
Edge Linking & Boundary Detection
Segmentation Course web page: vision.cis.udel.edu/~cv May 7, 2003  Lecture 31.
From Pixels to Features: Review of Part 1 COMP 4900C Winter 2008.
Edges. Edge detection schemes can be grouped in three classes: –Gradient operators: Robert, Sobel, Prewitt, and Laplacian (3x3 and 5x5 masks) –Surface.
Mestrado em Ciência de Computadores Mestrado Integrado em Engenharia de Redes e Sistemas Informáticos VC 14/15 – TP8 Segmentation Miguel Tavares Coimbra.
Lecture 6: Edge Detection CAP 5415: Computer Vision Fall 2008.
CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem.
HOUGH TRANSFORM. Introduced in 1962 by Paul Hough pronounced like “tough” according to orm.html.
Many slides from Steve Seitz and Larry Zitnick
Computational Vision / Ioannis Stamos  Edge Detection  Canny Detector  Line Detection  Hough Transform  Trucco: Chapter 4, pp. 76 – 80 Chapter 5,
Edge Detection and Geometric Primitive Extraction Jinxiang Chai.
Distinctive Image Features from Scale-Invariant Keypoints David Lowe Presented by Tony X. Han March 11, 2008.
Course 8 Contours. Def: edge list ---- ordered set of edge point or fragments. Def: contour ---- an edge list or expression that is used to represent.
October 16, 2014Computer Vision Lecture 12: Image Segmentation II 1 Hough Transform The Hough transform is a very general technique for feature detection.
Lecture 10: Lines from Edges, Interest Points, Binary Operations CAP 5415: Computer Vision Fall 2006.
Course 5 Edge Detection. Image Features: local, meaningful, detectable parts of an image. edge corner texture … Edges: Edges points, or simply edges,
Digital Image Processing Lecture 17: Segmentation: Canny Edge Detector & Hough Transform Prof. Charlene Tsai.
Machine Vision Edge Detection Techniques ENT 273 Lecture 6 Hema C.R.
Instructor: Mircea Nicolescu Lecture 7
Detecting Image Features: Corner. Corners Given an image, denote the image gradient. C is symmetric with two positive eigenvalues. The eigenvalues give.
Grouping and Segmentation. Sometimes edge detectors find the boundary pretty well.
April 21, 2016Introduction to Artificial Intelligence Lecture 22: Computer Vision II 1 Canny Edge Detector The Canny edge detector is a good approximation.
Interest Points EE/CSE 576 Linda Shapiro.
Fitting: Voting and the Hough Transform
Miguel Tavares Coimbra
Line Fitting James Hayes.
Detection of discontinuity using
Fitting: The Hough transform
Finding Lines in Images
Fitting Curve Models to Edges
Computer Vision Lecture 9: Edge Detection II
Computer Vision Lecture 16: Texture II
Photo by Carl Warner.
The SIFT (Scale Invariant Feature Transform) Detector and Descriptor
Announcements Questions on the project? New turn-in info online
Outline Announcement Perceptual organization, grouping, and segmentation Hough transform Read Chapter 17 of the textbook File: week14-m.ppt.
Edge Detection Today’s readings Cipolla and Gee Watt,
CSE 185 Introduction to Computer Vision
Introduction to Artificial Intelligence Lecture 22: Computer Vision II
Presentation transcript:

From Last Time… Normalization If using a filter for smoothing want to preserve average brightnessIf using a filter for smoothing want to preserve average brightness Going continuous to discrete introduces approximation error and finite-window error, so need to re-normalizeGoing continuous to discrete introduces approximation error and finite-window error, so need to re-normalize

From Last Time… Normalization If finding derivative, want to preserve average slope, i.e. y=x should retain slope 1If finding derivative, want to preserve average slope, i.e. y=x should retain slope 1 Same thing in discrete caseSame thing in discrete case

From Last Time… Normalization Failure to normalize correctly:Failure to normalize correctly: – If smoothing, image will get dimmer or brighter – If finding edges, edge strength will be higher or lower

More Feature Detection: Corners and Hough Transforms

Edges vs. Corners Edges = maxima in intensity gradientEdges = maxima in intensity gradient

Edges vs. Corners Corners = lots of variation in direction of gradient in a small neighborhoodCorners = lots of variation in direction of gradient in a small neighborhood

Detecting Corners How to detect this variation?How to detect this variation? Not enough to check average andNot enough to check average and

Detecting Corners Claim: the following “covariance matrix” summarizes the statistics of the gradient The summations are over the local neighborhood, andClaim: the following “covariance matrix” summarizes the statistics of the gradient The summations are over the local neighborhood, and

Detecting Corners Examine behavior of C by testing its effect in simple casesExamine behavior of C by testing its effect in simple cases Case #1: Single edge in local neighborhoodCase #1: Single edge in local neighborhood

Case#1: Single Edge Let (a,b) be gradient along edgeLet (a,b) be gradient along edge Compute C  (a,b):Compute C  (a,b):

Case #1: Single Edge However, in this simple case, the only nonzero terms are those where  f = (a,b)However, in this simple case, the only nonzero terms are those where  f = (a,b) So, C  (a,b) is just some multiple of (a,b)So, C  (a,b) is just some multiple of (a,b)

Case #2: Corner Assume there is a corner, with perpendicular gradients (a,b) and (c,d)Assume there is a corner, with perpendicular gradients (a,b) and (c,d)

Case #2: Corner What is C  (a,b)?What is C  (a,b)? – Since (a,b)  (c,d) = 0, the only nonzero terms are those where  f = (a,b) – So, C  (a,b) is again just a multiple of (a,b) What is C  (c,d)?What is C  (c,d)? – Since (a,b)  (c,d) = 0, the only nonzero terms are those where  f = (c,d) – So, C  (c,d) is a multiple of (c,d)

Corner Detection Matrix times vector = multiple of vectorMatrix times vector = multiple of vector Eigenvectors and eigenvalues!Eigenvectors and eigenvalues! In particular, if C has one large eigenvalue, have an edgeIn particular, if C has one large eigenvalue, have an edge If C has two large eigenvalues, have a cornerIf C has two large eigenvalues, have a corner

Corner Detection Implementation 1.Compute image gradient 2.For each m  m neighborhood, compute matrix C 3.If smaller eigenvalue 2 is greater than threshold , record a corner 4.Nonmaximum suppression: only keep strongest corner in each m  m window

Corner Detection Results Checkerboard with noiseCheckerboard with noise Trucco & Verri

Corner Detection Results

Histogram of 2 (smaller eigenvalue )

Corner Detection Application: good features for tracking, correspondence, etc.Application: good features for tracking, correspondence, etc. – Why are corners better than edges for tracking? Other corner detectorsOther corner detectors – Look for curvature in edge detector output – Perform color segmentation on neighborhoods – Others…

Detecting Lines What is the difference between line detection and edge detection?What is the difference between line detection and edge detection? – Edges = local – Lines = nonlocal Line detection usually performed on the output of an edge detectorLine detection usually performed on the output of an edge detector

Detecting Lines Several different approaches:Several different approaches: – For each possible line, check whether the line is present: “brute force” – Given detected edges, record lines to which they might belong: “Hough transform + voting” – Given guess for approximate location of a line, refine that guess: “fitting” Second method efficient for finding unknown lines, but not always accurateSecond method efficient for finding unknown lines, but not always accurate

Hough Transform General idea: transform from image coordinates to parameter space of featureGeneral idea: transform from image coordinates to parameter space of feature – Need parameterized model of features – For each pixel, determine all parameter values that might have given rise to that pixel; vote – At end, look for peaks in parameter space

Hough Transform for Lines Generic line: y = ax+bGeneric line: y = ax+b Parameters: a and bParameters: a and b

Hough Transform for Lines 1.Initialize table of buckets, indexed by a and b, to zero 2.For each detected edge pixel (x,y): a. Determine all (a,b) such that y = ax+b b. Increment bucket (a,b) 3.Buckets with many votes indicate probable lines

Hough Transform for Lines a b

Difficulties with Hough Transform How to select bucket size?How to select bucket size? – Too small: poor performance on noisy data, long running times – Too large: poor accuracy, possibility of false positives Large buckets + verification and refinementLarge buckets + verification and refinement – Best of both worlds? – Problems distinguishing nearby lines

Difficulties with Hough Transform for Lines Slope / intercept parameterization not idealSlope / intercept parameterization not ideal – Non-uniform sampling of directions – Can’t represent vertical lines Angle / distance parameterizationAngle / distance parameterization – Line represented as (r,  ) where x cos  + y sin  = r r 

Angle / Distance Parameterization Advantage: uniform parameterization of directionsAdvantage: uniform parameterization of directions Disadvantage: space of all lines passing through a point becomes a sinusoid in (r,  ) spaceDisadvantage: space of all lines passing through a point becomes a sinusoid in (r,  ) space

Hough Transform Results Forsyth & Ponce

Hough Transform Results Forsyth & Ponce

Hough Transform What else can be detected using Hough transform?What else can be detected using Hough transform? Anything, but dimensionality is keyAnything, but dimensionality is key

Hough Transform for Circles Space of circles has a 3-dimensional parameter space: position (2-d) and radiusSpace of circles has a 3-dimensional parameter space: position (2-d) and radius So, each pixel gives rise to 2-d sheet of values in 3-d spaceSo, each pixel gives rise to 2-d sheet of values in 3-d space

Hough Transform for Circles In many cases, can simplify problem by using more informationIn many cases, can simplify problem by using more information Example: using gradient informationExample: using gradient information Still need 3-d bucket space, but each pixel only votes for 1-d subsetStill need 3-d bucket space, but each pixel only votes for 1-d subset

Hough Transform for Circles =

Simplifying Hough Transforms Another trick: use prior informationAnother trick: use prior information – For example, if looking for circles of a particular size, reduce votes even further

Fitting Output of Hough transform often not accurate enoughOutput of Hough transform often not accurate enough Use as initial guess for fittingUse as initial guess for fitting

Fitting Lines Initial guess

Fitting Lines Least-squaresminimization

As before, have to be careful about parameterizationAs before, have to be careful about parameterization Most popular line fitting algorithms minimize vertical (not perpendicular) point-to-line distanceMost popular line fitting algorithms minimize vertical (not perpendicular) point-to-line distance Algorithm in textbook, section 16.2Algorithm in textbook, section 16.2