Add Gainesville, FL — third GSV city (split #9) - #89
Conversation
…5 random / 25 empty) from the 35,204-record GSV run Third GSV city, ninth benchmark split. Exporter reconciled 125/125 panos (sha256 verified against index.csv, no decayed panos). GT review to follow. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… confidence HIGH 125/125 panos fully judged (recall pool complete). 205 detections: 189 correct, 9 FP, 5 unsure (2.4% abstention), 2 duplicates. 83 missed marks (+31 unsure-missed). Empty stratum 23/25 clean (4 firm missed marks on 2 panos). All-panos P 0.945 / R 0.695. Headline: recall 0.647 lands on paterson's 0.650 with none of paterson's paired-TSI fabric - the out-of-domain GSV recall profile replicates on conventional fabric. Review notes flag novel ramp styles (large diagonal ramps at new/renovated intersections, wide intersections) and two FN causes by impression: debris on the ramp surface, and distance (Phase-4 distance analysis to quantify). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Phase 2–3 complete — GT verdicts committed (a25e65f), scored 2026-07-30.
Counts: 205 detections judged — 189 correct, 9 FP, 5 unsure (2.4% abstention), 2 duplicates (scored as FP, the default). 83 missed marks + 31 unsure-missed. Recall pool 125/125 (no pano lacked an attestation or a mark). Empty stratum 23/25 clean; the 2 exceptions hold 4 firm missed marks — real ramps the model was silent on, consistent with the annapolis pattern. The Phase-0 question is answered early: paterson's recall was not fabric-specific. Gainesville has conventional fabric — none of paterson's paired TSIs — and lands at R 0.647 vs paterson's 0.650 (unbiased, same protocol). Two far-domain GSV cities now agree that out-of-domain GSV recall sits at ~0.65 at the 0.55 floor. Precision differs more (0.943 vs 0.987): gainesville produced 9 FPs + 2 duplicates against paterson's near-zero. Reviewer (jonf, confidence HIGH) notes, committed in Next: Phase-4 low-floor extraction on Hyak, then the #55 tagging pass. 🤖 Generated with Claude Code (claude-fable-5) |
|
Phase-4 run status: low-floor extraction for gainesville submitted on Hyak as job 37923168 (partition 🤖 Generated with Claude Code (claude-fable-5) |
Extraction: Hyak job 37923168 (ckpt-g2, 4m19s, 125 panos) -> committed op_cache/gainesville.json. Parity gate PASS: 95.4% of detections within 0.5 R (gate >=95%), max 0.439 R, count delta 3.9% - the GSV-resample signature bend and paterson showed. Headline: gainesville's recall ceiling is 0.890, in the normal US band (0.86-0.91) - NOT paterson's 0.757. The two far-domain GSV cities reach the same ~0.65 R at the 0.55 floor by different mechanisms: paterson's misses never fire; gainesville's fire sub-threshold. 0.30 buys gainesville +9.9 R (0.673 -> 0.772) vs paterson's +3.8. Distance analysis: far-field (>25 m) R@0.55 is 0.300, the worst far band of any US split; 0.55->0.30 recovers +12.2 mid / +12.0 far points. gtbias shows the canonical #55 signature; the sub-floor FP band is dense (34 items in [0.25, 0.55) vs the 23-30 US precedent and paterson's 10) - the A-rate tagging pass (in flight) converts the precision lower bound into a number. POOLED is now 7 US splits (n=1,984 panos): @0.30 P 0.900 / R 0.793 / F1 0.843 (was 6-US 0.907/0.796/0.848); F1-max 0.844 @ 0.32; uncorrected 0.30 recommendation unchanged pending the corrected re-run. Figures: the 9th series forced the documented fold (the palette's 8 validated slots were full) - budapest*/manual_gold now wear neutral ink with distinct dashes, matching their held-out status; gainesville takes the vacated slot-6 green. The 7-hue set re-validates ALL PASS in slot order (green-red protan 7.2 sits in the legal-with-secondary-encoding band; legend + dots + CSV table provide it). Both figures regenerated and visually inspected. pytest: 241 passed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Phase 4–5 swept (f024570). Extraction: Hyak job 37923168 (ckpt-g2, 4m19s). Parity gate PASS — 95.4% within 0.5 R, max 0.439 R (the familiar GSV-resample signature), count delta 3.9%. The Phase-0 answer got sharper: same recall, different mechanism. Gainesville's recall ceiling at the 0.05 floor is 0.890 — squarely in the normal US band (0.86–0.91) — versus paterson's 0.757. So the two far-domain GSV cities arrive at the same ~0.65 deployed recall by different failure modes: paterson's misses produce no candidate at any threshold (never fires); gainesville's misses fire below threshold (weak activations — consistent with the reviewer's debris + distance impressions). Consequence: the 0.30 operating point buys gainesville +9.9 recall points (0.673 → 0.772), nearly 3× paterson's +3.8.
Other Phase-4 results: distance — far-field (>25 m) R@0.55 is 0.300, the worst far band of any US split (paterson 0.432); 0.55→0.30 recovers +12.2 mid / +12.0 far points. gtbias — canonical #55 signature present. floor — storage-floor cost 2.21%, recoverable headroom +0.195 (tied with clovis for largest). hist — sub-0.55 calibration noisy-low, lower bound until tagged. Pooled@0.30 moved 6-US → 7-US: P 0.907→0.900, R 0.796→0.793, F1 0.848→0.843 (uncorrected); recommendation re-check happens on the corrected re-run. #55 gallery: 34 items in [0.25, 0.55) — above the 23–30 US precedent and 3× paterson's 10, consistent with gainesville's dense sub-floor band; 7 pre-flagged as likely duplicates. Awaiting the tagging pass at Figures: the 9th series forced the protocol's fold-or-facet decision. Resolution: budapest*/manual_gold (both held out of the recommendation) now wear neutral ink with distinct dash patterns — their visual weight now matches their scientific status — vacating validated slot 6 (green) for gainesville. The 7-hue set re-validates ALL PASS in slot order ( 🤖 Generated with Claude Code (claude-fable-5) |
Phase 0 — what this split is for
Ninth split, third GSV city — and the first far-domain clean GSV city: no Stage-2 training city is anywhere near Florida, and Gainesville is registry-clean per
docs/data_provenance.md(grep-verified 2026-07-29). With conventional street fabric (unlike Paterson's paired-TSI corners), it tests whether Paterson's recall profile (R 0.650, ceiling 0.754) is fabric-specific or generic to out-of-domain GSV. Bonus context: Project Sidewalk deployment is fresh and complete (40 regions, 39/40 at 100%, 13.9k labels, Jul 2026); the sampled boundary is the dissolved PS regions polygon (~47.6 km² deployment footprint, not the whole ~160 km² municipality).US_SPLITS.gsvviatier_of()(records.jsonlcarriessource: "launch"); no fallback or new tier branch needed.Results so far
GT (Phase 3): unbiased P 0.943 (CI 0.896–0.970) / R 0.647 (CI 0.583–0.705); all-panos 0.945/0.695; reviewer confidence HIGH (a25e65f).
Answer to the Phase-0 question (Phase 4, f024570): the recall number replicates paterson's (0.647 vs 0.650) — far-domain GSV, not fabric — but the mechanism differs: gainesville's ceiling is 0.890 (normal US band) vs paterson's 0.757. Paterson's misses never fire; gainesville's fire sub-threshold, so 0.30 buys +9.9 R here vs +3.8 there. Details in the PR comments.
Checklist (docs/adding_a_benchmark_city.md)
Phase 1 — bundle (auto-labeler)
main.py --source gsv)export_benchmark.py --bundlecompleted;index.csvwritten (verified post-hoc: 125/125 sha256 match, valid JPEGs); nodecayed.txt(nothing decayed)benchmark/gainesville/records.jsonlcommitted;panos/present locally and staged on klone gscratch (/gscratch/makelab/jfroehli/rampnet_benchmark_panos/gainesville); HF archive still Publish deployment validation ground-truth as a HuggingFace dataset (Bend GSV + Richmond Mapillary) #21 backlogtop/ 95random/ 25emptyPhase 2–3 — ground truth
gt_gallery.pyat model resolution (reviewer: jonf, 2026-07-30)review_noteswritten (confidence HIGH; novel ramp styles — large diagonal ramps at new/renovated intersections, wide intersections; FN causes by impression: debris, distance)verdicts.jsoncommitted (a25e65f)score_validation.pyrun; unbiased column: P 0.943 / R 0.647camera_make/camera_model, butsource: "launch"→tier_of()=gsv(same as paterson)Phase 4 — operating point
low_floor_sweep.py parityPASSES — 95.4% within 0.5 R, max 0.439 R, count delta 3.9%sweep/hist/gtbias/floor/distancere-run (findings in PR comment)incremental_fp_tags.jsonto followcorrectedre-run +tagcheck(blocked on the tags)op_cache/gainesville.jsonand refreshedop/*.csvcommitted (f024570;corrected_at_*.csvrefresh pending tags)plot_operating_point.py(held-out splits → neutral ink + dashes; gainesville takes vacated slot-6 green; 7-hue set re-validated ALL PASS)Phase 5 — code
US_SPLITS(⇒CITY_SPLITS/ALL_SPLITSby construction)HELD_OUTn/a — gainesville is pooledtier_of()recognises the rig (gsvviasource)SERIEShandling decided and validated (see figures note above)pytest -qgreen (241 passed)Phase 6 — docs
benchmark/README.md: both tables + prose sectiondocs/model_comparison.md: coverage matrix incl. GT-completeness correction: spot-check the low-confidence incremental FPs from the operating-point curve #55 A-rate + anchoring caveat list (challenger runs for gainesville: not yet run — will be stated explicitly)docs/operating_point.md: per-split, per-tier, pooled, corrected, storage-floor tables🤖 Generated with Claude Code (claude-fable-5)