ProjectSidewalk / ProjectSidewalk/RampNet
Qualitative failure taxonomy: bucket each model's FP/FN from cached detections
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 7
- Forks
- 1
- Avg merge
- 4d 11h
- Merged PRs (30d)
- 7
Description
Motivation
The P/R/F1 table tells us that the challengers fail; it doesn't tell us how. The chat VLMs are "FP-heavy" (119–293 FP vs RampNet's 9) — but we don't know how much of that flood is genuine hallucination vs measurement artifact. Several confounds could be inflating FP (and FN) without the models being as wrong as the numbers imply:
- Box→center + tight radius double-penalizes loose localization: a correct-but-loose box whose center lands >0.022 from the GT point is scored as an FP and the ramp as an FN — one miss, counted twice.
- Hood/nadir (
pitch_deg=-30→ ~⅓ of every view is vehicle hood + black cap; GDINO's top box is the hood — see companion nadir-mask issue). - Cross-view dedup double-counting at tile seams (#43).
What to build
A script over .model_cache/ that, for each model + city, classifies every FP and FN against the derived GT (rampnet/detection_eval.py):
- FP buckets: on-hood/nadir · near-GT-but-outside-match-radius (localization) · cross-view dedup duplicate · on driveway / crosswalk paint / stairs · genuine hallucination (far from anything).
- FN buckets: small/distant · occluded · seam-truncated (#43) · inside the hood region.
- Output: per-model bucket counts + a worst-cases gallery, reusing the
dump_detections.pyoverlay machinery.
Why it's cheap and high-value
- No model re-runs — cached detection points + derived GT already contain everything the geometric buckets need (the gallery also needs the local pano images).
- Turns "119 FPs" into "40 localization / 25 hood / 30 driveway / 24 real," which is what tells us whether the RampNet lead is as clean as it looks — and lets us qualify the paper's numbers precisely.
- De-risks the cascade (#35): if OWLv2's ~8,800 FPs are mostly obvious junk (hood/driveway), an arbiter kills them trivially; if they're ambiguous concrete, the arbiter struggles too. The taxonomy sets the cascade's ceiling before we build it.
Refs #39, #43, #35.
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 rampnet/detection_eval.py to understand the derived GT and cached detection data in .model_cache/. Then inspect dump_detections.py and the local pano-image handling used for overlays. Done means per-model, per-city FP/FN bucket counts plus a worst-cases gallery covering the requested categories without rerunning models.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- computer-vision, machine-learning
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100