Spaces:
Runtime error
Runtime error
Commit History
-
Update ROOT path for vmmrdb dataset location
theDocWhoUnverified signature6b92f4d -
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
-
Add Stanford Cars as 'no damage' negatives for the classifier
Root cause of the false-positive failure on undamaged cars: CarDD contains only damaged-car photos, so the classifier never sees a 'no damage' example and has no way to predict the empty label set. This commit teaches the trainer to mix Stanford Cars images (which are by-and-large undamaged) into the dataset with all-zero damage labels — Option A from the data-strategy discussion. What's new - iter_negatives() in data/loaders.py: scans Stanford Cars image directory, yields Records with damage_types=[] and dataset tag 'stanford_cars_negative'. Returns nothing (no error) if the directory is missing, so existing CarDD-only flows are unaffected. - mix_negatives() in damage_dataset.py: deterministic, ratio-controlled mixer. Caps at available negatives rather than oversampling with replacement (duplicating identical photos would just teach the model to memorise them). Doesn't mutate inputs. - TrainConfig.negative_ratio + --negative-ratio CLI flag. Default 0.0 preserves legacy …5da26fe
-
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