Spaces:
Runtime error
Runtime error
Commit History
-
Promote Stanford 196-class identifier to canonical submission (#33)
theDocWho +2: theDocWho, Claude Opus 4.7
Unverified signatureThe VMMRdb 1163-class identifier extension (Options 1, 2, 3) couldn't clear the Stanford 0.7703 baseline within the time budget: Option 1: 0.3304 (initial continue-train, full-frame) Option 2: 0.4114 (low-LR anneal on Option 1 ckpt) Option 3: 0.3193 (Mask R-CNN crop + Stanford recipe — regressed due to head re-init + aggressive LR) Rather than ship a worse-than-baseline identifier, this branch promotes the proven Stanford 196-class model to canonical. The VMMRdb attempts stay on branches (PR #31, #32) as the audit trail. Changes: - notebooks/ccdp_submission.ipynb: now the Stanford 0.7703 submission (was the VMMRdb 1163-class variant). §2.4 rewritten to explain why Stanford is canonical and document the VMMRdb attempts. - notebooks/legacy/ccdp_submission_vmmrdb.ipynb: previous VMMRdb notebook archived here with an "archived banner" pointing at PRs #31/#32 for the full work. - scripts/build_submission_package.py: --variant default flipped from "vmmr…11192a9
-
Bake metrics narrative into submission notebook (§2.4–§2.6, §3.3, §4.1, §11.2) (#29)
theDocWho +2: theDocWho, Claude Opus 4.7
Unverified signatureReviewers now see the full identifier / damage_seg / parts_seg / Variant-D story statically without running anything: - §2.4 — markdown explaining why 0.40 (VMMRdb) vs 0.77 (Stanford) is a preprocessing mismatch and class-granularity effect, not a model regression. Six-factor breakdown + an honest comparison table for Options 1 / 2 / 3. - §2.5 — train/val loss + top-1 accuracy curves per epoch with stage boundary annotated. Stanford curve always plotted; VMMRdb plotted when metrics.json is pulled from the Colab run. - §2.6 — three confusion / F1 views from the cached Stanford F1 run (data/eval/identifier_stanford_f1.json): top-20 by support heatmap, bottom-20 by F1 bar chart, and make-level aggregated heatmap (49 makes, 0.854 accuracy — the metric Variant D actually depends on). - §3.3 / §4.1 — damage_seg + parts_seg YOLOv8 per-epoch curves (box + mask loss, mAP50, mAP50-95, P/R) loaded from each run's ultralytics/results.csv. - §11.2 — Variant D end-to-end MAE on a ha…4176ea4 -
Pre-render Mermaid diagrams + bake preview outputs into submission notebook (#28)
theDocWho +1: theDocWho
Unverified signatureThe notebook on GitHub PR view was showing Mermaid blocks as raw code (GitHub doesn't render Mermaid inside .ipynb cells) and the dataset/inference preview cells were blank (no saved outputs). Both fixed. New: scripts/render_notebook_assets.py Two-pass renderer for ccdp_submission.ipynb: 1. Mermaid → PNG. Each ```mermaid block in markdown cells is pushed to mermaid.ink, the PNG fetched and saved to notebooks/assets/diagrams/, and the markdown rewritten to use . 11 diagrams rendered (39–63 KB each). 2. Cell execution. nbclient runs the notebook with allow_errors=True, stubbing only the two runtime-only cells (Colab upload widget + inference-on-IMG_PATH). Outputs saved into the .ipynb so the rendered view on GitHub now shows: - §1.5 CarDD val grid (random 8 images, matplotlib subplot) - §1.5 Stanford-Cars random samples grid - §3.3 damage_seg predicted-mask overlay (input + masks side by side) …6e031e4
-
Phase 6: VMMRdb identifier extension (196 → up to ~9,170 make/model/year)
Wires the CC0 Kaggle mirror of VMMRdb into the continued-training path so the make/model/year identifier can recognise far more cars — which flows straight into Variant D / multi-car costing (more cars named → better make/segment cost). - data/vmmrdb.py: loader mirroring the stanford_cars API. Auto-detects the class-folder layout, parses make/model/year from folder names, and supports a `top_n` cap (default 2000) to keep training tractable vs the 9,170-class tail. ROOT resolved at call time so it's reconfigurable. - train/continue_identifier.py + data/compcars.py: re-landed from the Phase-6 branch (warm-start the 196-class ResNet-50, swap head to the new label space, two-stage fine-tune, Stanford make-level forgetting anchor). - ml_identifier: read class_names from the checkpoint so a continue-trained model self-describes its (now ~2000) classes at inference. - CLI: `ccdp train identifier-continue --dataset vmmrdb --top-n 2000`. - download_datasets.sh: opt-in `VMMRDB=1` (C…2ad33c7
-
Initial commit: end-to-end car damage + repair-cost predictor
Variants A and B trained end-to-end on CarDD + comprehensive + iaai + Stanford Cars datasets, glued together by a versioned parts-cost catalog and a three-tier (exact / nearest-class / catalog-only) cost estimator with full provenance on every prediction. Production metrics (v0.1.0): - Identifier (ResNet50 + RandAugment + MixUp + CutMix): val acc 77.0% - Damage classifier (ResNet50, 6 damage types): val macro-F1 0.834 - YOLOv8n detector: mAP50 0.687, mAP50-95 0.540 - XGBoost(A) (image features only): val R² 0.630, test R² 0.642 - XGBoost(B) (+ bbox features): val R² 0.716, test R² 0.736 64 unit tests pass. Honest disclosures of synthetic-cost limitation in PLAN.md and progress/*.md.4ce7a7e