Bird
Raised Fist0
Computer Visionml~20 mins

Segmentation evaluation (IoU, Dice) in Computer Vision - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Segmentation Metrics Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Calculate IoU for two binary masks
Given two binary masks representing segmentation results, what is the output of the following code calculating the Intersection over Union (IoU)?
Computer Vision
import numpy as np
mask1 = np.array([[1, 0, 1], [0, 1, 0], [1, 0, 0]])
mask2 = np.array([[1, 1, 0], [0, 1, 0], [1, 0, 1]])
intersection = np.logical_and(mask1, mask2).sum()
union = np.logical_or(mask1, mask2).sum()
iou = intersection / union
print(round(iou, 2))
A0.43
B0.50
C0.57
D0.67
Attempts:
2 left
💡 Hint
Count how many pixels overlap and how many pixels are in either mask.
🧠 Conceptual
intermediate
1:30remaining
Understanding Dice coefficient properties
Which of the following statements about the Dice coefficient is TRUE?
ADice coefficient can be negative if masks have no overlap.
BDice coefficient measures the difference between masks, not overlap.
CDice coefficient is always smaller than IoU for the same masks.
DDice coefficient equals 1 when two masks are identical.
Attempts:
2 left
💡 Hint
Think about what perfect overlap means for Dice.
❓ Metrics
advanced
1:30remaining
Calculate Dice coefficient from confusion matrix values
Given true positives (TP)=30, false positives (FP)=10, and false negatives (FN)=20, what is the Dice coefficient?
A0.67
B0.60
C0.75
D0.80
Attempts:
2 left
💡 Hint
Dice = 2 * TP / (2 * TP + FP + FN)
🔧 Debug
advanced
2:00remaining
Identify the error in IoU calculation code
What error does the following code produce when calculating IoU for two numpy arrays mask1 and mask2?
Computer Vision
intersection = (mask1 & mask2).sum()
union = (mask1 | mask2).sum()
iou = intersection / union
print(iou)
AZeroDivisionError if union is zero
BValueError due to shape mismatch of mask1 and mask2
CTypeError because bitwise operators cannot be used on numpy arrays
DNo error, code runs correctly and prints IoU
Attempts:
2 left
💡 Hint
Consider what happens if both masks are empty.
❓ Model Choice
expert
2:30remaining
Choosing the best metric for imbalanced segmentation
You have a segmentation task where the object occupies only 1% of the image pixels. Which metric is most reliable to evaluate your model's performance?
AIoU, because it balances false positives and false negatives
BAccuracy, because it measures overall pixel correctness
CDice coefficient, because it is sensitive to small object overlap
DMean Squared Error, because it measures pixel intensity differences
Attempts:
2 left
💡 Hint
Think about which metric handles small object sizes better.

Practice

(1/5)
1. What does the Intersection over Union (IoU) metric measure in image segmentation?
easy
A. The overlap between predicted and true masks divided by their union
B. The difference between predicted and true masks
C. The total number of pixels in the predicted mask
D. The ratio of true positives to false negatives

Solution

  1. Step 1: Understand IoU definition

    IoU measures how much the predicted mask and true mask overlap compared to their combined area.
  2. Step 2: Apply IoU formula

    IoU = (Area of Overlap) / (Area of Union) between predicted and true masks.
  3. Final Answer:

    The overlap between predicted and true masks divided by their union -> Option A
  4. Quick Check:

    IoU = Overlap / Union [OK]
Hint: IoU = Overlap divided by combined area [OK]
Common Mistakes:
  • Confusing IoU with difference or subtraction
  • Using only predicted mask area
  • Mixing IoU with accuracy or precision
2. Which of the following is the correct formula for Dice coefficient between predicted mask P and true mask T?
easy
A. Dice = |P| / |T|
B. Dice = (2 * |P ∩ T|) / (|P| + |T|)
C. Dice = |P ∪ T| / (|P| + |T|)
D. Dice = |P ∩ T| / |P ∪ T|

Solution

  1. Step 1: Recall Dice coefficient formula

    Dice coefficient is defined as twice the overlap divided by the sum of sizes of predicted and true masks.
  2. Step 2: Match formula to options

    Dice = (2 * |P ∩ T|) / (|P| + |T|) matches Dice = (2 * intersection) / (sum of areas).
  3. Final Answer:

    Dice = (2 * |P ∩ T|) / (|P| + |T|) -> Option B
  4. Quick Check:

    Dice = 2*Overlap / (Sum areas) [OK]
Hint: Dice doubles overlap, divides by sum of mask sizes [OK]
Common Mistakes:
  • Confusing Dice with IoU formula
  • Using union instead of sum of areas
  • Forgetting to multiply overlap by 2
3. Given predicted mask pixels: {1,2,3,4} and true mask pixels: {3,4,5,6}, what is the IoU score?
medium
A. 0.33
B. 0.25
C. 0.5
D. 0.4

Solution

  1. Step 1: Calculate intersection and union

    Intersection = {3,4} size = 2; Union = {1,2,3,4,5,6} size = 6.
  2. Step 2: Compute IoU

    IoU = Intersection / Union = 2 / 6 = 0.3333 (approx). Check options carefully.
  3. Step 3: Re-check options

    0.33 is 0.33, closest to calculation. But 0.4 is 0.4, which is incorrect.
  4. Final Answer:

    0.33 -> Option A
  5. Quick Check:

    IoU = 2/6 = 0.33 [OK]
Hint: IoU = intersection size / union size [OK]
Common Mistakes:
  • Counting union incorrectly
  • Mixing intersection with union
  • Rounding IoU incorrectly
4. You have this Python code to compute Dice score but it returns 0. Identify the error:
def dice_score(pred, true):
    intersection = len(pred & true)
    return intersection / (len(pred) + len(true))

pred = {1,2,3}
true = {2,3,4}
print(dice_score(pred, true))
medium
A. Wrong variable names in function
B. Using set intersection instead of union
C. Incorrect data type for masks
D. Missing multiplication by 2 in numerator

Solution

  1. Step 1: Review Dice formula

    Dice = 2 * intersection / (sum of sizes). The code misses multiplying intersection by 2.
  2. Step 2: Check code calculation

    Code returns intersection / sum, which is half the correct Dice score.
  3. Final Answer:

    Missing multiplication by 2 in numerator -> Option D
  4. Quick Check:

    Dice needs 2*intersection [OK]
Hint: Dice numerator must be 2 times intersection [OK]
Common Mistakes:
  • Forgetting to multiply intersection by 2
  • Confusing intersection with union
  • Using wrong data types for masks
5. A segmentation model predicts a mask with 80 pixels, the true mask has 100 pixels, and their overlap is 60 pixels. What is the Dice score and IoU score respectively?
hard
A. Dice = 0.8, IoU = 0.7
B. Dice = 0.75, IoU = 0.6
C. Dice = 0.67, IoU = 0.5
D. Dice = 0.6, IoU = 0.75

Solution

  1. Step 1: Calculate Dice score

    Dice = 2 * overlap / (predicted + true) = 2*60 / (80+100) = 120/180 = 0.6667 (approx). Check options carefully.
  2. Step 2: Calculate IoU score

    IoU = overlap / union = 60 / (80 + 100 - 60) = 60 / 120 = 0.5.
  3. Step 3: Re-check options

    Dice = 0.67, IoU = 0.5 matches Dice ~0.67 and IoU 0.5 exactly.
  4. Final Answer:

    Dice = 0.67, IoU = 0.5 -> Option C
  5. Quick Check:

    Dice = 2*60/180=0.67, IoU=60/120=0.5 [OK]
Hint: Dice doubles overlap; IoU divides by union [OK]
Common Mistakes:
  • Using sum instead of union for IoU denominator
  • Forgetting to multiply overlap by 2 for Dice
  • Mixing Dice and IoU formulas
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard