Bird
Raised Fist0
Computer Visionml~20 mins

Feature extraction approach in Computer Vision - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Feature Extraction Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding Feature Extraction in Image Classification

Which of the following best describes the purpose of feature extraction in image classification?

ATo reduce the image size by cropping and resizing before classification
BTo randomly shuffle image pixels to improve model robustness
CTo increase the number of pixels in the image for better resolution
DTo transform raw image data into a set of meaningful values that represent important characteristics
Attempts:
2 left
💡 Hint

Think about how we simplify complex images into useful information for the model.

Predict Output
intermediate
2:00remaining
Output of Feature Extraction Using SIFT

What is the output type of the following Python code using OpenCV's SIFT feature extractor?

Computer Vision
import cv2
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
sift = cv2.SIFT_create()
keypoints, descriptors = sift.detectAndCompute(img, None)
print(type(descriptors))
A<class 'numpy.ndarray'>
B<class 'list'>
C<class 'NoneType'>
D<class 'dict'>
Attempts:
2 left
💡 Hint

Descriptors are numerical arrays representing features.

Model Choice
advanced
2:00remaining
Choosing a Model for Feature Extraction

You want to extract features from images to use in a simple classifier. Which model is best suited for automatic feature extraction without manual design?

AA decision tree classifier
BA linear regression model
CA pretrained convolutional neural network like ResNet
DA k-nearest neighbors algorithm
Attempts:
2 left
💡 Hint

Consider models that learn hierarchical image features automatically.

Hyperparameter
advanced
2:00remaining
Effect of Number of Features in Feature Extraction

When using a feature extractor like ORB, increasing the number of features parameter will most likely:

ADecrease the computation time and reduce feature quality
BIncrease the number of detected keypoints and increase computation time
CHave no effect on the number of features detected
DCause the extractor to ignore edges and focus on colors
Attempts:
2 left
💡 Hint

Think about what happens when you ask for more features from the extractor.

Metrics
expert
2:00remaining
Evaluating Feature Extraction Quality

You extracted features from images and trained a classifier. Which metric best helps evaluate if the features separate classes well?

ASilhouette score measuring cluster separation of features
BMean squared error between features
CNumber of features extracted per image
DAccuracy of the classifier on a test set
Attempts:
2 left
💡 Hint

Think about a metric that measures how well features group similar samples apart from others.

Practice

(1/5)
1. What is the main purpose of feature extraction in computer vision?
easy
A. To increase the size of image files
B. To change image colors randomly
C. To convert images into numbers that describe important parts
D. To delete parts of the image

Solution

  1. Step 1: Understand feature extraction goal

    Feature extraction transforms images into numerical data representing key details.
  2. Step 2: Compare options to this goal

    Only To convert images into numbers that describe important parts describes this process correctly; others describe unrelated actions.
  3. Final Answer:

    To convert images into numbers that describe important parts -> Option C
  4. Quick Check:

    Feature extraction = convert images to numbers [OK]
Hint: Feature extraction means turning images into numbers [OK]
Common Mistakes:
  • Thinking feature extraction changes image colors
  • Confusing feature extraction with image resizing
  • Believing it deletes image parts
2. Which of the following is a correct way to describe SIFT in feature extraction?
easy
A. A way to convert images to grayscale
B. A method that detects and describes local features in images
C. A technique to increase image resolution
D. A method to compress image files

Solution

  1. Step 1: Recall what SIFT does

    SIFT finds and describes important local features in images for matching and recognition.
  2. Step 2: Match options to SIFT's function

    Only A method that detects and describes local features in images correctly describes SIFT; others describe unrelated image processes.
  3. Final Answer:

    A method that detects and describes local features in images -> Option B
  4. Quick Check:

    SIFT = local feature detection [OK]
Hint: SIFT finds key points and describes them [OK]
Common Mistakes:
  • Confusing SIFT with image resizing
  • Thinking SIFT changes image colors
  • Believing SIFT compresses images
3. Given the following Python code using OpenCV, what will be the shape of the feature vector extracted by SIFT for an image with 500 keypoints?
import cv2
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
sift = cv2.SIFT_create()
keypoints, descriptors = sift.detectAndCompute(img, None)
print(descriptors.shape)
medium
A. (null, 128)
B. (128, 500)
C. (500, 64)
D. (500, 128)

Solution

  1. Step 1: Understand SIFT descriptor shape

    SIFT descriptors have 128 features per keypoint, so shape is (number_of_keypoints, 128).
  2. Step 2: Apply to given keypoints

    With 500 keypoints, descriptors shape is (500, 128).
  3. Final Answer:

    (500, 128) -> Option D
  4. Quick Check:

    SIFT descriptors shape = (keypoints, 128) [OK]
Hint: SIFT descriptors = keypoints x 128 features [OK]
Common Mistakes:
  • Swapping dimensions of descriptors
  • Assuming 64 features per keypoint
  • Thinking descriptors shape depends on image size
4. You wrote this code to extract features using SIFT but get an error:
import cv2
img = cv2.imread('image.jpg')
sift = cv2.SIFT_create()
keypoints, descriptors = sift.detectAndCompute(img, None)
print(len(keypoints))

What is the likely cause of the error?
medium
A. The image is not loaded in grayscale, causing SIFT to fail
B. SIFT_create() is not a valid OpenCV function
C. detectAndCompute requires a mask argument
D. print(len(keypoints)) is incorrect syntax

Solution

  1. Step 1: Check image loading method

    The image is loaded in color by default; SIFT expects grayscale images.
  2. Step 2: Identify error cause

    Not converting to grayscale can cause detectAndCompute to fail or return null.
  3. Final Answer:

    The image is not loaded in grayscale, causing SIFT to fail -> Option A
  4. Quick Check:

    Load image grayscale for SIFT [OK]
Hint: Always load images in grayscale for SIFT [OK]
Common Mistakes:
  • Thinking SIFT_create() is invalid
  • Believing mask argument is mandatory
  • Assuming print syntax is wrong
5. You want to extract features from images for a complex object recognition task. Which approach is best to capture detailed and high-level features?
hard
A. Use a deep learning model like a convolutional neural network (CNN)
B. Use simple edge detection filters only
C. Use random pixel values as features
D. Use image resizing without feature extraction

Solution

  1. Step 1: Understand feature needs for complex tasks

    Complex object recognition requires capturing detailed and abstract features.
  2. Step 2: Compare methods for feature extraction

    Deep learning models like CNNs learn rich features automatically, outperforming simple filters or random values.
  3. Final Answer:

    Use a deep learning model like a convolutional neural network (CNN) -> Option A
  4. Quick Check:

    Complex features need CNNs [OK]
Hint: Deep models capture complex features best [OK]
Common Mistakes:
  • Relying only on simple filters
  • Using random pixels as features
  • Skipping feature extraction by resizing only