Project 1 - Edgel detector.

       

Posted on Wed, Feb. 27. The project must be submitted to the Teaching Assistant by Friday March  08. The project must be submitted by electronic mail to the class account ya42601. You must submit a readme file, your source files, and processed images. You must tar your multiple files into a single file named p1.tar.

Overview.

The goal of this project is to implement your own edgel detector. Basically, your program should smooth the image using a filter  (e.g. Gaussian) and detect the edgels with a difference operator (e.g. Sobel). Actually, the project involves the use of one filter and a set of difference operators. You must test your edgel detector in the three provided images: a  city map , a  face  and  building . The different strategies you use to detect edgels must be compared concerning false negatives and false positives criteria. A false negative is a rejection of a correct hypothesis (an actual edge not detected) while a false positive is the acceptance of an incorrect hypothesis (a detection that does not represent an actual edge). The identification of actual edges is application domain dependent. Therefore, it is up to you the classification of the correct edges. The grader will have some discretion concerning this topic. Results and comparisons must be described in your report, where you should point out the bests filter scale-operator-threshold triples for each application domain.  You may use any programming environment provided in the dc cluster (OIT) account. You are strongly encouraged to expand the main guidelines of this projects concerning the filters and operators suggested for this task.

Introduction.

An edge is an image contour across which the brightness of the image changes abruptly in magnitude or in the rate of change of magnitude. Possible causes for an intensity edge are surface-normal discontinuities, depth discontinuities, surface-reflectance discontinuities, and illumination discontinuities. A detection process consists basically in three steps: detection of short linear edge segments (edgels), aggregation of edgels into extended edges (lines, circles, curves), and parametric description of the edges (algebraic functions). This project concerns only the first step, where you will use difference operators.

Edgel Detection Process.

The edgels detection process (first step) consists in smoothing the image, apply a difference operator and perform thresholding.
Smoothing means to convolve the image with some local averaging filter that has all positive weights summing up to unit. The smoothing filter for this project is the two-dimensional Gaussian. You must smooth the images with at least three different standard deviations (scales) for the purpose of comparisons A difference operator is a mask matrix whose elements sum up to zero. The difference operators for this project are the Roberts' cross operator, Sobel operator, and Navatia-Babu operator. These operators are described below. The application of a difference operator consists in convolve the operators with a window of the image for each gradient direction (e.g. x and y). The gradient magnitude for each pixels will be the maximum among all directions. Thresholding means that a response of an difference operator is suppressed when this response lies below a certain value, called threshold. Another way to detect edges is identifying the gradient local maxima concerning the neighborhood for each pixel.

Smooth Filter and Difference Operators.

The Gaussian smooth filter is a matrix mask built according to the Gaussian function: G(x, y) = (1/(2pi*sigma^2))exp(-[x^2 + y^2]/(2 sigma^2)), where sigma is the standard deviation and exp represents the power by the natural constant. The center element of the matrix must correspond to (x, y) = (0, 0).

Roberts' cross operator ia a difference operator that uses two mask directions to compute the gradient at the center of a 2x2 window along the diagonals of the window. You may also incorporate constant multiplicative factors to the masks and you should mention that in your report. The Roberts' cross operator masks are:
 

0
1
-1
0

and


1
0
0
-1

Each Sobel operator mask provides the scaled average of either the image's horizontal or vertical directional derivative. The Sobel operators masks are:
 
 

-1
0
1
-2
0
2
-1
0
1

and


 1
-1 
-2 
-1 

The Navatia-Babu operator uses the magnitude of the largest response of (six) oriented templates applied at an image point. The orientation of a step edge is given by the orientation of the template that provides the largest response. The Navatia-Babu mask templates for six directions (0, 30, 60, 90, 120, 150 degrees) are:

-100
-100
0
100
100
-100
-100
0
100
100
-100
-100
0
100
100
-100
-100
0
100
100
-100
-100
0
100
100

and


 
-100
32
100
100
100
-100
-78
92
100
100
-100
-100
0
100
100
-100
-100
-92
78
100
-100
-100
-100
-32
100

and


 
100
100
100
100
100
-32
78
100
100
100
-100
-92
0
92
100
-100
-100
-100
-78
32
-100
-100
-100
-100
-100

and


 
100
100
100
100
100
100
100
100
100
100
0
0
0
0
0
-100
-100
-100
-100
-100
-100
-100
-100
-100
-100

and


 
100
100
100
100
100
100
100
100
78
-32
100
92
0
-92
-100
32
-78
-100
-100
-100
-100
-100
-100
-100
-100

and


 
100
100
100
32
-100
100
100
92
-78
-100
100
100
0
-100
-100
100
78
-92
-100
-100
100
-32
-100
-100
-100

Working in Advance.

The next step of an edge detector is the aggregation of edgels into edges represented by lines, circles or curves. Therefore, if you want to work in advance, you may implement a Hough Transform to identify line segments and circles in the image. The Hough Transform will be covered in class. Basically, the Hough transform maps each point/edgel onto the set of all possible parameter values for which the line/circle passes through the given point/edgel. Then, it finds the intersection of all the sets of parameters values that are mapped this way. See Nalwa (pg. 109-113).

Submission Files.

You must submit a readme file, named readme.txt. The readme file enumerates and describes all files in you tar file. The readme file should also contain a description of your implementations and a report where you discuss your results and comparisons between different strategies for edgel detection. The main variables guiding these comparisons are the scale for the Gaussian, the difference operator used, and a threshold. You may use one or more tables to show your result descriptions according to these variables. You must also submit your source files and processed images. All multiple files must be in a single tar file (p1.tar) and sent to ya42601.

References