α=0.10 ✓
Özgenel(독립 원본): 전 시드 보장 성립(FNR 3.6~5.2%)
α=0.05 부분
시드 2/3만 가능 — 불가는 불가로 판정
BCL: 시드별 상이
s2는 α=0.2도 불가(놓침 바닥 >20%)
100%
t* 존재하는 모든 셀에서 test FNR ≤ α (sanity)
1. 결과 — 보장 가능/불가 매트릭스 (test FNR = 분리된 테스트의 경험적 놓침율)
배포규칙 동치: 이진화≥t → 20px 미만 blob 제거 → GT 성분(≥8px)의 4px 유클리드 허용 내 겹침=검출. 놓침율=이미지별 성분 놓침비율의 평균(macro).
Özgenel — 독립 원본 458장(스케일 0.25 정합, 3-way 분리: 스케일선택 100 제외 → cal 150 / test 208)| 시드 | α=0.05 | α=0.10 | α=0.20 |
|---|---|---|---|
| s0 | 불가 | t*=0.96 · FNR 0.052 ✓ | FNR 0.052 ✓ |
| s1 | t*=0.06 · FNR 0.031 ✓ | t*=0.96 · FNR 0.041 ✓ | FNR 0.041 ✓ |
| s2 | t*=0.54 · FNR 0.034 ✓ | t*=0.96 · FNR 0.036 ✓ | FNR 0.036 ✓ |
| 시드 | α=0.05 | α=0.10 | α=0.20 | FP@t*(무크랙·게이트 전) |
|---|---|---|---|---|
| s0 | 불가 | 불가 | t*=0.96 · FNR 0.144 ✓ | 0.577 |
| s1 | 불가 | FNR 0.095 ✓ | FNR 0.095 ✓ | 0.555 |
| s2 | 불가 | 불가 | 불가 | — |
읽는 법 — 3가지 비자명 발견: ① "불가"가 제품이다: CRC는 이 (모델, 캘리 데이터) 쌍이 어떤 놓침율을 약속할 수 있는지 증명으로 가른다 — BCL·s2는 α=0.2조차 불가(고유 놓침 바닥 >20%), Özgenel·전시드는 α=0.1 가능. 부풀린 "95% 정확도"를 광고하는 업계에서, 불가능한 약속을 불가로 판정하는 것 자체가 차별. ② 다이얼이 아니라 바닥이 지배: U-Net 확률이 이분화(성분이 t=0.96에서도 잡히거나 아예 안 잡힘)라 t*가 grid 상단에서 포화 — 실제 지배 요인은 검출기의 고유 성분 놓침 바닥(시드별 5~20%+). 보장을 개선하려면 임계 조정이 아니라 모델·데이터 개선이 필요하다는 정직한 진단. ③ 보장은 (모델, 캘리셋) 쌍별: 같은 아키텍처라도 시드마다 가능한 α가 다르다 — 배포 모델마다 자기 캘리를 가져야 하며, 시드 간 t* 평균·차용은 금지.
⚠ 정정(2026-07-14) — "배포 검출기와 동일"은 게시 시점에 사실이 아니었다
자체 코드리뷰(6차원 적대검증)가 보장이 계산된 검출기와 출하되는 검출기가 다른 물건이었음을 적발했다. 숨기지 않고 그대로 공개한다:
| 항목 | 보장 계산(이 리포트) | 제품(당시) | 영향 |
|---|---|---|---|
| 연결성 | 8-연결 | 4-연결(scipy 기본) | 대각으로 이어진 얇은 균열이 조각나 20px 미만이면 제품이 버림 → 실제 놓침율이 보장보다 낙관 방향으로 이탈 |
| 추가 필터 | 없음 | min_len_px=15 | 짧은 균열 추가 소실(리뷰 실측 합산 ~6% 성분) — α=0.05 예산보다 큼 |
| 임계 | t*(α) | 고정 0.60 | t*=0.96 > 0.60이라 놓침은 우연히 보수적이나, 이 리포트의 FP 수치(0.55~0.58)는 t*에서 잰 값이라 제품(0.60)의 실제 FP를 기술하지 않는다 |
| 모델 | 연구 체크포인트(korea075 3시드) | bridge_v3_best.pt | 보장이 출하되지 않는 모델에서 계산됐다 |
★ 출하 모델 실측(2026-07-14) — 보장 불가가 사실로 확인: 출하 모델(bridge_v3)에서 보장을 재산출한 결과 α=0.05·0.10·0.20 어디서도 보장 불가. 로딩 오류가 아님을 같은 코드·같은 200장으로 확인: 출하 bF1@4px 0.241 vs 연구 체크포인트 0.771(BCL 실교량). 즉 이 리포트와 외부 OOD 리포트의 수치(0.679 등)는 연구 체크포인트의 것이며, 현재 출하되는 제품 모델은 그보다 3배 이상 약하다. 제품은 지금 "놓침율 ≤α" 계약을 할 수 없다.
조치(완료/진행): ① 배포규칙 단일 정본(
seg/deploy_rule.py) 신설 — 제품·CRC·envelope이 같은 함수를 호출하도록 리팩터링하고, bit-identical 회귀테스트(test_deploy_rule_equivalence.py)로 재발을 차단했다(현재 PASS). 비단조 필터(min_len)는 CRC의 손실 단조성을 깨 보장을 무효화하므로 제품에서 제거했다. ② 출하 모델(bridge_v3)에서 보장을 재산출 중이며, 완료되면 제품 설정에 t_hat(α)을 박고 이 리포트를 갱신한다. ③ 모델 승격 검토: 연구 체크포인트(korea075 구조물 통합 학습)가 외부 전이에서 월등하므로, 검증 후 제품 모델 교체가 정공법이다(무단 교체 대신 075 교량 검증 + 3시드 재현 후 반영). [2026-07-14 승격 완료] head-to-head 검증(BCL 외부 0.24→0.82, 075 한국대상 전 구조물 우세) 후 연구 체크포인트(ck_s1)를 제품 bridge_v4로 승격했다(config.yaml + guarantee 블록, sha256 기록). ck_s1은 α=0.10 보장 성립(t̂=0.96, FNR 0.095)하는 유일 시드다. 즉 이 리포트의 수치는 이제 승격된 제품 모델의 것이다. 단 보장은 BCL 도메인이며 파일럿 현장(한국 교량)엔 현장 캘리로 재산출한다. 프로덕션 컨테이너 재시작 시 반영. 상세=strategy/MODEL_PROMOTION_2026-07-14.md.2. 보장 문구 — 무엇을 보장하고, 무엇을 보장하지 않는가
통계적 보장(CRC): 캘리브레이션 데이터와 같은 조건·같은 수집과정에서 교환가능하게 추출된 새 이미지에 대해, 제공된 GT 라벨 기준 8px 이상 크랙 성분의 기대 놓침율(이미지 평균) ≤ α를 분포 모형 가정 없이 보장한다(경계 4px 허용, 검출 규칙은 배포 검출기와 동일 — 단, 이 동일성은 2026-07-14에야 코드로 강제됐다. 아래 정정 참조).
보장이 아닌 것(정직): ① 개별 이미지·개별 크랙에 대한 보장이 아니라 기대값 보장이다(단일분할 test FNR≤α는 sanity check이지 보장의 증명이 아님). ② 촬영 조건(카메라·거리·조도·계절·표면)이 캘리 시점과 달라지면 보장은 성립하지 않으며 재캘리브레이션이 필요하다. ③ 오탐(FP)율은 보장 대상이 아니라 선택된 운영점에서의 실측 공개값이다(BCL: FP 0.55~0.58 — 제품에선 VLM 게이트가 85% 기각, 별도 실측). ④ BCL 검증은 패치 풀 내 held-out이며(패치들이 원본 사진 공유) 새 교량·새 촬영으로의 이전을 입증하지 않는다 — Özgenel(독립 원본)이 그 보완이며, 현장 적용 시 해당 현장 파일럿 데이터로 재캘리브레이션한다(α=0.05 보장엔 크랙 포함 라벨 이미지 최소 19장, 실용적으론 수백 장).
제품 스토리: 파일럿 현장 데이터 소량으로 ①적응(화재 회복곡선: 10%로 격차 57% 회복)하고 ②같은 데이터로 컨포멀 캘리브레이션하면, 그 현장에 대한 "놓침율 ≤α" 계약이 가능한지가 증명으로 판정된다 — 가능하면 보장된 운영점을, 불가면 정직한 한계와 개선 경로(더 많은 데이터·모델 개선)를 제시한다.
3. 방법·검증
- CRC 선택식: t*(α) = max{t : (n·R̂(t)+1)/(n+1) ≤ α} — 손실(놓침비율)이 t에 단조증가하는 방향으로 논문과 등가(치환 증명 + 몬테카를로 20,000회×3분포에서 E[loss(t*)]≤α 재현).
- 실행 전 적대검증: 3렌즈(수학·구현·정직성) 워크플로가 6개 결함을 사전 적발 — 특히 배포규칙 불일치(min_area=20 미반영→보장 이전 불가)를 실행 전에 잡아 스코어를 배포 동치로 재구현.
guarantee_holds필드명(기대값 보장을 단일분할 검증으로 오독)도 사전 차단. - 스코어 정의: GT 성분의 검출 점수 = 배포규칙(이진화→20px blob 필터→4px 유클리드 허용)으로 검출되는 최대 임계(grid 하강 스윕) — min_area 하에서도 단조성 유지=CRC 유효.
- 분리: 파일명 md5 결정론(콘텐츠 독립). Özgenel은 스케일 선택에 쓴 100장을 제외한 3-way 분리(선행실험 오염 회피).
재현·검증: 데이터 sha256·코드 SHA·손실 정의·배포규칙·split_unit(패치 누수 명기)·시드별 t*/FNR을 담은
서명 매니페스트 동봉(정직성 게이트 통과). 결과 JSON에 히든 파라미터 전체 기록.immersivecast · measure-first · Conformal Risk Control 놓침율 보장 실측 · 2026-07-13