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.
Edge detection (Canny) in Computer Vision - Model Metrics & Evaluation
Start learning this pattern below
Jump into concepts and practice - no test required
| 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
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.
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.
- 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.
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.
Practice
Canny edge detection algorithm in computer vision?Solution
Step 1: Understand the goal of edge detection
Edge detection aims to find where objects start and end by detecting sharp changes in brightness.Step 2: Recognize Canny's role
Canny edge detection specifically finds clear edges by using gradients and thresholds to highlight boundaries.Final Answer:
To find clear edges in an image by detecting boundaries -> Option DQuick Check:
Edge detection = finding boundaries [OK]
- Confusing edge detection with image coloring
- Thinking Canny blurs images
- Assuming it resizes images
Solution
Step 1: Recall OpenCV function naming
OpenCV functions are case-sensitive; the correct function isCannywith uppercase C.Step 2: Check required parameters
The function requires the image and two threshold values in order: low threshold first, then high threshold.Final Answer:
cv2.Canny(image, threshold1, threshold2) -> Option AQuick Check:
Correct function name and parameter order = A [OK]
- Using lowercase 'canny' instead of 'Canny'
- Swapping threshold1 and threshold2
- Omitting required threshold parameters
import cv2
image = cv2.imread('photo.jpg')
edges = cv2.Canny(image, 100, 200)
print(edges.shape)Solution
Step 1: Understand input image shape
Original image read by cv2.imread is usually (height, width, 3) for color images.Step 2: Check output of cv2.Canny
Canny outputs a single-channel (grayscale) edge map, so shape is (height, width) without color channels.Final Answer:
(height, width) -> Option AQuick Check:
Canny output is grayscale edges = (height, width) [OK]
- Assuming output keeps 3 color channels
- Confusing width and height order
- Expecting a 3D shape for edges
Solution
Step 1: Understand threshold effect on noise
Lower thresholds detect more edges including noise; higher thresholds reduce noise by ignoring weak edges.Step 2: Choose correct adjustment
Increasing thresholds filters out weak noisy edges, improving edge quality.Final Answer:
Increase both thresholds to higher values -> Option CQuick Check:
Higher thresholds reduce noise in edges [OK]
- Lowering thresholds increases noise
- Using color images directly confuses Canny
- Skipping blur preprocessing increases noise
Solution
Step 1: Preprocess noisy image with Gaussian blur
Gaussian blur smooths noise while preserving edges, improving Canny input.Step 2: Apply Canny with tuned thresholds
Adjust thresholds to balance edge detection and noise filtering.Step 3: Use dilation to strengthen edges
Dilation thickens edges, making them clearer for further processing.Final Answer:
Apply Gaussian blur, then Canny with tuned thresholds, then dilate edges -> Option BQuick Check:
Blur + tuned thresholds + dilation = best edge detection [OK]
- Using low thresholds increases noise
- Skipping blur causes noisy edges
- Converting to color after Canny is useless
