Bird
Raised Fist0
Computer Visionml~10 mins

Depth estimation basics 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 load an image for depth estimation.

Computer Vision
import cv2
image = cv2.imread([1])
print(image.shape)
Drag options to blanks, or click blank then click option'
Adepth_map.png
B'depth_map'
C'depth_map.png'
Ddepth_map
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting quotes around the filename.
Passing a variable name without defining it.
2fill in blank
medium

Complete the code to convert the image to grayscale for depth processing.

Computer Vision
gray_image = cv2.cvtColor(image, [1])
print(gray_image.shape)
Drag options to blanks, or click blank then click option'
Acv2.COLOR_BGR2GRAY
Bcv2.COLOR_BGR2RGB
Ccv2.COLOR_RGB2GRAY
Dcv2.COLOR_GRAY2BGR
Attempts:
3 left
💡 Hint
Common Mistakes
Using RGB conversion instead of grayscale.
Using grayscale to BGR conversion by mistake.
3fill in blank
hard

Fix the error in the code to normalize the depth map between 0 and 1.

Computer Vision
depth_normalized = (depth_map - depth_map.min()) / [1]
print(depth_normalized.min(), depth_normalized.max())
Drag options to blanks, or click blank then click option'
Adepth_map.min()
Bdepth_map.max() - depth_map.min()
Cdepth_map.max()
Ddepth_map.mean()
Attempts:
3 left
💡 Hint
Common Mistakes
Dividing by max value only.
Dividing by min value.
Dividing by mean value.
4fill in blank
hard

Fill in the blank to create a dictionary of pixel depths for pixels with depth greater than 0.5.

Computer Vision
depth_pixels = {(x, y): depth_map[x, y] for x in range(depth_map.shape[0]) for y in range(depth_map.shape[1]) if depth_map[x, y] [1] 0.5}
print(len(depth_pixels))
Drag options to blanks, or click blank then click option'
A<=
B<
C>=
D>
Attempts:
3 left
💡 Hint
Common Mistakes
Using < instead of >.
Using <= instead of >=.
5fill in blank
hard

Fill all three blanks to compute mean squared error (MSE) between predicted and true depth maps.

Computer Vision
mse = sum((predicted_depth[1]true_depth)[2]2 for predicted_depth, true_depth in zip(predicted.flatten(), true.flatten())) / [3]
print(mse)
Drag options to blanks, or click blank then click option'
A-
B**
Clen(predicted.flatten())
D+
Attempts:
3 left
💡 Hint
Common Mistakes
Using addition instead of subtraction for difference.
Using single * instead of ** for power.
Dividing by wrong length.

Practice

(1/5)
1. What is the main goal of depth estimation in computer vision?
easy
A. To find how far objects are from the camera in an image
B. To detect colors in an image
C. To recognize faces in a photo
D. To increase image resolution

Solution

  1. Step 1: Understand depth estimation purpose

    Depth estimation aims to measure distance from the camera to objects in an image.
  2. Step 2: Compare options to definition

    Only To find how far objects are from the camera in an image matches this goal; others describe different tasks.
  3. Final Answer:

    To find how far objects are from the camera in an image -> Option A
  4. Quick Check:

    Depth estimation = distance measurement [OK]
Hint: Depth estimation = measuring distance in images [OK]
Common Mistakes:
  • Confusing depth estimation with object detection
  • Thinking it finds colors or faces
  • Mixing it with image enhancement
2. Which of the following is the correct way to represent a depth map in Python using NumPy?
easy
A. depth_map = np.array([[0.5, 1.2], [2.3, 0.7]])
B. depth_map = np.array(["near", "far"])
C. depth_map = np.array([["red", "blue"], ["green", "yellow"]])
D. depth_map = np.array([True, False])

Solution

  1. Step 1: Identify valid depth map data type

    Depth maps store distances as numbers (floats), so arrays with floats are correct.
  2. Step 2: Check options for numeric arrays

    depth_map = np.array([[0.5, 1.2], [2.3, 0.7]]) uses floats in a 2D array, suitable for depth maps. Others use strings or booleans, which are incorrect.
  3. Final Answer:

    depth_map = np.array([[0.5, 1.2], [2.3, 0.7]]) -> Option A
  4. Quick Check:

    Depth map = numeric 2D array [OK]
Hint: Depth maps store numbers, not words or booleans [OK]
Common Mistakes:
  • Using strings instead of numbers for depth values
  • Confusing color or label arrays with depth maps
  • Using 1D arrays instead of 2D for images
3. Given this Python code snippet using a depth estimation model, what will be the shape of the output depth map?
import numpy as np
input_image = np.zeros((480, 640, 3))  # RGB image
output_depth = model.predict(input_image)
print(output_depth.shape)
Assuming the model outputs a depth map matching input image size but single channel.
medium
A. (480, 640, 3)
B. (3, 480, 640)
C. (640, 480)
D. (480, 640)

Solution

  1. Step 1: Understand input and output shapes

    The input is a color image with shape (480, 640, 3). The model outputs a depth map with one channel per pixel, so shape should be (480, 640).
  2. Step 2: Match output shape to depth map format

    Depth maps usually have height and width only, no color channels, so (480, 640) is correct.
  3. Final Answer:

    (480, 640) -> Option D
  4. Quick Check:

    Depth map shape = height x width [OK]
Hint: Depth maps have one channel, so shape drops color dimension [OK]
Common Mistakes:
  • Assuming output keeps 3 color channels
  • Swapping height and width dimensions
  • Confusing channel order in output
4. You run a depth estimation model but get an error: ValueError: input must be 4D tensor. What is the most likely cause?
medium
A. Model weights are not loaded
B. Output depth map has wrong shape
C. Input image is missing batch dimension
D. Input image has wrong color format

Solution

  1. Step 1: Understand model input requirements

    Many deep learning models expect input as 4D tensors: (batch_size, height, width, channels).
  2. Step 2: Identify cause of ValueError

    If input is a single image (3D), missing batch dimension causes this error.
  3. Final Answer:

    Input image is missing batch dimension -> Option C
  4. Quick Check:

    4D input = batch + image dims [OK]
Hint: Add batch dimension to input shape before model call [OK]
Common Mistakes:
  • Ignoring batch dimension requirement
  • Blaming model weights or output shape
  • Confusing color format with tensor shape
5. You want to improve depth estimation accuracy for a robot navigating indoors. Which approach is best?
hard
A. Use a single camera and increase image resolution only
B. Use stereo cameras and combine their images for depth
C. Use random noise as input to the model
D. Ignore depth and rely on color detection

Solution

  1. Step 1: Consider methods to improve depth accuracy

    Stereo cameras capture two views, allowing better depth calculation by comparing images.
  2. Step 2: Evaluate options for robot navigation

    Use stereo cameras and combine their images for depth uses stereo vision, which is proven to improve depth accuracy indoors. Increasing resolution alone (B) helps little. Noise input (C) and ignoring depth (D) are ineffective.
  3. Final Answer:

    Use stereo cameras and combine their images for depth -> Option B
  4. Quick Check:

    Stereo vision = better depth accuracy [OK]
Hint: Stereo cameras give real depth by comparing two views [OK]
Common Mistakes:
  • Thinking higher resolution alone improves depth
  • Using noise as input to improve model
  • Ignoring depth for color detection