File size: 4,453 Bytes
a57fc9e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13a13e5
a4b562c
 
a57fc9e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a21be0d
a57fc9e
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
---
license: apache-2.0
language: en
tags:
  - industrial-inspection
  - metrology
  - crack-detection
  - segmentation
  - measurement
pipeline_tag: image-segmentation
---

# GaugeAnything — task heads for promptable quantitative inspection

**Masks in, millimeters out.** These are the trained task heads of
[GaugeAnything](https://github.com/falcons-eyes/GaugeAnything) — a promptable quantitative
inspection pipeline for industrial micro-vision (SAM 3 backbone + metrology core).

🌐 Project page: https://falcons-eyes.github.io/GaugeAnything/ ·
📊 All numbers below are audited (held-out splits, multi-seed where applicable, protocols in the repo).

## Checkpoints

| File | Task | Audited result | Training data | Use |
|---|---|---|---|---|
| `profile_width_cnn.pt` | **1-D crack-width regression** from a 501-px brightness profile (the "signal for HOW WIDE" head) | table test MAE **≈18.6 μm** (~1 μm GPU run variance); end-to-end promptable **39.9 μm MAE / 23.2 μm median** (localization-gated) | krkCMd, 14,424 profiles (**CC BY 4.0** — license-clean) | ✅ commercial OK |
| `gaugehead_tiny_width.pkl` | Tiny owned crack-width specialist over SAM-mask/image statistics | held-out source rel.err **0.472** vs 5-bin quantile 0.480 and old neural M2 0.564; worst source still 0.720 | CrackSeg9k M2 cache | ⚠️ research (subset licenses vary) |
| `gaugehead_tiny_width_conformal.pkl` | GaugeHead-Tiny + 90% conformal interval (log cross-conformal; μ + σ-diagnostic + q) | keeps rel.err **0.4724** with per-source coverage **0.91/1.00/0.95** @90%; adaptive variants collapse on the worst source (0.21/0.11) — see repo `experiments/results/m2_uncertainty_conformal.json` | CrackSeg9k M2 cache | ⚠️ research (subset licenses vary) |
| `m2_refiner.pt` | Measurement-aware crack mask refiner (UNet, 1.9M) | superseded baseline: a logit-threshold + quantile calibration beats it (0.437 vs 0.564 rel. err) — kept for reproducibility | CrackSeg9k train sources | ⚠️ research (subset licenses vary) |
| `matte_fray_directional.pt` | Alpha matting head for fuzzy-boundary (fray) defects, directional synthesis v2 | real MT-fray preservation IoU **0.949** vs classical guided filter 0.860 | synthetic compositing over Magnetic-Tile free images | ⚠️ research (MT license unstated) |
| `matte_fray.pt` | v1 (blob synthesis) — kept as the honest negative: real-transfer failure 0.483 | see repo progress logs | same | ⚠️ research |
| `draem_uneven.pt` | DRAEM-lite reconstruction head for boundaryless (uneven/mura) defects | test AUC 0.636 (classical illumination-residual baseline: 0.669) | synthetic mura over Magnetic-Tile free images | ⚠️ research |

The SAM 3 backbone is **not** redistributed here — get it at
[facebook/sam3](https://huggingface.co/facebook/sam3) (separate license, gated).

## Usage (profile width head)

```python
import torch, numpy as np

ckpt = torch.load("profile_width_cnn.pt", map_location="cpu")
# architecture: see experiments/krkcmd_signal_width.py::build_1d_net in the GitHub repo
from gaugeanything_repo.experiments.krkcmd_signal_width import build_1d_net, norm_profile
net = build_1d_net(); net.load_state_dict(ckpt["model"]); net.eval()

profile = np.asarray(...)          # 501 samples of image brightness across the crack
x = torch.from_numpy(norm_profile(profile)).view(1, 1, -1)
width_um = float(net(x))            # crack width in micrometers
```

Full pipeline (`prompt → SAM 3 localization → perpendicular profile → width`) lives in the
[GitHub repo](https://github.com/falcons-eyes/GaugeAnything) — see
`experiments/krkcmd_signal_width.py` and `docs/WIDTH_BOTTLENECK_ANALYSIS.md` for why
width is read from the signal, not from mask geometry.

## Honest limitations

- `profile_width_cnn` is trained on 6400-dpi scanner profiles of concrete (krkCMd);
  transfer to other resolutions/materials is **not yet validated** — scale-normalize inputs.
- End-to-end accuracy is **localization-gated**: coverage 46–66% on the scanner domain;
  points failing the gate are reported as "not measurable", not guessed.
- Heads marked *research* await upstream dataset license clarification before commercial use.

## Citation

```bibtex
@misc{gaugeanything2026,
  title  = {GaugeAnything: Promptable Quantitative Inspection for Industrial Micro-Vision},
  author = {Joo, Hyunwoo},
  year   = {2026},
  url    = {https://github.com/falcons-eyes/GaugeAnything}
}
```