ProjectSidewalk / ProjectSidewalk/RampNet
Measure per-ramp deployment recall; sampling density may be the cheapest recall lever
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:
- 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.
- 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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