ProjectSidewalk / ProjectSidewalk/RampNet

Qualitative failure taxonomy: bucket each model's FP/FN from cached detections

Open
#46 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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.py overlay 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

  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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.