Bird
Raised Fist0
Computer Visionml~5 mins

Optical flow concept in Computer Vision - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is optical flow in computer vision?
Optical flow is the pattern of apparent motion of objects, surfaces, and edges in a visual scene caused by the relative motion between an observer and the scene.
Click to reveal answer
beginner
What does optical flow estimate between two video frames?
It estimates the motion vector field that shows how each pixel moves from one frame to the next.
Click to reveal answer
intermediate
Name two common assumptions made when computing optical flow.
1. Brightness constancy: pixel brightness stays the same between frames.
2. Small motion: objects move only a little between frames.
Click to reveal answer
beginner
How is optical flow useful in real life?
It helps in video stabilization, object tracking, autonomous driving, and motion detection by understanding how things move in videos.
Click to reveal answer
intermediate
What is the difference between dense and sparse optical flow?
Dense optical flow computes motion for every pixel, while sparse optical flow computes motion only for selected points or features.
Click to reveal answer
What does optical flow primarily measure?
AColor changes in images
BShape of objects
CBrightness of a single frame
DMotion of pixels between frames
Which assumption is essential for computing optical flow?
ABrightness constancy
BColor constancy
CShape constancy
DTexture constancy
Dense optical flow calculates motion for:
AEvery pixel
BNo pixels
CRandom pixels
DOnly corners
Optical flow can be used for:
AAdding noise
BChanging image colors
CVideo stabilization
DCropping images
Which is NOT a typical use of optical flow?
AMotion detection
BImage compression
CObject tracking
DAutonomous driving
Explain what optical flow is and why it is important in video analysis.
Think about how we see movement in videos and how computers can detect it.
You got /3 concepts.
    Describe the main assumptions behind optical flow calculation and how they help estimate motion.
    Consider what must stay the same or change little for motion to be detected accurately.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does optical flow represent in computer vision?
      easy
      A. The pattern of apparent motion of objects between two images
      B. The color distribution in a single image
      C. The brightness level of an image
      D. The shape of objects detected in an image

      Solution

      1. Step 1: Understand the meaning of optical flow

        Optical flow describes how pixels move from one image frame to the next, showing motion.
      2. Step 2: Compare options to definition

        Only The pattern of apparent motion of objects between two images correctly describes motion between images, while others describe unrelated image properties.
      3. Final Answer:

        The pattern of apparent motion of objects between two images -> Option A
      4. Quick Check:

        Optical flow = motion pattern [OK]
      Hint: Optical flow = pixel motion between frames [OK]
      Common Mistakes:
      • Confusing optical flow with color or brightness
      • Thinking optical flow detects object shapes
      • Assuming optical flow works on single images
      2. Which OpenCV function is commonly used to compute dense optical flow using the Farneback method?
      easy
      A. cv2.calcOpticalFlowPyrLK()
      B. cv2.findContours()
      C. cv2.threshold()
      D. cv2.calcOpticalFlowFarneback()

      Solution

      1. Step 1: Recall OpenCV functions for optical flow

        Farneback method is implemented in OpenCV as cv2.calcOpticalFlowFarneback().
      2. Step 2: Eliminate unrelated functions

        Other options relate to tracking points, contours, or thresholding, not Farneback optical flow.
      3. Final Answer:

        cv2.calcOpticalFlowFarneback() -> Option D
      4. Quick Check:

        Farneback method = calcOpticalFlowFarneback [OK]
      Hint: Farneback method uses cv2.calcOpticalFlowFarneback() [OK]
      Common Mistakes:
      • Confusing Farneback with Lucas-Kanade method
      • Choosing functions unrelated to optical flow
      • Mixing up function names with similar prefixes
      3. Given the following Python code using OpenCV, what is the shape of the output variable flow?
      import cv2
      prev_img = cv2.imread('frame1.png', 0)
      next_img = cv2.imread('frame2.png', 0)
      flow = cv2.calcOpticalFlowFarneback(prev_img, next_img, None, 0.5, 3, 15, 3, 5, 1.2, 0)
      medium
      A. A 3D array with shape (height, width, 2)
      B. A 2D array with shape (height, width)
      C. A 1D array with length equal to number of pixels
      D. A scalar value representing average flow

      Solution

      1. Step 1: Understand output of Farneback optical flow

        The function returns a 3D array where each pixel has a 2D flow vector (x and y components).
      2. Step 2: Match output shape to options

        This means the output shape is (height, width, 2), representing flow vectors per pixel.
      3. Final Answer:

        A 3D array with shape (height, width, 2) -> Option A
      4. Quick Check:

        Flow shape = (H, W, 2) [OK]
      Hint: Optical flow output has two channels for x and y motion [OK]
      Common Mistakes:
      • Assuming output is 2D grayscale image
      • Thinking output is a single scalar
      • Confusing flow vector dimensions
      4. You wrote this code to compute optical flow but get an error:
      flow = cv2.calcOpticalFlowFarneback(prev_img, next_img, 0, 0.5, 3, 15, 3, 5, 1.2, 0)
      What is the likely cause of the error?
      medium
      A. The window size parameter is missing
      B. The images must be color, not grayscale
      C. The third argument must be None, not 0
      D. The pyramid scale parameter is too high

      Solution

      1. Step 1: Check the third argument of calcOpticalFlowFarneback

        The third argument is the output flow array or None to create it internally; passing 0 causes an error.
      2. Step 2: Verify correct usage

        Passing None lets OpenCV allocate the output; 0 is invalid and causes a type error.
      3. Final Answer:

        The third argument must be None, not 0 -> Option C
      4. Quick Check:

        Third argument = None [OK]
      Hint: Use None as third argument to allocate flow output [OK]
      Common Mistakes:
      • Passing 0 instead of None for output flow
      • Using color images instead of grayscale
      • Misunderstanding parameter order
      5. You want to track a fast-moving object in a video using optical flow. Which approach helps improve accuracy?
      hard
      A. Use a larger window size and fewer pyramid levels
      B. Use a smaller window size and increase pyramid levels
      C. Convert images to color before computing flow
      D. Apply thresholding before computing flow

      Solution

      1. Step 1: Understand parameters affecting optical flow accuracy

        Smaller window size captures finer motion details; more pyramid levels help track fast motion at multiple scales.
      2. Step 2: Evaluate options for fast-moving object tracking

        Use a smaller window size and increase pyramid levels correctly suggests smaller window and more pyramid levels to improve tracking accuracy.
      3. Final Answer:

        Use a smaller window size and increase pyramid levels -> Option B
      4. Quick Check:

        Smaller window + more pyramids = better fast motion tracking [OK]
      Hint: Smaller window + more pyramids track fast motion better [OK]
      Common Mistakes:
      • Using large windows that blur fast motion
      • Ignoring pyramid levels for scale changes
      • Preprocessing images incorrectly
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard