Bird
Raised Fist0
Computer Visionml~8 mins

Edge detection (Canny) in Computer Vision - Model Metrics & Evaluation

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Metrics & Evaluation - Edge detection (Canny)
Which metric matters for Edge detection (Canny) and WHY

For edge detection, the key metrics are Precision and Recall. Precision tells us how many detected edges are actually true edges, avoiding false edges. Recall tells us how many true edges were found, avoiding missed edges. Since edge detection is about finding boundaries accurately, both matter to balance sharpness and completeness.

Confusion matrix for Edge detection (Canny)
      | Predicted Edge      | Predicted No Edge   |
      |---------------------|---------------------|
      | True Positive  (TP)  | False Negative (FN)  |
      | False Positive (FP)  | True Negative  (TN)  |

      TP: Pixels correctly detected as edges
      FP: Pixels wrongly detected as edges
      FN: Pixels missed as edges
      TN: Pixels correctly detected as no edge
    
Precision vs Recall tradeoff with examples

If you set Canny thresholds too high, you get high precision but low recall. This means edges found are mostly correct but many edges are missed. Good for clean images where false edges confuse.

If thresholds are too low, you get high recall but low precision. Many edges are found but many are false. Good if missing edges is worse than extra noise.

Example: For medical images, missing edges (low recall) can hide important details, so recall is more important. For artistic filters, precision may matter more to avoid noisy edges.

What good vs bad metric values look like for Edge detection

Good: Precision and recall both above 0.8 means edges are mostly correct and most true edges are found.

Bad: Precision below 0.5 means many false edges. Recall below 0.5 means many edges missed. Either hurts the usefulness of edge detection.

Common pitfalls in edge detection metrics
  • Accuracy paradox: Most pixels are non-edge, so accuracy can be high even if edges are poorly detected.
  • Data leakage: Using test images similar to training or tuning thresholds on test data inflates metrics.
  • Overfitting: Tuning Canny thresholds too tightly on one image type may fail on others.
  • Ignoring context: Edges in noisy areas may be false positives; metrics alone don't capture visual quality.
Self-check question

Your edge detection model has 98% accuracy but 12% recall on true edges. Is it good for production? Why or why not?

Answer: No, it is not good. The high accuracy is misleading because most pixels are non-edge. The very low recall means most true edges are missed, so the model fails to find important edges.

Key Result
Precision and recall are key to evaluate Canny edge detection, balancing correct edge detection and missed edges.

Practice

(1/5)
1. What is the main purpose of the Canny edge detection algorithm in computer vision?
easy
A. To resize images without losing quality
B. To colorize black and white images
C. To blur an image for noise reduction
D. To find clear edges in an image by detecting boundaries

Solution

  1. Step 1: Understand the goal of edge detection

    Edge detection aims to find where objects start and end by detecting sharp changes in brightness.
  2. Step 2: Recognize Canny's role

    Canny edge detection specifically finds clear edges by using gradients and thresholds to highlight boundaries.
  3. Final Answer:

    To find clear edges in an image by detecting boundaries -> Option D
  4. Quick Check:

    Edge detection = finding boundaries [OK]
Hint: Edges show object borders clearly in images [OK]
Common Mistakes:
  • Confusing edge detection with image coloring
  • Thinking Canny blurs images
  • Assuming it resizes images
2. Which of the following is the correct way to call the Canny edge detector function in OpenCV (Python)?
easy
A. cv2.Canny(image, threshold1, threshold2)
B. cv2.canny(image, threshold1, threshold2)
C. cv2.Canny(image, threshold2, threshold1)
D. cv2.Canny(image)

Solution

  1. Step 1: Recall OpenCV function naming

    OpenCV functions are case-sensitive; the correct function is Canny with uppercase C.
  2. Step 2: Check required parameters

    The function requires the image and two threshold values in order: low threshold first, then high threshold.
  3. Final Answer:

    cv2.Canny(image, threshold1, threshold2) -> Option A
  4. Quick Check:

    Correct function name and parameter order = A [OK]
Hint: Function names are case-sensitive; check parameter order [OK]
Common Mistakes:
  • Using lowercase 'canny' instead of 'Canny'
  • Swapping threshold1 and threshold2
  • Omitting required threshold parameters
3. Given the following Python code snippet using OpenCV, what will be the shape of the output image after applying Canny edge detection?
import cv2
image = cv2.imread('photo.jpg')
edges = cv2.Canny(image, 100, 200)
print(edges.shape)
medium
A. (height, width)
B. (height, width, 3)
C. (width, height)
D. (height, width, 1)

Solution

  1. Step 1: Understand input image shape

    Original image read by cv2.imread is usually (height, width, 3) for color images.
  2. Step 2: Check output of cv2.Canny

    Canny outputs a single-channel (grayscale) edge map, so shape is (height, width) without color channels.
  3. Final Answer:

    (height, width) -> Option A
  4. Quick Check:

    Canny output is grayscale edges = (height, width) [OK]
Hint: Canny output is single-channel grayscale image [OK]
Common Mistakes:
  • Assuming output keeps 3 color channels
  • Confusing width and height order
  • Expecting a 3D shape for edges
4. You run Canny edge detection with thresholds 50 and 150 but get too many noisy edges. Which fix below correctly reduces noise in the output?
medium
A. Use a color image instead of grayscale
B. Decrease both thresholds to lower values
C. Increase both thresholds to higher values
D. Remove Gaussian blur before Canny

Solution

  1. Step 1: Understand threshold effect on noise

    Lower thresholds detect more edges including noise; higher thresholds reduce noise by ignoring weak edges.
  2. Step 2: Choose correct adjustment

    Increasing thresholds filters out weak noisy edges, improving edge quality.
  3. Final Answer:

    Increase both thresholds to higher values -> Option C
  4. Quick Check:

    Higher thresholds reduce noise in edges [OK]
Hint: Higher thresholds filter out weak noisy edges [OK]
Common Mistakes:
  • Lowering thresholds increases noise
  • Using color images directly confuses Canny
  • Skipping blur preprocessing increases noise
5. You want to detect edges on a noisy grayscale image using Canny. Which sequence of steps will best improve edge detection results?
hard
A. Apply median blur, then Canny with low thresholds, then erode edges
B. Apply Gaussian blur, then Canny with tuned thresholds, then dilate edges
C. Apply Canny directly with default thresholds, then convert to color
D. Resize image larger, then apply Canny with high thresholds, then invert edges

Solution

  1. Step 1: Preprocess noisy image with Gaussian blur

    Gaussian blur smooths noise while preserving edges, improving Canny input.
  2. Step 2: Apply Canny with tuned thresholds

    Adjust thresholds to balance edge detection and noise filtering.
  3. Step 3: Use dilation to strengthen edges

    Dilation thickens edges, making them clearer for further processing.
  4. Final Answer:

    Apply Gaussian blur, then Canny with tuned thresholds, then dilate edges -> Option B
  5. Quick Check:

    Blur + tuned thresholds + dilation = best edge detection [OK]
Hint: Blur first, tune thresholds, then enhance edges [OK]
Common Mistakes:
  • Using low thresholds increases noise
  • Skipping blur causes noisy edges
  • Converting to color after Canny is useless