FixTheRobot Explore Robotics / Perception / P4 / P4-L1

This lab works on phones, but writing code is much easier on a laptop.

Perception · Classical Feature Detection and Matching · P4-L1 · Intermediate

Detect Image Features

A robot wants to track how the world moves between two camera frames. It needs points it can recognise again: not flat walls, not plain edges, but corners.

You will tune a corner detector, write the corner score, and select a clean set of points that appear in both images.

Your task

    Simulation
    solution.pyLoading Python…
    Ctrl+Enter runs
    What Python can I use?

    Plain Python with math (and slamkit for small matrix helpers: matmul, transpose, solve, inverse, identity). Images, point clouds and detections arrive as lists inside the dictionary D; an image is a list of rows, each row a list of pixels. There is no NumPy or OpenCV: you write the algorithm yourself, which is the point of the lab. Print with print().

    Hints

    What this lab teaches

    Stage 1 is a tuning experiment judged by repeatability across two views. Stage 2 writes the Harris response from image gradients. Stage 3 selects corners by threshold and non-maximum suppression. Your code is graded on hidden image pairs; the simulator keeps the true corners and the true transform private.

    Theory for this lab

    Classical Feature Detection and Matching labs

    1. P4-L1: Detect Image Features: this lab.
    2. P4-L2: Match Features Between Images
    3. P4-L3: Reject Incorrect Correspondences and Measure the Improvement

    Educational simplification: simulated 64 by 48 grey images of overlapping rectangles seen from two viewpoints related by a small rotation, a shift, a brightness change and Gaussian noise of 6 grey levels. Real images have texture, blur, scale change and clutter. All images in this lab are simulated.

    Get the next lab

    Get notified when new robotics labs are released. One email per new lab, nothing else.