ProjectSidewalk / ProjectSidewalk/RampNet

Measure per-ramp deployment recall; sampling density may be the cheapest recall lever

Open
#38 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
7
Forks
1
Avg merge
4d 11h
Merged PRs (30d)
7

Description

Motivation

The recall error analysis (docs/detection_recall_analysis.md, PR #37, numbers on #25) established that RampNet's recall is distance-limited:

distance n recall
0–8 m 133 0.842
8–12 m 173 0.879
12–18 m 197 0.812
18–25 m 101 0.564
25–40 m 33 0.182

Reliable to ~18 m, effectively blind past 25 m — because a curb ramp at 30 m is only ~20 px wide in a 4096-px pano, and there isn't enough signal left to detect.

That exposes a measurement gap. Our benchmark reports per-pano recall"did RampNet find this ramp in this image?" But the deployment product is a city ramp inventory, which needs per-ramp recall across the whole run"did we find this ramp anywhere?" Those are very different numbers, because a ramp invisible at 30 m is at 8 m two panos later.

The opportunity

With 5 m pano spacing, a ramp is seen from a sequence of distances as the vehicle approaches and passes. Using the measured recall curve, the three nearest views alone (≈5, 6, 10 m) give:

P(missed in all three) = 0.158 × 0.158 × 0.121 ≈ 0.3%

⚠️ This is an upper bound and assumes independent failures, which is false. Occlusion, motion blur, and unusual ramp geometry persist across neighbouring views — the ramps that no model found are exactly that correlated-failure population, and they set the real floor. The true number will be well below this, but almost certainly far above the per-pano 0.765.

Two consequences:

  1. Deployment recall has never been measured, and it's the number that actually matters for an inventory. The benchmark currently answers a harder question than the product asks — we may be understating the system substantially.
  2. Sampling density may be the cheapest recall lever we have. It's a config change (the auto-labeler's 5 m thinning), not a model change — no retraining, no GPU-week. Compare: the threshold change buys +7–10 pts, a higher-res retrain forecasts +10 pts saturating ~0.88 (#25).

Proposed work

  • Measure per-ramp deployment recall. Take a contiguous run over an area with geolocated ground-truth ramps, aggregate detections by GPS (the existing ~5 m thinning), and ask "was each real ramp found in any pano?" This needs a different eval shape than the per-pano bundle — closer to inventory-level scoring.
  • Quantify the failure correlation. For ramps visible from multiple panos, how independent are the misses really? This sets the realistic ceiling and is the crux of whether denser sampling pays.
  • Sweep sampling density. Does tightening the thinning (5 m → 2–3 m) measurably improve per-ramp recall, and at what fetch/inference cost? Is there a point of diminishing returns?
  • Consider distance-aware aggregation. Since precision is flat with distance (25 m+: 1.000) but recall collapses, near views are strictly more informative — a ramp seen once at 8 m is worth more than three sightings at 30 m.

Notes

  • Ground-truth source: Project Sidewalk labels are geolocated per real-world ramp, which is exactly the right unit for inventory-level recall (unlike the per-pano bundle). Note PS labels each ramp once from its best perspective, so they support recall-on-known-positives but not a false-positive rate.
  • This is orthogonal to, and possibly cheaper than, both #25 (resolution) and the operating-point change — and unlike those it improves the product metric directly.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with docs/detection_recall_analysis.md and the existing per-pano benchmark bundle, then trace how geolocated Project Sidewalk labels and the auto-labeler’s ~5 m thinning are represented. Done means reporting per-ramp recall across a contiguous run, measuring correlated misses, and comparing 5 m with 2–3 m sampling, including inference cost.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data, machine-learning, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.