Bird
Raised Fist0
Computer Visionml~10 mins

Feature extraction approach in Computer Vision - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to extract features from an image using a simple method.

Computer Vision
import cv2
image = cv2.imread('image.jpg', 0)
features = cv2.Canny(image, [1], 150)
print(features.shape)
Drag options to blanks, or click blank then click option'
A50
B100
C200
D300
Attempts:
3 left
💡 Hint
Common Mistakes
Using a threshold too high or too low can miss edges or detect too many.
2fill in blank
medium

Complete the code to compute Histogram of Oriented Gradients (HOG) features from an image.

Computer Vision
from skimage.feature import hog
from skimage import data, exposure
image = data.astronaut()
features, hog_image = hog(image, pixels_per_cell=(8, 8), cells_per_block=(2, 2), visualize=True, [1]=True)
print(features.shape)
Drag options to blanks, or click blank then click option'
Amultichannel
Bnormalize
Cblock_norm
Dtransform_sqrt
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting to set multichannel=True causes errors or wrong features.
3fill in blank
hard

Fix the error in the code to extract SIFT features from an image.

Computer Vision
import cv2
image = cv2.imread('image.jpg', 0)
sift = cv2.SIFT_create()
keypoints, descriptors = sift.[1](image)
print(len(keypoints))
Drag options to blanks, or click blank then click option'
AdetectAndCompute
Bdetect
Ccompute
DdetectAndDescribe
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'detect' or 'compute' alone causes errors or incomplete results.
4fill in blank
hard

Fill both blanks to create a dictionary of feature descriptors for each keypoint.

Computer Vision
features_dict = [1](kp.pt: desc for kp, desc in zip(keypoints, [2]))
print(len(features_dict))
Drag options to blanks, or click blank then click option'
Adict
Bdescriptors
Clist
Dkeypoints
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'list' instead of 'dict' or wrong variable names.
5fill in blank
hard

Fill all three blanks to filter features with descriptor length greater than 100.

Computer Vision
filtered_features = {kp: desc for kp, desc in features_dict.items() if len(desc) [1] [2]
print(len(filtered_features))

threshold = [3]
Drag options to blanks, or click blank then click option'
A>
B100
C<
D50
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<' instead of '>' or wrong threshold values.

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