FixTheRobot Explore Robotics / Perception / P6 / P6-L4

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

Perception · Object Detection and Semantic Understanding · P6-L4 · Intermediate

Compare Performance Across Scene Conditions

The detector scored well in every report, and still the robot drove past obstacles at dusk. Nobody had looked at the dusk images separately.

You will compare conditions, write the report that shows the worst case, and set thresholds that respect each condition.

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 compares four conditions. Stage 2 writes the per-condition report. Stage 3 chooses a threshold per condition. The predictions are produced by a simulated detector with a stated error model for each condition, not by a trained neural network. Your code is graded on hidden datasets.

    Theory for this lab

    Object Detection and Semantic Understanding labs

    1. P6-L1: Interpret Detection Outputs
    2. P6-L2: Evaluate Predictions Against Ground Truth
    3. P6-L3: Investigate Confidence Thresholds and Missed Detections
    4. P6-L4: Compare Performance Across Scene Conditions: this lab.

    Educational simplification and honesty note: each condition changes the simulator’s detection probability, score shift, box jitter, false-alarm rate and occlusion in stated ways; no neural network is run. Real domain shift is richer, usually unlabelled, and harder to separate into named conditions. All data in this lab are simulated.

    Get the next lab

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