{
 "report": "fire-crosssource-heldout.html",
 "generated": "2026-07-11",
 "code_sha": "c8f25e902c5ba0810f05f0d9d188209edc5928c6",
 "claims": [
  {
   "metric": "mAP50 058->058 (in-source 상한)",
   "value": 0.5933,
   "ci": [
    0.5575,
    0.6216
   ],
   "seeds": [
    0.6007,
    0.6216,
    0.5575
   ],
   "n_seed": 3,
   "std": 0.0267,
   "uncertainty_kind": "model_seed_range"
  },
  {
   "metric": "mAP50 089->089 (in-source 상한)",
   "value": 0.8,
   "ci": [
    0.7975,
    0.8037
   ],
   "seeds": [
    0.8037,
    0.7975,
    0.7986
   ],
   "n_seed": 3,
   "std": 0.0027,
   "uncertainty_kind": "model_seed_range"
  },
  {
   "metric": "mAP50 058->089 (진짜 cross-source held-out)",
   "value": 0.1143,
   "ci": [
    0.0731,
    0.163
   ],
   "seeds": [
    0.0731,
    0.163,
    0.1069
   ],
   "n_seed": 3,
   "std": 0.0371,
   "uncertainty_kind": "model_seed_range"
  },
  {
   "metric": "mAP50 089->058 (진짜 cross-source held-out)",
   "value": 0.3428,
   "ci": [
    0.3113,
    0.3952
   ],
   "seeds": [
    0.3113,
    0.3952,
    0.3219
   ],
   "n_seed": 3,
   "std": 0.0373,
   "uncertainty_kind": "model_seed_range"
  },
  {
   "metric": "회복곡선 058+10%089 → 089 held-out mAP50",
   "value": 0.5282,
   "ci": [
    0.513,
    0.5465
   ],
   "seeds": [
    0.5465,
    0.513,
    0.5253
   ],
   "n_seed": 3,
   "std": 0.0138,
   "uncertainty_kind": "model_seed_range"
  },
  {
   "metric": "회복곡선 058+25%089 → 089 held-out mAP50",
   "value": 0.6343,
   "ci": [
    0.6243,
    0.6464
   ],
   "seeds": [
    0.6323,
    0.6243,
    0.6464
   ],
   "n_seed": 3,
   "std": 0.0091,
   "uncertainty_kind": "model_seed_range"
  },
  {
   "metric": "회복곡선 058+50%089 → 089 held-out mAP50",
   "value": 0.7278,
   "ci": [
    0.7158,
    0.7438
   ],
   "seeds": [
    0.7438,
    0.7158,
    0.7239
   ],
   "n_seed": 3,
   "std": 0.0117,
   "uncertainty_kind": "model_seed_range"
  },
  {
   "metric": "적응A/B AdaBN 라벨0 → 089 회복(무효 판정) mAP50",
   "value": 0.1014,
   "ci": [
    0.0811,
    0.1125
   ],
   "seeds": [
    0.0811,
    0.1125,
    0.1106
   ],
   "n_seed": 3,
   "std": 0.0144,
   "uncertainty_kind": "model_seed_range"
  },
  {
   "metric": "적응A/B full-FT 타깃만 10% → 089 회복 mAP50",
   "value": 0.4833,
   "ci": [
    0.4622,
    0.5072
   ],
   "seeds": [
    0.4622,
    0.4804,
    0.5072
   ],
   "n_seed": 3,
   "std": 0.0185,
   "uncertainty_kind": "model_seed_range"
  },
  {
   "metric": "적응A/B full-FT 타깃만 → 058 유지(망각 −40%) mAP50",
   "value": 0.3556,
   "ci": [
    0.3346,
    0.3682
   ],
   "seeds": [
    0.3682,
    0.3346,
    0.3641
   ],
   "n_seed": 3,
   "std": 0.015,
   "uncertainty_kind": "model_seed_range"
  }
 ],
 "data": [
  {
   "name": "AI-Hub 058 화재영상(과제71472) fire subset",
   "sha256": "0b264ff17e03fc92779330059a0469ca278edc1a257ce3084836f2d29fb53d42",
   "license": "AI-Hub 개방데이터(이용약관 준수·원본재배포 제한; 상업 제품화 전 약관 재확인)",
   "imgs": 1400,
   "provenance": "real_heldout"
  },
  {
   "name": "AI-Hub 089 화재감시(과제71751) fire-phenomena subset",
   "sha256": "c8f5adeacc08995f3283a4f68ccbded151bc972b3b01fe77fd76a6f70980ab20",
   "license": "AI-Hub 개방데이터(동일)",
   "imgs": 1400,
   "provenance": "real_heldout"
  }
 ],
 "split": {
  "type": "cross-source",
  "proof": "058(과제71472)·089(과제71751)은 서로 다른 AI-Hub 수집 캠페인. cross-source=train출처≠test출처(공유 이미지 0). in-source는 clip-disjoint(변환기 가드).",
  "leakage_check": "cross-source: 두 데이터셋 이미지 교집합 0. in-source: clip 단위 분할, 프레임 누수 없음."
 },
 "seeds": [
  0,
  1,
  2
 ],
 "seed_independence": "3 독립시드 서명 모두 상이(byte-identical 아님 자동검증).",
 "labels": {
  "verified_n": 5,
  "verifier": "Claude 자동에이전트 육안검증 2026-07-11(058 2장·089 3장, 박스가 실제 불/연기 위 확인). 인간 스팟체크 권장.",
  "auto_label_flagged": false,
  "note": "AI-Hub 공식 GT. annotation 스타일 상이(058 tight·부분 / 089 coarse·region)가 격차 일부."
 },
 "model": "yolo11s.pt·60ep·imgsz640·batch16·ultralytics(nemo-inspect:blackwell)",
 "caveats": [
  "mAP는 IoU기반이라 coarse GT(089) 특성 다름",
  "058 실외조건 클립 소수",
  "공개셋 간 측정 — 실제 고객 현장은 3차 도메인",
  "적응 A/B: 모두 058 best.pt 시작, 10%=클립단위 시드별 상이 샘플, last.pt(선택없음). AdaBN=BN reset+무라벨 재추정(자가검사 통과)."
 ],
 "recovery_note": "cross-source 붕괴(058만→089=0.15)에서 089 학습클립 f비율 주입 시 회복: 10%→0.53, 25%→0.63, 50%→0.73, 상한(089 in-source)≈0.80. 클립단위 샘플·089-val과 disjoint·3독립시드.",
 "ci_method": "ci = 3 독립시드 결과값의 min-max 범위(n=3, 부트스트랩 아님). std 병기."
}