Fuzzy Logic Edge Detection – CSE 6369 - Reasoning with Uncertainty



Fuzzy Logic Edge Detection – CSE 6369 - Reasoning with Uncertainty

0 0


fuzzy-edge


On Github kanaka / fuzzy-edge

Fuzzy Logic Edge Detection

CSE 6369 - Reasoning with Uncertainty

Joel Martin

Dec 8, 2015

"A New Fuzzy Approach for Edge Detection"

Yasar Becerikli and Tayfun M. Karan

Proceedings of the 8th International Workshop on Artificial Neural Networks, IWANN 2005

PDF

Background: Fuzzy Logic Models

  • Mamdani
    • Crisp output value using defuzzification
    • More intuitive and human meaningful
  • Sugeno (Takagi-Sugeno-Kang)
    • Crisp output value using weighted averages
    • Less intuitive but more efficient (no output membership functions)
  • The fuzzy logic model we focused on in class was the Mamdani model: uses defuzzification to turn fuzzy output set into crips output value.
  • Sugeno model uses weighted averages to get directly to a crisp output value.
  • Mamdani is more human intuitive, but Sugeno is more computationally efficient.

Background: Edge Detection

  • Core component of most image and video analysis algorithms especially feature dectection and extraction.
  • Edge: Boundary or abrupt change in an image. Points (line segment) where image brightness changes sharply.
  • Commonly a 3x3 kernel is convolved with the source image to produce a image representing detected edges.
  • Convolution: apply a kernel to every pixel in source image to create a new image.

Image Example

0.1 0.2 0.1 0.8 0.8 0.2 0.3 0.2 0.1 0.8 0.7 0.1 0.3 0.2 0.8 0.7 0.8 0.1 0.3 0.2 0.7 0.8 0.9 0.2
  • Greyscale image with each pixel having a value of 0 for black to 1 for white.

Edge Detection: Sobel Kernel

  • Horizontal: -1 -2 -1 0 0 0 1 2 1
  • Vertical: -1 0 1 -2 0 2 -1 0 1

Edge Detection: Prewitt Kernel

  • Horizontal: -1 -1 -1 0 0 0 1 1 1
  • Vertical: -1 0 1 -1 0 1 -1 0 1
    • Many other kernels for edge detection (like Laplacian) and other purposes like image smoothing, etc.

Vertical Prewitt Mask Example

0.1 0.2 * -1 0.1 * 0 0.8 * 1 0.8 0.2 0.3 0.2 * -1 0.1 * 0 0.8 * 1 0.7 0.1 0.3 0.2 * -1 0.8 * 0 0.7 * 1 0.8 0.1 0.3 0.2 0.7 0.8 0.9 0.2

0.2*-1 + 0.2*-1 + 0.2*-1+ 0.8*1 + 0.8*1 + 0.8*1 = 1.7

Vertical Prewitt Mask Example

0.4 -0.2 1.2 1.3 -1.3 -1.5 0.6 0.2 1.7 1.3 -1.9 -2.3 0.6 0.7 1.7 0.8 -1.9 -2.4 0.4 0.9 1.1 0.2 -1.2 -1.7

Left edge threshold: ≥ 1.0

Right edge threshold: ≤ -1.0

  • Same done with horizontal kernel, and the values are summed together for a general edge or gradient value.

Gradients in Each Direction

Assign labels to 3x3 grid:

z1 z2 z3 z4 z5 z6 z7 z8 z9

Calculate gradients:

  • ∇D1 = (z5 − z1)2 + (z9 − z5)2 (NW/SE Diagonal)
  • ∇D2 = (z5 − z2)2 + (z8 − z5)2 (Vertical)
  • ∇D3 = (z5 − z3)2 + (z7 − z5)2 (NE/SW Diagonal)
  • ∇D4 = (z5 − z4)2 + (z6 − z5)2 (Horizontal)
  • Now let's move from traditional edge detection to using fuzzy logic.
  • z5-z1 and z9-z5 is NW/SE diagonal gradient
  • First...

Gradients in Each Direction

Approximation with absolute values (for efficiency):

  • ∇D1 = |z5 − z1| + |z9 − z5| (NW/SE Diagonal)
  • ∇D2 = |z5 − z2| + |z8 − z5| (Vertical)
  • ∇D3 = |z5 − z3| + |z7 − z5| (NE/SW Diagonal)
  • ∇D4 = |z5 − z4| + |z6 − z5| (Horizontal)
  • Add absolute values instead of squares

Fuzzy Logic Rules

  • K values can be modified to affect edge detection

Fuzzy Membership Sets

  • fuzzy sets for gradient
  • VL - very low, LO - low, MD - medium, HI - high, VH - very high

Directional Components

  • For each angle a weighted average value is calculated across each gradient rule.

Final Edge Value

y = y̅1 + y̅2 + y̅3 + y̅4

  • Every angle value is summed to create the general gradient or edge value.

Results / Comparison

Original Prewitt Fuzzy

Conclusion

  • Similar quality and computation efficiency to traditional convolution edge detection methods.
  • Added flexibility compared to traditional convolution methods.
  • Simple to implement (understandable)

Questions?

These notes: http://kanaka.github.io/fuzzy-edge

Fuzzy Logic Edge Detection CSE 6369 - Reasoning with Uncertainty Joel Martin Dec 8, 2015