Bird
Raised Fist0
Computer Visionml~12 mins

Cropping images in Computer Vision - Model Pipeline Trace

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
Model Pipeline - Cropping images

This pipeline shows how images are cropped to focus on important parts before being used in a machine learning model. Cropping helps the model learn better by removing unnecessary background.

Data Flow - 4 Stages
1Input images
1000 images x 256 height x 256 width x 3 channelsLoad raw images of size 256x256 pixels with 3 color channels (RGB)1000 images x 256 height x 256 width x 3 channels
An image of a cat with full background
2Cropping
1000 images x 256 height x 256 width x 3 channelsCrop center 128x128 pixels from each image to focus on main object1000 images x 128 height x 128 width x 3 channels
Cropped image showing only the cat's face
3Normalization
1000 images x 128 height x 128 width x 3 channelsScale pixel values from 0-255 to 0-1 range1000 images x 128 height x 128 width x 3 channels
Pixel value 128 becomes 0.502
4Model input
1000 images x 128 height x 128 width x 3 channelsFeed cropped and normalized images into the model1000 predictions x number_of_classes
Model predicts class probabilities for each image
Training Trace - Epoch by Epoch
Loss
1.2 |****
1.0 |*** 
0.8 |**  
0.6 |*   
0.4 |*   
    +-----
     1 5 Epochs
EpochLoss ↓Accuracy ↑Observation
11.20.45Model starts learning with moderate loss and low accuracy
20.90.60Loss decreases and accuracy improves as model learns features
30.70.72Model continues to improve with better focus on cropped images
40.50.80Loss drops further and accuracy reaches a good level
50.40.85Training converges with low loss and high accuracy
Prediction Trace - 4 Layers
Layer 1: Input image
Layer 2: Cropping
Layer 3: Normalization
Layer 4: Model prediction
Model Quiz - 3 Questions
Test your understanding
Why do we crop images before training the model?
ATo add noise for data augmentation
BTo increase image size for better detail
CTo focus on important parts and remove background
DTo convert images to grayscale
Key Insight
Cropping images helps the model focus on the main object by removing unnecessary background. This leads to better learning and higher accuracy as seen by the decreasing loss and increasing accuracy during training.

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