1 / 37

Straight Lines and Hough

Project 1. A few project highlightsCommon mistakesGaussian pyramid stores blurred images.Laplacian pyramid doesn't have all the information needed for correct reconstruction.Absolute paths in source code or htmlMany of the results not very convincing because high and low frequencies are too different.

carissa
Download Presentation

Straight Lines and Hough

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. Straight Lines and Hough Computer Vision CS 143, Brown James Hays

    2. Project 1 A few project highlights Common mistakes Gaussian pyramid stores blurred images. Laplacian pyramid doesn’t have all the information needed for correct reconstruction. Absolute paths in source code or html Many of the results not very convincing because high and low frequencies are too different

    3. Project 2 Questions?

    4. Canny edge detector Filter image with x, y derivatives of Gaussian Find magnitude and orientation of gradient Non-maximum suppression: Thin multi-pixel wide “ridges” down to single pixel width Thresholding and linking (hysteresis): Define two thresholds: low and high Use the high threshold to start edge curves and the low threshold to continue them MATLAB: edge(image, ‘canny’)

    5. Finding straight lines One solution: try many possible lines and see how many points each line passes through Hough transform provides a fast way to do this

    6. Outline of Hough Transform Create a grid of parameter values Each point votes for a set of parameters, incrementing those values in grid Find maximum or local maxima in grid

    7. Finding lines using Hough transform Using m,b parameterization Using r, theta parameterization Using oriented gradients Practical considerations Bin size Smoothing Finding multiple lines Finding line segments

    8. Hough transform An early type of voting scheme General outline: Discretize parameter space into bins For each feature point in the image, put a vote in every bin in the parameter space that could have generated this point Find bins that have the most votes

    9. Parameter space representation A line in the image corresponds to a point in Hough space

    10. Parameter space representation What does a point (x0, y0) in the image space map to in the Hough space?

    11. Parameter space representation What does a point (x0, y0) in the image space map to in the Hough space? Answer: the solutions of b = –x0m + y0 This is a line in Hough space

    12. Parameter space representation Where is the line that contains both (x0, y0) and (x1, y1)?

    13. Parameter space representation Where is the line that contains both (x0, y0) and (x1, y1)? It is the intersection of the lines b = –x0m + y0 and b = –x1m + y1

    14. Problems with the (m,b) space: Unbounded parameter domain Vertical lines require infinite m Parameter space representation

    15. Problems with the (m,b) space: Unbounded parameter domain Vertical lines require infinite m Alternative: polar representation Parameter space representation

    16. Algorithm outline Initialize accumulator H to all zeros For each edge point (x,y) in the image For ? = 0 to 180 ? = x cos ? + y sin ? H(?, ?) = H(?, ?) + 1 end end Find the value(s) of (?, ?) where H(?, ?) is a local maximum The detected line in the image is given by ? = x cos ? + y sin ?

    17. Basic illustration Figure 15.1, top half. Note that most points in the vote array are very dark, because they get only one vote.Figure 15.1, top half. Note that most points in the vote array are very dark, because they get only one vote.

    18. Other shapes

    19. Several lines

    20. A more complicated image

    21. Effect of noise This is 15.1 lower halfThis is 15.1 lower half

    22. Effect of noise Peak gets fuzzy and hard to locate This is 15.1 lower halfThis is 15.1 lower half

    23. Effect of noise Number of votes for a line of 20 points with increasing noise: This is the number of votes that the real line of 20 points gets with increasing noise (figure15.3)This is the number of votes that the real line of 20 points gets with increasing noise (figure15.3)

    24. Random points Uniform noise can lead to spurious peaks in the array 15.2; main point is that lots of noise can lead to large peaks in the array15.2; main point is that lots of noise can lead to large peaks in the array

    25. Random points As the level of uniform noise increases, the maximum number of votes increases too: Figure 15.4; as the noise increases in a picture without a line, the number of points in the max cell goes up, tooFigure 15.4; as the noise increases in a picture without a line, the number of points in the max cell goes up, too

    26. Dealing with noise Choose a good grid / discretization Too coarse: large votes obtained when too many different lines correspond to a single bucket Too fine: miss lines because some points that are not exactly collinear cast votes for different buckets Increment neighboring bins (smoothing in accumulator array) Try to get rid of irrelevant features Take only edge points with significant gradient magnitude

    27. Incorporating image gradients Recall: when we detect an edge point, we also know its gradient direction But this means that the line is uniquely determined! Modified Hough transform: For each edge point (x,y) ? = gradient orientation at (x,y) ? = x cos ? + y sin ? H(?, ?) = H(?, ?) + 1 end

    28. Hough transform for circles How many dimensions will the parameter space have? Given an oriented edge point, what are all possible bins that it can vote for?

    29. Hough transform for circles

    30. Hough transform for circles Conceptually equivalent procedure: for each (x,y,r), draw the corresponding circle in the image and compute its “support”

    31. Finding straight lines Another solution: get connected components of pixels and check for straightness

    32. Finding line segments using connected components Compute canny edges Compute: gx, gy (DoG in x,y directions) Compute: theta = atan(gy / gx) Assign each edge to one of 8 directions For each direction d, get edgelets: find connected components for edge pixels with directions in {d-1, d, d+1} Compute straightness and theta of edgelets using eig of x,y 2nd moment matrix of their points Threshold on straightness, store segment

    33. 1. Image ? Canny

    34. 2. Canny lines ? … ?straight edges

    35. Comparison

    36. Things to remember Canny edge detector = smooth ? derivative ? thin ? threshold ? link Generalized Hough transform = points vote for shape parameters Straight line detector = canny + gradient orientations ? orientation binning ? linking ? check for straightness

    37. Next classes Generalized Hough Transform Fitting and Registration EM (mixture models)

    38. Questions

More Related