本文档用于登记训练权重对应的分割指标。每次更换或训练出新权重后,使用同一套输入、参考标签和命令生成 JSON 与 Markdown,便于横向比较。
2026-06-06 已完成:
- 演示当天收口 + B1-B4 演示关键 bug 修复:
- B1 SSE 进度回退:
src/main.tsx的inferenceTimeline进度追踪以event.percent存在为强信号;心跳事件没有percent字段时不再覆盖当前进度。2026-06-0676bb1ff补完:6-0623e0c4d虚标;同日76bb1ff真正实现parsed.heartbeat && parsed.progress === 0守护。 - B2 取消后残留进度:后端
cancel_job()在EventSourceHandler关闭后写取消状态;前端不把 cancel 后的心跳误显示为"还在跑"。2026-06-0676bb1ff补完:6-0623e0c4d虚标;同日76bb1ff真正实现inferenceStatusRef镜像 + SSE onmessage 入口 cancelled 早退。 - B3 后端模型状态对外可读:
/api/health的model_state字段从内部变量提升为可被 GUI 状态栏读取的稳定 JSON 字段(status/checkpoint_sha256/mode/missing)。tests/backendState.test.py::test_health_exposes_model_state_for_gui_status_bar守护。2026-06-06 真实完成。 - B4 SSE 基础异常重试:
createInferenceEventSource暴露onretry/retryCount字段;单次断连后自动退避重连(200ms→2s 指数退避,最多 3 次)。2026-06-0676bb1ff补完:6-0623e0c4d虚标;同日76bb1ff真正抽出src/inference/createInferenceEventSource.ts工具并接入。 - 演示启动脚本化:
tools/start_local_demo.py一行启动:setenv + spawn backend/frontend + 启动后采样/api/samples(最多 15s)校验 4 例参考病例(AMOS 0117 / FLARE22 Tr 0009 / WORD / AbdomenCT-1K)已就绪 + 失败时打印 runbook 回退命令。配套卡片见docs/demo-day-checklist.md。 - server mode gating 6 路径修复:
runtime_target=server创建 job 时只检查 6 个SEGMENTATION_SERVER_*路径(server_evaluate_full.py/server_dataset.json/server_nnunet_raw/server_nnunet_preprocessed/server_nnunet_results/server_output_root),不被本地 Windows nnUNet 文件缺失阻断;runtime_target=local才检查本地 4 文件。tests/backendState.test.py新增 3 个守护测试。 - AMOS 0117 演示口径(2026-06-05 决策,6-06 落地):cache hit
aea4e7cdbaf0命中的是 2026-05-23 quality profile 真实推理009d4efdc5f6(review 状态,stomach Dice 0.556、mean_dice 0.891);stomach 0.556 是数据本身硬骨头。决策:接受现状,不复跑 AMOS 0117。本文件所有 AMOS 基线数值(b3c528cc9e20mean Dice 0.924780、27216eb73220mean Dice 0.924791、6 类指标 in2d477d8bbd7dcache hit 等)保持不变。
- B1 SSE 进度回退:
- 本轮不修改:
surface_distances()2 EDT 实现、6 类指标计算路径或历史 baseline 数值;AMOS quality / FLARE22 自动 remap / FLARE22 离线 remap 三套历史基线不变。
2026-06-05 已完成:
- HTML 报告临床报告风格重构(第二轮美化):
src/report/exportReport.ts从"卡片式仪表板"重塑为"临床评估报告"。新增 7 个 CSS 块:.cover封面页(题图条 + 报告编号 + 主副标题 + 数据集/病例/生成时间三列)、.exec-summary执行摘要(通过 / 关注点 / 建议三栏)、.toc目录(§1-§8 锚点导航)、.formula-tip公式小贴士(Dice / IoU、Pixel Accuracy、HD95 三张)、.dist-chart严重度分布图(高/中/低 bar chart)、.table-caption表格标题、.footnotes脚注;新增 3 个工具函数distributionChartHtml()/severityBuckets()/formulaTips();正文模板按 §1 报告概览 / §2 摘要 / §3 数据集 / §4 器官 / §5 体素 / §6 距离 / §7 关键发现 / §8 附录 8 段章节编号排版;字体改为 Source Han Serif / Songti SC + JetBrains Mono;@media print 改为 A4 + 顶部 caseId + 底部 page X of Y。本轮不动surface_distances()、AMOS quality / FLARE22 自动 remap / FLARE22 离线 remap 三套历史基线或 6 类指标计算路径。 - 不变量回归保护:本轮不动
src/inference/inferenceClient.ts的ValidationSummary/LabelMetric白名单;与 2026-06-04 第一轮美化的所有功能(remap 警告条、taxonomy / dataset_hint 展示位、spacing 可视化、historical 警告条、aiFindings 严重度排序、器官列表折叠、列固定/排序)兼容并叠加。
2026-06-04 已完成:
- HTML 报告第一轮美化(视觉层 + 信息层):
src/report/exportReport.ts从"工程 dump"提升为"卡片式仪表板"。视觉层:色阶图例、Header 渐变、3 个 metric group 加组标题图标、aiFindings 严重度排序 +.severity-{high,medium,low}高亮、器官列表用<details><summary>折叠、逐标签表列固定 + 列点击排序、@media print A4 页眉页码。信息层:remap_applied 顶部警告条、taxonomy / dataset_hint 展示位、spacing 可视化、historical 警告条。src/main.tsx:handleExport透传validation.remap_applied/taxonomy_match/dataset_hint/historical/label_taxonomy。tests/imagingLogic.test.ts新增 source-grep 断言保护 4 个新 class。 - 本轮不修改
surface_distances()2 EDT 实现、6 类指标计算路径或历史 baseline 数值;6 类指标在 AMOS quality 缓存命中(2d477d8bbd7d/9fd0fdc39960/096e5b8349df)上的具体数值仍为 mean Dice 0.891327、mean Pixel Accuracy 0.999855、mean HD 9.59281mm、mean HD95 3.596449mm、mean ASD 0.660724mm。
2026-06-03 已完成:
- 质量评估指标扩展:把 quality 评估报告补齐到 6 类医学影像主流指标(Dice / IoU / Pixel Accuracy / HD / HD95 / ASD)。
server/main.py新增surface_distances()(1 crop + 2 EDT/label),把单 label 的distance_transform_edt调用从 6 次合并到 2 次;validation_summary.json增补 12 个新字段(pixel_accuracy 4 项 + HD/HD95/ASD 9 项 + surface_distance_unit + spacing);src/inference/inferenceClient.ts在ValidationSummary/LabelMetric增补对应字段并加入normalizeValidation()白名单;src/report/exportReport.ts报告模板新增 3 个 metric group(区域重叠度 · Dice / IoU、像素准确率 · Pixel Accuracy、表面距离 · HD / HD95 / ASD)和 4 个逐标签列(像素准确率、ASD (mm)、HD95 (mm)、HD (mm))。AMOS 0117 quality 缓存命中实测:validation 阶段从 38.86s 降到 16.78s(约 2.3× 加速)。 - 回归测试:
tests/backendState.test.py新增test_surface_distances_matches_legacy_individual_functions(4 shape × 8 场景 1e-9 精度对照)、test_surface_distances_uses_fewer_distance_transforms_than_legacy(patchscipy.ndimage.distance_transform_edt计数恒为 2)、test_compute_label_metrics_with_surface_distances_faster_than_legacy(wall-time 加速比 ≥30% 断言);tests/imagingLogic.test.ts新增全部新 metric 字段的 source-grep 约束和parseInferenceEvent()complete 事件解析值测试。 - 基线数值不变:本轮不修改 AMOS
qualityprofileb3c528cc9e20(mean Dice 0.924780)、FLARE22 自动 remapa717dacf42d3(mean Dice 0.926)、FLARE22 离线 remap86b0153d0a73(mean Dice 0.893127)三套历史基线;新指标在 AMOS quality 缓存命中(如2d477d8bbd7d/9fd0fdc39960/096e5b8349df)上的具体数值为 mean Pixel Accuracy 0.999855、mean HD 9.59281mm、mean HD95 3.596449mm、mean ASD 0.660724mm。
2026-06-02 已完成:
detect_dataset()二轮收紧:参考覆盖 ckpt 标签 ≥ 0.85 时直接返回None,避免 AMOS 1-13 真实数据被错判为 FLARE22。- 前端
loadReferenceCase()按referenceCase.dataset自动设置label_taxonomy:AMOS →AMOS22、FLARE22 →FLARE22、其他保持原值。auto退化为保底策略。 dataset_hint字段打通 auto 边界:0.85 守卫下 FLARE22 真实 1-13 也会被返回None,因此新增dataset_hint表单字段——前端在loadReferenceCase()成功后把referenceCase.dataset写入referenceCaseDatasetHint状态并随 job 提交,后端validate_against_custom_label()在taxonomy=auto + dataset_hint=FLARE22时强制 remap,覆盖 0.85 守卫的 None;上传自定义 NIfTI 时前端清空referenceCaseDatasetHint避免错误继承。tests/backendState.test.py新增 AMOS 1-13 + ckpt 1-15 真实 case 测试、test_validate_against_custom_label_uses_dataset_hint_when_taxonomy_is_auto,更新 FLARE22 1-13 + ckpt 1-15 用例注释。- 本文档既有 AMOS quality 基线
b3c528cc9e20(mean_dice 0.924780)和新权重首跑27216eb73220(mean_dice 0.924791)保持不变;2026-06-02 修复仅影响auto模式下的 taxonomy 判定逻辑与auto边界下 FLARE22 的 remap 路径,不改变已记录的任何指标数值。
2026-06-01 已完成:
- 本地缓存演示 7 步:AMOS 0117 cache hit、FLARE22 Tr 0009 真实推理、FLARE22 cache hit
- 新增
tools/seed_demo_cache.py(幂等可重跑)和docs/local-cache-demo-runbook.md - 新增 spec/plan:
docs/superpowers/specs/2026-06-01-local-cache-demo-design.md、docs/superpowers/plans/2026-06-01-local-cache-demo.md - 在
D:\BME2026\BME_CT_Seg\nnunet_env装了fastapi 0.136.3 / uvicorn 0.48.0 / python-multipart 0.0.30
2026-05-31 已完成:
- 显式
label_taxonomy=auto|AMOS22|FLARE22功能,修复了 AMOS 标签被误判为 FLARE22 的问题 - AMOS CT 高分辨率在线推理(768×768×103,fast profile,mean_dice=0.77724)
- 新部署包
server-runtime-package-20260531.zip已创建
当前进行中:
- 高分辨率 CT 推理优化评估(预降采样方案)
- 服务器 AMOS/FLARE 显式 taxonomy 复跑验证
remap_applied状态(AMOS 0117 演示口径决策后已不再复跑 AMOS 0117,但仍需在新服务器窗口上复跑确认remap_applied=false后纳入正式基线)
2026-06-11 增量:
- 启动操作手册独立化:把
tools/start_local_demo.py的"线下实时启动"操作抽成独立文档docs/quickstart-launch-guide.md,与docs/demo-day-checklist.md(演示当天)和docs/local-cache-demo-runbook.md(cache demo 7 步复跑)形成三档文档分工。任何时候要把 GUI 起来看 → 走 quickstart;演示当天 → 走 checklist;cache demo → 走 runbook。 - 文档巡检同步:9 份核心文档全部补一行 quickstart 索引;中文主体仍合格。
- 新 planning 主题:
.planning/2026-06-11-launch-guide-and-doc-sync/4 份文档落地。 - 本轮不动
surface_distances()2 EDT 实现、6 类指标计算路径或任何历史 baseline 数值;AMOS quality / FLARE22 自动 remap / FLARE22 离线 remap 三套历史基线(b3c528cc9e20mean Dice 0.924780、a717dacf42d3mean Dice 0.926、86b0153d0a73mean Dice 0.893127)保持不变。
2026-06-13 增量 — 文档一致性巡检 + 提交包打包:
- 9 份 md "4 端点 → 1 端点"措辞统一:
tools/start_local_demo.py实际只采样/api/samples(最多 15s)校验 4 例参考病例(AMOS 0117 / FLARE22 Tr 0009 / WORD / AbdomenCT-1K)已就绪;6-06 起的"4 端点 smoke test"措辞漂移 7 天没人发现。lesson:事实声明必须靠 source-grep 守护。 - 评审在任意电脑极简运行手册:新增
RUN_ON_OTHER_PC.md(4 章 + 6 个 FAQ),面向压缩包评审场景;主仓库 5 个本地 nnUNet 路径加 env var override(SEGMENTATION_NNUNET_RAW/_PREPROCESSED/_RESULTS/_PYTHON/_FILES),不再硬编码D:\BME2026\BME_CT_Seg\父目录布局。 server/server_inference.py6 个 server 路径默认值脱敏:原/mnt/data0/LUO_Zheng/...改为<需设置 SEGMENTATION_SERVER_* 环境变量>;tests/backendState.test.py31 处 fixture 同步替换LUO_Zheng→user_eval并去 PowerShellSet-Content -Encoding utf8引入的 UTF-8 BOM。- 新 planning 主题:
.planning/2026-06-13-doc-consistency-pass/4 份文档落地(explanation / findings / progress / task_plan)。 - 不修改
surface_distances()2 EDT / 6 类指标实现路径或任何历史 baseline 数值;本文件覆盖的b3c528cc9e20mean Dice 0.924780 /a717dacf42d3mean Dice 0.926 /86b0153d0a73mean Dice 0.893127 三套基线保持不变。
python tools\segmentation_metrics_summary.py `
--prediction <prediction.nii.gz> `
--reference <reference-label.nii.gz> `
--checkpoint <checkpoint_best.pth> `
--labels-json <validation_summary.json> `
--sample-id <sample-id> `
--output-dir .test-output\<metrics-run-id> `
--stem <run-name>-segmentation-metrics输出文件:
<run-name>-segmentation-metrics.json:结构化指标,适合脚本读取和后续对比。<run-name>-segmentation-metrics.md:人工阅读版指标摘要。
记录字段:
- Dice:逐标签、平均值、最低值、前景值。
- IoU:逐标签、平均值、最低值、前景值。
- Voxel Accuracy / Pixel Accuracy:3D NIfTI 中两者均为体素逐点 exact-match accuracy。
- Hausdorff Distance:按 NIfTI spacing 计算的对称 surface Hausdorff Distance,单位为 mm。
- Checkpoint 元数据:路径、文件大小、修改时间和 SHA256。
标签源要求:
- 优先使用本次推理生成的
validation_summary.json,因为它来自 checkpoint 内嵌的dataset_json,能保留当前权重的完整标签定义。 - 不要混用旧的外部
dataset.json;如果标签集合不同,会导致 label 名称错位或漏记空标签。 - 本轮 checkpoint 定义 15 个前景标签。AMOS 0117 的参考标签实际只出现 label
1..13;如果预测也没有 label14/15,它们记录为 N/A。如果预测出现 label14/15假阳性,则 Dice/IoU 为0并应纳入 fast/quality 对照判断。 - 2026-05-26 后端新增输入后缀规范化,确保
.nii上传会按当前模型file_ending=.nii.gz进入 nnUNetv2;该工程修复不改变本文件既有指标数值。 - 2026-05-27 标签文件传输修复后,后端在线 custom label validation 已可用。当上传的标签 ID 与 checkpoint 不一致时,
server/taxonomy.py会自动检测数据集来源(如 FLARE22)并按器官名重映射 ID,validation 结果中remap_applied: true表示已自动重映射。 - 2026-05-29 缓存命中时不再复用缓存来源 job 的
validation;预测 NIfTI 可复用,但 Dice/IoU/Hausdorff 必须来自本次请求的标签文件或内置参考标签。 - 2026-05-29 自动 remap 支持部分 FLARE22 标签:当至少两个共享 ID 明确语义错位且没有原生匹配时可识别为 FLARE22;单 label 文件仍不自动推断数据集来源。
- 2026-05-30 新增
runtime_target=local|server和局域网访问配置后,本文件中的历史 AMOS/FLARE 指标不变;本地 fold0、服务器 5-fold ensemble 和不同 profile 的指标必须分开记录,不能混算。 - 2026-05-31 校园网服务器 5GPU/5-fold smoke 已跑通并回填 GUI;FLARE 轮次 remap 后指标合理,AMOS 轮次出现
mean Dice=0.076015、foreground Dice=0.979808且remap_source=FLARE22的异常。该 AMOS 数值暂列为 taxonomy 误判证据,不作为模型质量基线。 - 2026-05-31 显式
label_taxonomy=auto|AMOS22|FLARE22已实现,detect_dataset()更保守:标签 ID 是 checkpoint 子集时不触发 remap。AMOS CT 高分辨率推理完成(fast profile,mean_dice=0.77724)。 - 2026-05-31 新增的影像量化分析来自前端已回填的预测 mask 与 NIfTI spacing,输出体积、截面积和长度估算;它不改变本文件中的 Dice、IoU、Voxel Accuracy 或 Hausdorff Distance 口径。
- 2026-06-01 本地缓存演示:AMOS 0117 cache hit(
aea4e7cdbaf0,命中009d4efdc5f6,review,mean_dice 0.891,stomach 0.556);FLARE22 Tr 0009 真实推理(0aa7323a4c01,quality 模式,218s,结果 120KB);FLARE22 cache hit(02da885c97d8,0.001s,命中0aa7323a4c01)。该演示不修改本文件既有 AMOS 基线b3c528cc9e20(mean_dice 0.924780)和新权重首跑27216eb73220(mean_dice 0.924791)。tools/seed_demo_cache.py是该演示的预热脚本,幂等可重跑;cache_key 7 字段隔离已实测正确。 - 2026-06-01 晚间 cache 链路补丁:FLARE22 cache hit 现在能正确显示历史 validation 摘要(0.893127/0.67373/0.949908,"(历史离线缓存摘要)");
tools/rewrite_flare22_historical_summary.py把 2026-05-26 remap 后的 metrics 写入 0aa7323a4c01 的 output。server/main.py的complete_cached_job()增加 historical 回退,find_cached_prediction()候选排序改为(has_validation_summary, mtime)降序。该补丁不修改本文件任何基线指标数值,仅修正 cache hit 时的 validation 显示口径;AMOS 原生基线b3c528cc9e20(mean_dice 0.924780)仍是 quality profile 的正式 AMOS 验证。
本轮新权重:
D:\BME2026\BME_CT_Seg\segmentation-gui-prototype\nnunetv2_files\checkpoint_best.pth
预测结果:
D:\BME2026\BME_CT_Seg\segmentation-gui-prototype\.test-output\acceptance-new-weight-20260524-201714\work\27216eb73220\output\27216eb73220.nii.gz
参考标签:
D:\BME2026\BME_CT_Seg\segmentation-gui-prototype\nnunetv2_files\amos_0117(2).nii.gz
详细输出:
- JSON:
D:\BME2026\BME_CT_Seg\segmentation-gui-prototype\.test-output\segmentation-metrics-new-weight-20260524-2215\new-weight-amos0117-segmentation-metrics.json - Markdown:
D:\BME2026\BME_CT_Seg\segmentation-gui-prototype\.test-output\segmentation-metrics-new-weight-20260524-2215\new-weight-amos0117-segmentation-metrics.md
无缓存 warm timeout 后补充输出:
- Prediction:
D:\BME2026\BME_CT_Seg\segmentation-gui-prototype\.test-output\perf-no-cache-persistent-20260524-212332\work\685426290aa4\output\685426290aa4.nii.gz - JSON:
D:\BME2026\BME_CT_Seg\segmentation-gui-prototype\.test-output\segmentation-metrics-warm-timeout-20260524-2257\warm-timeout-amos0117-segmentation-metrics.json - Markdown:
D:\BME2026\BME_CT_Seg\segmentation-gui-prototype\.test-output\segmentation-metrics-warm-timeout-20260524-2257\warm-timeout-amos0117-segmentation-metrics.md - 结果 SHA256:
5473EAFB22FA21B896F8511BE9E02FFD49D678DEE4B82E63681FDD99DA57D9C0
2026-05-25 fast/quality no-cache profile 对照输出:
- 快速预览 prediction:
.test-output\perf-fast-profile-20260525-1305\work\6802e01f1a73\output\6802e01f1a73.nii.gz - 快速预览 JSON:
.test-output\segmentation-metrics-fast-profile-20260525-1312\fast-profile-amos0117-segmentation-metrics.json - 快速预览 Markdown:
.test-output\segmentation-metrics-fast-profile-20260525-1312\fast-profile-amos0117-segmentation-metrics.md - 质量推理 prediction:
.test-output\perf-quality-profile-20260525-1330\work\b3c528cc9e20\output\b3c528cc9e20.nii.gz - 质量推理 JSON:
.test-output\segmentation-metrics-quality-profile-20260525-1433\quality-profile-amos0117-segmentation-metrics.json - 质量推理 Markdown:
.test-output\segmentation-metrics-quality-profile-20260525-1433\quality-profile-amos0117-segmentation-metrics.md
| 指标 | 数值 |
|---|---|
| mean Dice | 0.924791 |
| min Dice | 0.846551 |
| foreground Dice | 0.980316 |
| mean IoU | 0.865105 |
| min IoU | 0.733930 |
| foreground IoU | 0.961392 |
| Voxel Accuracy | 0.998578 |
| Pixel Accuracy | 0.998578 |
| mean Pixel Accuracy(label 平均,2026-06-03 增补) | 0.999855 |
| min Pixel Accuracy(2026-06-03 增补) | 0.999493 |
| foreground Pixel Accuracy(2026-06-03 增补) | 0.998252 |
| mean Hausdorff Distance | 7.716048 mm |
| max Hausdorff Distance | 16.562684 mm |
| mean HD95(2026-06-03 增补) | 3.596449 mm |
| max HD95(2026-06-03 增补) | 16.540683 mm |
| mean ASD(2026-06-03 增补) | 0.660724 mm |
| max ASD(2026-06-03 增补) | 3.58299 mm |
| surface_distance_unit | mm |
| spacing | [0.5078125, 0.5078125, 5.0] mm |
同一 AMOS 0117 输入、同一 checkpoint、同一性能脚本,均禁用历史缓存:
| 指标 | 快速预览 profile | 质量推理 profile |
|---|---|---|
| job id | 6802e01f1a73 |
b3c528cc9e20 |
| duration_seconds | 384.345 |
1360.398 |
| persistent_worker | 381.448 |
1357.677 |
| result_bytes | 142578 |
141568 |
| validation status | review |
passed |
| mean Dice | 0.777243 |
0.924780 |
| min Dice | 0.000000 |
0.846569 |
| foreground Dice | 0.972898 |
0.980317 |
| mean IoU | 0.713592 |
0.865088 |
| min IoU | 0.000000 |
0.733957 |
| foreground IoU | 0.947226 |
0.961394 |
| Voxel Accuracy | 0.998068 |
0.998578 |
| Pixel Accuracy | 0.998068 |
0.998578 |
| mean Hausdorff Distance | 10.282058 mm |
7.716048 mm |
| max Hausdorff Distance | 24.616009 mm |
16.562684 mm |
| label 14 prediction_voxels | 664 |
0 |
| label 15 prediction_voxels | 670 |
0 |
结论:
quality应作为默认/正式报告依据。fast可作为快速预览或演示模式,但必须标注“需复核”。- label
14/15的小体积假阳性只在本轮fastprofile 中出现;如要过滤,应作为独立postprocess实验记录,不能混同模型原始输出。 - 2026-05-25 后续实现已把
quality/fast做成每次 job 的显式产品选择。inference_options会随创建响应、job state、SSE complete 事件和job_summary.json保存;本节指标仍只代表上表两次原始模型输出,没有新增后处理分数。
2026-05-26 新增 FLARE22 Tr 0009 后执行一次 quality 在线推理。该病例的原始 FLARE22 label ID 顺序与当前 AMOS22 checkpoint 不一致;当时的下表指标来自离线 remap:先按器官名把 FLARE22 label 映射到 AMOS22 checkpoint label ID,再运行指标脚本,仅作为非 AMOS 对照证据。
2026-05-28 已将同一类映射能力产品化到后端 server/taxonomy.py:用户上传 FLARE22 标签文件时,后端会自动检测来源数据集并按器官名重映射后计算在线 Dice。最新在线验证记录见本节后面的“自动 taxonomy remap 在线验证”。
运行输出:
- Job summary:
.test-output\flare22-tr-0009-quality-20260526\job_summary.json - Prediction:
.test-output\flare22-tr-0009-quality-20260526\86b0153d0a73.nii.gz - Remapped reference:
.test-output\flare22-tr-0009-quality-20260526\FLARE22_Tr_0009_label_remapped_to_amos_ids.nii.gz - Remap metadata:
.test-output\flare22-tr-0009-quality-20260526\flare_to_amos_label_remap.json - Metrics JSON:
.test-output\flare22-tr-0009-quality-20260526\metrics-remapped\flare22-tr-0009-quality-remapped-segmentation-metrics.json - Metrics Markdown:
.test-output\flare22-tr-0009-quality-20260526\metrics-remapped\flare22-tr-0009-quality-remapped-segmentation-metrics.md
推理记录:
| 指标 | 数值 |
|---|---|
| job id | 86b0153d0a73 |
| mode | real-nnunetv2 |
| cached_result | false |
| profile | quality |
| duration_seconds | 237.323 |
| phase_timings | prepare_runtime_model=0.003, persistent_worker=237.119, collect_result=0.001 |
| result_size_bytes | 120761 |
| GPU at completion | NVIDIA GeForce RTX 4060 Laptop GPU, 1804 / 8188 MiB, 18% |
重映射后的聚合指标:
| 指标 | 数值 |
|---|---|
| mean Dice | 0.893127 |
| min Dice | 0.673730 |
| foreground Dice | 0.949908 |
| mean IoU | 0.815941 |
| min IoU | 0.507989 |
| foreground IoU | 0.904594 |
| Voxel Accuracy | 0.991879 |
| Pixel Accuracy | 0.991879 |
| mean Hausdorff Distance | 12.595149 mm |
| max Hausdorff Distance | 38.043429 mm |
| label 14 prediction_voxels | 0 |
| label 15 prediction_voxels | 0 |
本次重映射对照中,逐标签最低值为 duodenum Dice 0.673730、pancreas Dice 0.806389 和 esophagus Dice 0.808989;最高 Dice 为 liver=0.968961、spleen=0.965952 和 gall_bladder=0.949364。
解释边界:
- 这是 2026-05-26 的离线 remap 对照,不是当时的后端自动验证;不能与 AMOS 0117 原生标签指标混算。
- 该 remap 只适合作为 FLARE22 与 AMOS22 checkpoint 共有 13 个器官的器官名对齐检查。
- FLARE22 本例没有膀胱或前列腺/子宫标签;label
14/15仍为空,并且本次quality运行中对应预测体素为0。
2026-05-28 自动 taxonomy remap 上线后,FLARE22 Tr 0009 上传标签文件即可在后端在线 validation 中自动重映射:
| 指标 | 数值 |
|---|---|
| job id | a717dacf42d3 |
| mode | real-nnunetv2 |
| cached_result | false |
| profile | quality |
| remap_applied | true |
| remap_source | FLARE22 |
| mean Dice | 0.926 |
| validation status | passed |
解释边界:
- 该记录证明跨数据集在线 validation 链路已打通,但仍是 FLARE22 标签按器官名重映射后的指标,不是 AMOS 原生标签验证。
remap_applied: true是解释指标的关键字段;缺少该字段时,不应把 FLARE22 原始 label ID 直接当作 AMOS22 label ID 解读。- 当前部分标签自动 remap 只覆盖至少两个明确错位 ID 的情况;只有单个 label ID 的文件仍应记录为人工判断或等待显式数据集 hint。
Checkpoint 元数据:
| 字段 | 数值 |
|---|---|
| size_bytes | 1136119762 |
| modified_time | 2026-05-24T10:04:22+00:00 |
| sha256 | 45021cef5f37868f8e76f4c372b5d911eef259db6d38943779ba25318c37e6c7 |
2026-05-31 已完成校园网服务器在线推理 smoke。该部分指标与本地 AMOS quality 基线分开记录:
| 服务器轮次 | 指标 | 当前解释 |
|---|---|---|
| FLARE22 + 标签 | mean Dice 约 0.891,foreground Dice 约 0.951,总耗时约 3分48秒 |
FLARE22 → AMOS22 remap 后结果合理,可证明服务器推理、ensemble、下载和前端回填链路可用。 |
| AMOS 0117 + AMOS 标签 | mean Dice 0.076015,foreground Dice 0.979808,总耗时约 9分46秒 |
报告显示 remap_applied=true、remap_source=FLARE22,更像 AMOS 原生标签被错误 remap;暂不作为模型失败证据。 |
后续只有在显式 label_taxonomy=AMOS22 下复跑并确认 remap_applied=false 后,才能把 AMOS 服务器轮次纳入正式质量指标表。
数值来自 2026-06-03 之后的 AMOS quality cache hit(如
2d477d8bbd7d),使用surface_distances()2 EDT 实现。HD/HD95/ASD 单位为 mm,Pixel Accuracy 为 0-1 比例。
| 标签 | 名称 | Dice | IoU | 像素准确率 | HD (mm) | HD95 (mm) | ASD (mm) |
|---|---|---|---|---|---|---|---|
| 1 | 脾脏 | 0.979085 |
0.959027 |
0.999861 |
6.09375 |
1.015625 |
0.157572 |
| 2 | 右肾 | 0.978704 |
0.958296 |
0.999925 |
6.621065 |
1.015625 |
0.15945 |
| 3 | 左肾 | 0.985648 |
0.971702 |
0.999947 |
5.0 |
0.507812 |
0.087983 |
| 4 | 胆囊 | 0.950342 |
0.905383 |
0.999952 |
4.094115 |
1.135503 |
0.159064 |
| 5 | 食管 | 0.793725 |
0.657997 |
0.999782 |
15.24724 |
11.041705 |
1.704524 |
| 6 | 肝脏 | 0.984249 |
0.968987 |
0.999493 |
10.0 |
1.436311 |
0.225846 |
| 7 | 胃 | 0.555985 |
0.385027 |
0.999525 |
22.047485 |
16.540683 |
3.58299 |
| 8 | 主动脉 | 0.977631 |
0.956241 |
0.999862 |
10.0 |
1.523438 |
0.271276 |
| 9 | 下腔静脉 | 0.923908 |
0.858578 |
0.999865 |
10.025754 |
2.539062 |
0.538958 |
| 10 | 胰腺 | 0.899086 |
0.816672 |
0.999803 |
16.547107 |
3.251587 |
0.528217 |
| 11 | 右肾上腺 | 0.851822 |
0.74189 |
0.999991 |
5.0 |
1.605844 |
0.271422 |
| 12 | 左肾上腺 | 0.815983 |
0.689165 |
0.999986 |
6.114872 |
2.093765 |
0.331275 |
| 13 | 十二指肠 | 0.891079 |
0.803555 |
0.999828 |
7.915146 |
3.046875 |
0.57083 |
| 14 | 膀胱 | N/A |
N/A |
1.0 |
N/A |
N/A |
N/A |
| 15 | 前列腺/子宫 | N/A |
N/A |
1.0 |
N/A |
N/A |
N/A |
本轮 GUI 交互性能优化不改变本指标汇总中的任何数值。代码改动只影响前端渲染节奏:
-
src/components/OrthogonalViewer.tsx使用requestAnimationFrame合并高频切片图像更新。 -
src/main.tsx按动画帧调度 axial 预览切片更新,并让右侧预览和底部缩略图复用共享切片缓存渲染器。 -
十字线反馈仍保持即时;较重的
canvas.toDataURL()切片栅格化在快速移动光标时减少同步触发。 -
矢状/冠状拖动回跳修复只改变前端
voxelCoord与selectedSlice的同步方向,不改变任何分割结果或指标计算。 -
三视图拖动卡顿二次修复进一步把
voxelCoord本身的 React 状态提交合并到每帧一次,并与拖动派生的selectedSlice同帧提交;该改动仍只影响前端渲染节奏。 -
矢状/冠状拖动卡顿三次修复增加拖动状态识别,拖动期间三视图使用
interactive轻量切片实时预览,释放后恢复完整质量;这是 GUI 交互优化,不影响 NIfTI 输出或指标脚本。 -
本轮没有改变 nnUNetv2 推理、validation、Dice/IoU/Hausdorff 计算,也没有改变 FLARE22 taxonomy-remap 指标。
-
本文档记录的是 AMOS 0117 参考病例上的指标,不代表所有外部 CT 都具备同等效果。
-
2026-05-27 标签文件传输修复后,后端在线 custom label validation 链路已打通。job
bf20f0ec4456(FLARE22 + 标签上传)验证了label_path非空、validation 正常执行。2026-05-28 实现自动 taxonomy remap 后,joba717dacf42d3在线验证 mean_dice=0.926,验证通过。 -
2026-05-29 修复缓存 validation 语义后,缓存命中的指标不得解释为缓存来源 job 的旧标签结果;同一 CT 换标签文件时,validation 会重新计算。
-
2026-05-29 移除上传文件名调试日志后,标签链路排查应依赖 job state、
label_path、validation summary 和测试覆盖,而不是控制台文件名输出。 -
2026-05-30 的运行位置选择、局域网配置和服务器 5-fold soft ensemble 编排入口已在 2026-05-31 完成服务器 smoke;当前 FLARE 服务器轮次可作为链路跑通证据,AMOS 服务器轮次因疑似 taxonomy 误判暂不替换当前 AMOS
quality基线。 -
没有标准标签的病例不能计算 Dice、IoU 或 Hausdorff Distance,只能记录推理耗时、资源快照和人工复核结论。
-
后续训练权重应保留每次的 JSON 原始输出,并把关键聚合指标追加到本文档。
-
2026-06-01 本地缓存演示的 AMOS 0117 cache hit 命中
009d4efdc5f6(2026-05-23 历史推理,138KB,validation review,mean_dice 0.891,stomach 0.556);当前 AMOS 基线指标与该 cache hit 复用的预测均已记录。如需 quality 模式 AMOS 验证,应使用 jobb3c528cc9e20(mean_dice 0.924780)作为正式基线,不要把 cache hit 命中的 0.891 解读为正式 AMOS 质量基线。 -
2026-06-01 cache 链路补丁后,FLARE22 cache hit(
02da885c97d8)显示的是 0aa7323a4c01 的历史 validation_summary.json(0.893127/0.67373/0.949908,"(历史离线缓存摘要)"),而不是 009d4efdc5f6 的 AMOS 摘要;该指标源自 2026-05-26 remap 后的真实数据,与 AMOS 原生基线b3c528cc9e20(0.924780)属不同口径。 -
2026-06-03 质量评估指标扩展后,本文档的"当前 AMOS 基线聚合指标"和"当前 AMOS 基线逐标签指标"已补充 6 类医学影像主流指标完整字段。新指标值取自 AMOS quality cache hit(
2d477d8bbd7d/9fd0fdc39960/096e5b8349df),validation 阶段实测 16.78s(旧实现 38.86s)。surface_distances()1 crop + 2 EDT/label 是新的性能不变量;tools/segmentation_metrics_summary.py离线脚本复用同一份实现,保证离线口径与后端在线 validation 完全一致。HD/HD95/ASD 报告单位固定为 mm,色阶 ≤1mm 绿 / ≤3mm 黄 / >3mm 红;与 Dice 0.85/0.70 阈值互不影响。