1 / 23

3-D Computational Vision CSc 83020

This paper explores the Canny edge detection algorithm and investigates methods to optimize its performance by minimizing false positives and false negatives, improving edge localization, and deriving an optimal detector. The steps involved include CANNY_ENHANCER, NONMAX_SUPPRESSION, and HYSTERESIS_THRESHOLDING. The tradeoff between localization and detection is discussed, along with the usage of optimal 1-D step edge detectors. The paper also addresses the issues with gradient magnitude and presents solutions for detecting thin edges. Edge relaxation parallel is utilized to adjust edge values based on neighboring edges. Experimental results demonstrate the effectiveness of the proposed methods.

steveny
Download Presentation

3-D Computational Vision CSc 83020

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. 3-D Computational VisionCSc 83020 Canny Edge Detection

  2. Canny Edge Detection • Can we derive an optimal detector? • Good Detection: minimize false positives and false negatives. • Good Localization: close as possible to the true edges. • Single Response Constraint: one edge should be detected for each true edge

  3. Canny Edge Detection • 3 STEPS: • CANNY_ENHANCER • NONMAX_SUPPRESION • HYSTERESIS_THRESH

  4. Localization-Detection Tradeoff • Filter’s spatial scale • Location & • Detection criteria. • Optimal 1-D step edge detector! • Approximated by the 1st derivative of the Gaussian.

  5. From Jana Kosecka Gaussian and its derivative

  6. From Jana Kosecka Vertical edges First derivative

  7. From Jana Kosecka Gradient Magnitude Horizontal edges • Image Gradient

  8. From Jana Kosecka Gradient Orientation

  9. Optimal 1-D step edge detectors… Pixel (i,j) Keep the one that gives you maximum response. Expensive.

  10. Solution… y x Pixel (i,j) Compute derivatives with respect to x & y directions. Compute edge normal.

  11. CANNY_ENHANCER • Compute Ix and Iy the gradient of the image using a derivative of Gaussian filter. • Compute the edge strength from the magnitude of the gradient: Es • Compute the orientation of the edge from arctan(Iy / Ix ): Eo [Canny ’86] n

  12. Problem with detector gradient magnitude (Es) original image • Compute image derivatives • if gradient magnitude >  and the value is a local max. along gradient • direction – pixel is an edge candidate • how to detect one pixel thin edges ?

  13. Th Problem with detector • The magnitude image Es has the magnitudes of the smoothed gradient. • Sigma determines the amount of smoothing. • Es has large values at edges: • Find local maxima

  14. Nonmaximum supression • The inputs are Es& Eo Magnitude and orientation • Consider 4 directions D={0,45,90,135} wrt x • For each pixel (i,j) do: • Find the direction dD s.t. d Eo(i,j) (normal to the edge) • If {Es(i,j) is smaller than at least one of its neigh. along d} • IN(i,j)=0 • Otherwise, IN(i,j)= Es(i,j) • The output is the thinned edge image IN x x

  15. Thresholding • Edges are found by thresholding the output of NONMAX_SUPRESSION • If the threshold is too high: • Very few (none) edges • High MISDETECTIONS, many gaps • If the threshold is too low: • Too many (all pixels) edges • High FALSE POSITIVES, many extra edges

  16. Edge Detection With Hysteresis Low threshold High threshold Hysteresis (high and low threshold)

  17. Weak edges Strong edge Edge Tracking Hysteresis thresholding [Canny ’86] edges Strong edges reinforce weak edges. Weak edge removed We call a pixel an edge if it is strong. We also call a pixel an edge if it is weak but is connected to an edge. A pixel is connected to an edge if it is in a direction perpendicular to the edge normal

  18. Es(i,j)>L Es(i,j)<H Es(i,j)> H Es(i,j)<L Es(i,j)>L Hysteresis Thresholding Strong edges reinforce adjacent weak edges

  19. HYSTERESIS_THRESH • Input: In, Eo, high threshold, low threshold. • Output: Lists of connected edges (contours).

  20. Edge Relaxation Parallel – iterative method to adjust edge values on the basis of neighboring edges Crack edges:

  21. Edge Relaxation Parallel – iterative method to adjust edge values on the basis of neighboring edges Notation: Crack edges: Edge to be updated Edge No edge Vertex types: (0) (1) (2) (3)

  22. Action table for edge type: Decrease Increase Unchanged 0-0 1-1 0-1 0-2 1-2 2-2 0-3 1-3 2-3 3-3 Edge Relaxation Parallel – iterative method to adjust edge values on the basis of neighboring edges Notation: Crack edges: Edge to be updated Edge No edge Vertex types: (0) (1) (2) (3)

  23. Action table for edge type: Decrease Increase Unchanged 0-0 1-1 0-1 0-2 1-2 2-2 0-3 1-3 2-3 3-3 Edge Relaxation Parallel – iterative method to adjust edge values on the basis of neighboring edges Notation: Crack edges: Algorithm: Edge to be updated Edge • 0. Compute initial confidence C0(e) of • each edge e • C0(e) = • k = 1 • Compute edge type for all e • Modify Ck(e) based on Ck-1(e) and • edge type. • If all Ck(e) have converged to 1 or 0 • else go to step 1 No edge Vertex types: (0) (1) (2) (3)

More Related