Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSSE463: Image Recognition Day 25 This week This week Today: Finding lines and circles using the Hough transform (Sonka 6.26) Today: Finding lines and.

Similar presentations


Presentation on theme: "CSSE463: Image Recognition Day 25 This week This week Today: Finding lines and circles using the Hough transform (Sonka 6.26) Today: Finding lines and."— Presentation transcript:

1 CSSE463: Image Recognition Day 25 This week This week Today: Finding lines and circles using the Hough transform (Sonka 6.26) Today: Finding lines and circles using the Hough transform (Sonka 6.26) Please fill out Angel evaluation of Sunset partner if you had one. Use "Term Project Partner Evaluation" Please fill out Angel evaluation of Sunset partner if you had one. Use "Term Project Partner Evaluation" Tomorrow: Applications of PCA Tomorrow: Applications of PCA Weds: k-means lab due. Weds: k-means lab due. Sunday night: project plans and preliminary work due Sunday night: project plans and preliminary work due Questions? Questions?

2 Finding lines in real images Input: set of edge points Input: set of edge points Output: the equation of a line containing them Output: the equation of a line containing them Methods: Methods: Least-squares (if you know which points belong to the line…) Hough transform (today)

3 Hough transform Idea (Sonka 6.2.6; Forsyth and Ponce, ch 15) : Idea (Sonka 6.2.6; Forsyth and Ponce, ch 15) : Represent a line using parameters Represent a line using parameters Each edge point in the image casts a vote for all lines of which it could be part. Each edge point in the image casts a vote for all lines of which it could be part. Only the true line receives lots of votes Only the true line receives lots of votes

4 Parametric Equation of a Line Represent a line using 2 parameters Represent a line using 2 parameters y = mx + b? y = mx + b? Problem? Problem? Ax + By + C = 0? Ax + By + C = 0? 3 parameters; but A, B, and C are related…we only need 2 3 parameters; but A, B, and C are related…we only need 2  and   and   is distance from line to origin  is distance from line to origin  is the angle the distance segment makes with x- axis  is the angle the distance segment makes with x- axis x cos  + y sin  =  x cos  + y sin  =  Q1

5 Voting Each point in image votes for all lines of which it could be part. Each point in image votes for all lines of which it could be part. Only “true” line receives lots of votes. Only “true” line receives lots of votes. Quiz question: show (4,4), (2,2), and (0,0) voting for a line in y = mx+b space (for simplicity) Quiz question: show (4,4), (2,2), and (0,0) voting for a line in y = mx+b space (for simplicity) Q2-3

6 Perfect line Notice sharp peak in voting space Notice sharp peak in voting space (next 3 images from Forsyth and Ponce, ch 15) (next 3 images from Forsyth and Ponce, ch 15) Q4

7 Approximate line Notice the broader peak. Can we detect it? Notice the broader peak. Can we detect it? Could smooth or use a coarser quantization? Could smooth or use a coarser quantization? Accumulator array: bin size? Range? Accumulator array: bin size? Range? Q5

8 Random noise Votes spead all over the place: no line Votes spead all over the place: no line Too much noise creates “phantom lines” Too much noise creates “phantom lines” Smoothing can sometimes help Smoothing can sometimes help Q6

9 Limitations Finding the right grid size in parameter space may be tricky Finding the right grid size in parameter space may be tricky Trial and error Trial and error

10 Matlab Run an edge detector first to find points that are voting [H, theta, rho] = hough(edgeImg); peaks = houghpeaks(H,nPeaks); This works for lines only

11 Another demo http://www.rob.cs.tu-bs.de/content/04- teaching/06-interactive/HNF.html

12 Generalizations Finding circles with fixed radius… Finding circles with fixed radius… Finding circles with arbitrary radius… Finding circles with arbitrary radius… Finding line segments Finding line segments Finding arbitrary shapes… Finding arbitrary shapes… Ballard, Dana. 1981. Generalizing the Hough transform to detect arbitrary shapes. Pattern Recognition, 13(2):111-122. Ballard, Dana. 1981. Generalizing the Hough transform to detect arbitrary shapes. Pattern Recognition, 13(2):111-122. Dana was a long-time member of Rochester’s computer vision group. Dana was a long-time member of Rochester’s computer vision group. Q7-8

13 My Circle Finder Demo Demo Wouldn’t this be a great lab? Wouldn’t this be a great lab? Like Matlab’s hough and houghpeaks (for lines), but from scratch Like Matlab’s hough and houghpeaks (for lines), but from scratch Easier would be to find circles of fixed radius Easier would be to find circles of fixed radius

14 Reducing the number of votes Use the edge gradient information as well Use the edge gradient information as well Only need to cast votes for centers along the gradient Only need to cast votes for centers along the gradient I’ve done this; it works really well I’ve done this; it works really well Use partial curves. If you had a way of grouping relating points, you could use curvature. Use partial curves. If you had a way of grouping relating points, you could use curvature. Haven’t done yet. Haven’t done yet.

15 Circle finder assignment Like Matlab’s hough and houghpeaks (for lines), but from scratch Like Matlab’s hough and houghpeaks (for lines), but from scratch To help: To help: Can opt to find circles of fixed radius (but I’ll hold you to higher standard of accuracy) Can opt to find circles of fixed radius (but I’ll hold you to higher standard of accuracy) I’ve posted my Lab 2 sobel edge finder I’ve posted my Lab 2 sobel edge finder


Download ppt "CSSE463: Image Recognition Day 25 This week This week Today: Finding lines and circles using the Hough transform (Sonka 6.26) Today: Finding lines and."

Similar presentations


Ads by Google