Bird
Raised Fist0
Computer Visionml~8 mins

Cropping images 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 - Cropping images
Which metric matters for Cropping images and WHY

When cropping images for machine learning, the key metric is Intersection over Union (IoU). IoU measures how well the cropped area matches the target region of interest. It tells us how much the cropped image overlaps with the important part we want to keep. A higher IoU means the crop is more accurate and useful for training or prediction.

Other metrics like pixel accuracy or mean squared error can also help check if the cropped image preserves important features. But IoU is the most direct way to evaluate cropping quality.

Confusion matrix or equivalent visualization

For cropping, we don't use a confusion matrix like classification. Instead, we use a visual overlap measure:

    IoU = (Area of Overlap) / (Area of Union)

    Example:
    Target box area = 100 pixels
    Crop box area = 90 pixels
    Overlap area = 80 pixels

    IoU = 80 / (100 + 90 - 80) = 80 / 110 = 0.727
    

This means the crop covers about 73% of the target area, which is pretty good.

Precision vs Recall tradeoff with examples

In cropping, think of precision as how much of the cropped image is relevant (inside the target), and recall as how much of the target is captured by the crop.

  • High precision, low recall: Crop is tight and clean but misses parts of the target. Good for avoiding noise but may lose important info.
  • High recall, low precision: Crop covers all target but includes extra background. Good for not missing anything but adds noise.

Example: Cropping a face in a photo.

  • High precision, low recall: Crop only the nose and mouth, missing eyes.
  • High recall, low precision: Crop whole head plus some background.

Balance depends on task: face recognition prefers high recall, while face detection may prefer high precision.

What "good" vs "bad" metric values look like for cropping

Good cropping:

  • IoU > 0.7 means most of the target is captured with little extra.
  • Precision and recall both above 0.7 show balanced crop quality.
  • Visual check shows clear focus on the object without much background.

Bad cropping:

  • IoU < 0.4 means poor overlap, crop misses or includes too much.
  • Precision very low (< 0.5) means lots of irrelevant background.
  • Recall very low (< 0.5) means important parts are cut off.
  • Visual check shows blurry or incomplete objects.
Common pitfalls in cropping metrics
  • Ignoring context: Cropping too tightly may remove useful background cues.
  • Overfitting crops: Crops that work well on training images but fail on new images.
  • Data leakage: Using crops that reveal labels or annotations accidentally.
  • Using accuracy alone: Accuracy is not meaningful for cropping quality.
  • Not validating visually: Metrics can be misleading without checking images.
Self-check question

Your cropping model has a precision of 0.98 but recall of 0.12 on the target area. Is it good?

Answer: No, it is not good. The very high precision means the crop is very precise where it overlaps, but the very low recall means it covers only a tiny part of the target. So the crop misses most of the important area, which is bad for most tasks.

Key Result
Intersection over Union (IoU) is the key metric to evaluate how well the cropped image matches the target area.

Practice

(1/5)
1. What does cropping an image do in computer vision?
easy
A. Increases the image resolution
B. Changes the color of the entire image
C. Cuts out a part of the image using row and column ranges
D. Rotates the image by 90 degrees

Solution

  1. Step 1: Understand cropping concept

    Cropping means selecting a smaller part of the image by specifying rows and columns.
  2. Step 2: Compare options with definition

    Only Cuts out a part of the image using row and column ranges describes cutting out part of the image using row and column ranges.
  3. Final Answer:

    Cuts out a part of the image using row and column ranges -> Option C
  4. Quick Check:

    Cropping = cutting part of image [OK]
Hint: Cropping means cutting out part of the image [OK]
Common Mistakes:
  • Confusing cropping with resizing
  • Thinking cropping changes colors
  • Mixing cropping with rotation
2. Which of the following is the correct syntax to crop an image stored in variable img to rows 10 to 50 and columns 20 to 70 in Python?
easy
A. img[10:50, 20:70]
B. img[20:70, 10:50]
C. img[10:50][20:70]
D. img.crop(10,50,20,70)

Solution

  1. Step 1: Recall slicing syntax for images

    Images are sliced as img[row_start:row_end, col_start:col_end].
  2. Step 2: Match given ranges to syntax

    Rows 10 to 50 and columns 20 to 70 means img[10:50, 20:70].
  3. Final Answer:

    img[10:50, 20:70] -> Option A
  4. Quick Check:

    Rows first, columns second in slicing [OK]
Hint: Remember slicing is img[row_start:row_end, col_start:col_end] [OK]
Common Mistakes:
  • Swapping row and column indices
  • Using double brackets instead of comma
  • Using a non-existent crop method
3. Given the code:
import numpy as np
img = np.arange(100).reshape(10,10)
cropped = img[2:5, 3:7]
print(cropped)

What is the output?
medium
A. [[3 4 5 6] [13 14 15 16] [23 24 25 26]]
B. [[23 24 25 26] [33 34 35 36] [43 44 45 46]]
C. [[23 24 25 26 27] [33 34 35 36 37] [43 44 45 46 47]]
D. [[32 33 34 35] [42 43 44 45] [52 53 54 55]]

Solution

  1. Step 1: Understand the image array

    img is a 10x10 array with values from 0 to 99 arranged row-wise.
  2. Step 2: Extract rows 2 to 4 and columns 3 to 6

    Rows 2,3,4 correspond to indices 2,3,4; columns 3,4,5,6 correspond to indices 3 to 6 exclusive of 7.
  3. Step 3: Identify values in cropped

    Row 2: values 20 to 29, columns 3 to 6 are 23,24,25,26
    Row 3: 33,34,35,36
    Row 4: 43,44,45,46
  4. Final Answer:

    [[23 24 25 26] [33 34 35 36] [43 44 45 46]] -> Option B
  5. Quick Check:

    Slice rows 2-5 and cols 3-7 gives these values [OK]
Hint: Check array shape and slicing ranges carefully [OK]
Common Mistakes:
  • Confusing row and column indices
  • Including end index in slice
  • Misreading array reshape order
4. You try to crop an image using cropped = img[50:100, 30:60] but get an IndexError. What is the likely cause?
medium
A. The image variable is not defined
B. The slicing syntax is incorrect
C. The image is grayscale, not color
D. The image has fewer than 100 rows

Solution

  1. Step 1: Understand IndexError cause

    IndexError occurs when slicing beyond array dimensions.
  2. Step 2: Analyze slicing indices

    Rows 50 to 100 means accessing rows starting at 50. If image has fewer rows, this causes error.
  3. Final Answer:

    The image has fewer than 100 rows -> Option D
  4. Quick Check:

    IndexError = slicing outside image size [OK]
Hint: Check image shape before slicing [OK]
Common Mistakes:
  • Assuming syntax error causes IndexError
  • Confusing color channels with rows
  • Not checking if variable is defined
5. You have a 200x200 image and want to crop a centered square of size 100x100. Which code correctly crops this center square?
hard
A. img[50:150, 50:150]
B. img[0:100, 0:100]
C. img[100:200, 100:200]
D. img[25:125, 25:125]

Solution

  1. Step 1: Calculate center start and end indices

    Center of 200x200 is at 100,100. Half of 100 size is 50.
  2. Step 2: Determine crop range

    Start at 100-50=50, end at 100+50=150 for both rows and columns.
  3. Final Answer:

    img[50:150, 50:150] -> Option A
  4. Quick Check:

    Center crop = middle 100 pixels from 200 [OK]
Hint: Center crop start = center - half size [OK]
Common Mistakes:
  • Starting crop at 0 instead of center
  • Using wrong indices for center
  • Cropping smaller or larger than requested