Improving Canny's Edge Detector with Space-Variant Filters

Philip L. Tsai
tsailipu@cs.stanford.edu

  1. The problem:
    Linear, Gaussian filters are not the best image enhancers. The ever popular Canny's Edge Detector, as presented in class and in the textbook [1], assumes the use of a linear, Gaussian filter as its enhancer at the first stage of the algorithm. . However, objects in images subject to non-uniform illumination (e.g. parts of an object that are over-/under-exposed relative to the rest of an image) are likely to be poor targets for Canny's Detector, because the space-invariant, Gaussian filter that it uses cannot adapt to variations in image illumination and help deal with such contrast problem, therefore rendering a sub-optimal enhancement, acting as subpar inputs to subsequent stages of the algorithm. For such images, tweaking the three magic numbers (sigma, low and high) of Canny's Detector, though helpful, seems ad hoc. If the enhancement in Canny's Detector uses an adaptive, space-variant filter, perhaps one can reduce the frequency of having to tweak these three values while still obtain good results across a wider set of images.
  2. The Proposal:
    I plan to explore the use of a space-variant filter, possibly with some other image processing techniques, to improve the output images at the enhancement stage of Canny's Edge Detector algorithm. I expect that such enhancement will reduce noise and help minimize the number of false edges better than the linear, Gaussian filter, especially for images with non-uniform illumination in the scenes. As a result, I expect that such improved Canny's Edge Detector will perform better across a wider set of images. I will implement the filter in C and incorporate it into an existing implementation of Canny's Edge Detector written in C (grabbed from the web), taking gray-level images in PGM format (again, grabbed from the web) and producing gray-level edge strength images in PGM format (as described in the textbook [1]).
  3. The Schedule:
    Week of 02/08: Identify the possible candidate(s) for the space variant filter (In particular, look into in the feasibility of using a Cellular Neural Network falling-membrane filter [2]) -- sorry, one jargon here). Get and analyze a Canny's Edge Detector implemented in C from the web. Get a wide variety of images, especially those with non-uniform illumination in the scenes.
    Week of 02/15: Implement the space-variant filter and incorporate it into the first stage of Canny's Edge Detector. Try some additional image enhancement techniques (appropriate to use with this filter) at this stage to help further minimize noises and the number of false edges for later stages.
    Week of 02/22: Finish the implementation. Run it over the collected set of images and prepare the Project Review.
    The last two weeks of the quarter: Fine-tune the algorithm. Perform detailed analysis. Spend the majority of the time writing up the Final Report.

References:
[1] E. Trucco and A. Verri, Introductory Techniques for 3D Computer Vision, Prentice Hall (1998)
[2] K. R. Crounse, Image Processing Techniques for Cellular Neural Network Hardware, U.C. Berkeley, pp. 200-203 (1997)