Classical Machine Learning

Put the camera views together

BOTIE

Subtract each source point from its proposed match and take the median separately for each coordinate.
Ready to test
0 passed · 0 failed · 1 not run

An empty floor. Start with the information your machine needs.

Received result

Your answer will arrive here.

Examples, experiments and workspace controls
Live values

Connect a tool's inputs to see what it produces. You can try a branch before connecting it to Result.

Try your own inputs

Use a copy of the example to try your own data. Keep the problem's assumptions in mind, and predict the effect of a change before checking the output. You can also add another branch to compare two ways of doing the calculation.

Start at an output arrow, then click or drag to an input. Drag empty space to pan. Delete removes a selection. Ctrl/Cmd+Z undoes a change.
Context for this challenge

Subtract each source point from its proposed match and take the median separately for each coordinate.

Let's put two camera views into the same coordinates. Some proposed point matches are wrong, so trusting the first match could move the whole image incorrectly. In our small example, most matches agree on a translation. We will use the middle proposed shift on each coordinate, then apply that translation to another point.

Inspect the component calculation
Median within each column(
  Rows of proposed shifts: Subtract(
    Starting value: Proposed matching points (pixels)
    Value to remove: Source points (pixels)
  )
)
Examples and results
Proposed matching points (pixels)
41
52
3020
Source points (pixels)
12
23
45
Required result
  1. 03
  2. 1-1
Try a fresh construction

This clears this draft, including its undo history. Earlier successful attempts stay recorded. Build again without opening hints to record an independent attempt.

Stuck? Inspect a worked construction

The tools below form one possible solution. You can assemble it, follow its signals, and undo that change to return to your own construction.

Assumptions and test precision

This handles translation only, with a majority of exactly agreeing matches. Coordinate medians are a small robust estimator, not the full RANSAC procedure or a solution for rotation and perspective. Numerical tests allow a difference of 0.001. Lists and structures must also have the right shape.

Your last tested pieces can start the full construction. An existing draft there keeps its own pieces.

Five proposed matches with two bad correspondences

This check uses the pieces from “Apply the supported translation to another point”.

BOTIE

Three correspondences agree on a translation while two are wrong. Predict the aligned point using coordinate-wise median displacement.
Source points (pixels)
00
42
25
61
33
Proposed matching points (pixels)
-23
25
08
100100
-4080
Point to align (pixels)
  1. 08
  2. 12

Use a number, text, or an array matching the requested result. For a matrix, put each row in brackets. Saving your prediction runs your current construction on these inputs and checks the earlier examples too.

Build a construction in the workspace above first. This case will test those pieces.

Why does the median work for these three proposals, and which changes in camera geometry cannot be represented by one translation vector?

Robust estimation depends on the transformation model and the pattern of inliers; this coordinate-median example is not full RANSAC.

This handles translation only, with a majority of exactly agreeing matches. Coordinate medians are a small robust estimator, not the full RANSAC procedure or a solution for rotation and perspective.

Work through the Python challenges →
Continue the courseHaar Cascades →
← Keypoints and Descriptors