数字病理 WSI 图像处理流程:从大图读取到热力图可视化
摘要
数字病理中的 WSI(Whole Slide Image,全场切片图像)通常具有超高分辨率,单张切片可能达到数万甚至十几万像素宽高,不能像普通自然图像一样直接送入深度学习模型。因此,WSI 图像分析不仅是一个模型问题,更是一个完整的图像工程问题。
本文围绕数字病理 WSI 的典型 AI 分析流程,介绍从图像读取、尺度归一化、组织区域筛选、patch 切分、模型推理、坐标还原、结果聚合到 heatmap 可视化的完整链路,并总结实际工程中需要重点关注的问题。
1. WSI 图像为什么特殊
普通图像通常只有几百到几千像素,而病理全场切片图像由扫描仪对玻璃切片进行高倍扫描得到,图像尺寸非常大。以常见的 20x 或 40x 扫描倍率为例,单张 WSI 图像可能包含几十亿像素。
WSI 图像通常具备以下特点:
- 图像尺寸极大,无法直接整图输入模型;
- 文件格式多样,例如 svs、tif、ndpi、mrxs 等;
- 采用金字塔多分辨率结构存储;
- 不同扫描仪的分辨率、mpp、染色风格可能不同;
- 有大量背景区域,需要过滤无效计算;
- 模型结果需要映射回原始切片坐标,供医生查看。
因此,WSI AI 系统的核心难点不是简单地调用一个模型,而是构建稳定的大图处理和结果可视化链路。
2. WSI 图像读取
WSI 文件通常不是普通图片,而是多分辨率金字塔结构。常见做法是通过 OpenSlide、cuCIM 或自研封装库读取不同 level 的图像。
金字塔结构可以理解为同一张切片在不同分辨率下的多层表示:
- level 0:最高分辨率,通常用于精细分析;
- level 1/2/3:下采样后的低分辨率图像,常用于缩略图、组织区域筛选、预览;
- thumbnail:用于快速定位组织区域。
实际工程中,一般不会一开始就读取 level 0 全图,而是先读取低倍缩略图,完成组织区域筛选,再按坐标从高分辨率层读取对应 patch。
3. 尺度归一化与 mpp
mpp 是 microns per pixel,表示每个像素对应的实际微米长度。不同扫描仪、不同倍率生成的图像 mpp 可能不同。如果不做尺度归一化,同样大小的 patch 中细胞和组织结构的实际尺寸就会不一致,影响模型推理效果。
例如,一个模型训练时使用的是 0.5 mpp 图像,如果推理时输入 0.25 mpp 图像,模型看到的细胞会变大;如果输入 1.0 mpp 图像,模型看到的细胞会变小。这种尺度差异会导致模型泛化能力下降。
常见处理方式包括:
- 根据目标 mpp 选择合适的 WSI level;
- 对读取出的 patch 进行 resize;
- 在切块前统一倍率或统一像素物理尺寸;
- 记录原始坐标和缩放比例,方便后续坐标还原。
尺度归一化是 WSI 分析中非常重要但容易被忽略的环节。
4. 组织区域筛选
WSI 中存在大量空白背景,如果直接对整张切片滑窗推理,会产生大量无效计算。因此,在切 patch 前通常需要先进行组织区域筛选。
常见方法包括:
- 基于缩略图进行阈值分割;
- 使用 HSV/RGB 颜色空间过滤白色背景;
- 形态学开闭运算清理噪声;
- 轮廓检测得到组织区域;
- 对组织区域进行面积过滤;
- 根据 ROI 或医生标注区域限制推理范围。
组织区域筛选的目标不是做到像素级精确分割,而是尽量减少背景 patch,提高推理效率。
5. Patch 切分
由于 WSI 图像无法整图输入模型,通常需要切成固定大小的 patch。例如 224x224、256x256、512x512 或 1024x1024。
切 patch 时需要考虑几个参数:
- patch size:单个 patch 的尺寸;
- stride:滑窗步长;
- overlap:相邻 patch 是否重叠;
- level:在哪个金字塔层读取;
- mpp:对应的物理分辨率;
- foreground ratio:patch 中组织区域占比。
如果 stride 小于 patch size,会产生重叠区域,有利于减少边界漏检,但会增加计算量。如果 stride 等于 patch size,则效率更高,但边界区域可能存在信息截断。
工程上通常会根据任务类型选择策略:
- 分类任务:可以使用较大 stride,提高效率;
- 检测/分割任务:可以使用 overlap,减少边界问题;
- 热力图任务:需要保证 patch 坐标和预测结果可映射。
6. 模型推理
Patch 切分完成后,可以将 patch 送入不同模型完成推理。常见任务包括:
- patch 分类;
- 目标检测;
- 语义分割;
- 实例分割;
- 特征提取;
- 弱监督 WSI 分类;
- 免疫组化阳性区域分析;
- 病灶区域定位。
在大规模 WSI 推理中,性能优化非常关键。常用优化方式包括:
- batch 推理;
- 多线程或异步读图;
- GPU 推理;
- ONNX Runtime / TensorRT 加速;
- 缓存中间结果;
- 跳过背景 patch;
- 对特征提取结果进行离线缓存。
WSI 推理的瓶颈不一定只在模型,也可能在读图、预处理、数据传输和结果后处理。
7. 坐标还原
模型通常是在 patch 局部坐标下输出结果,例如一个目标框的坐标可能是 patch 内的 (x1, y1, x2, y2)。但医生查看时需要的是 WSI 全图坐标,因此必须进行坐标还原。
坐标还原需要考虑:
- patch 在 WSI 中的起始位置;
- 当前读取的 level;
- resize 缩放比例;
- mpp 归一化比例;
- ROI 区域偏移;
- 前端显示坐标系。
一个简单的坐标还原公式可以理解为:
text
global_x = patch_origin_x + local_x * scale
global_y = patch_origin_y + local_y * scale
如果涉及多 level 或 resize,还需要叠加对应的缩放系数。
坐标还原是 WSI 系统中非常重要的工程细节。如果坐标映射错误,模型结果再准确也无法在前端正确展示。
8. 结果聚合
WSI 的最终结果通常不是单个 patch 的预测结果,而是多个 patch 的聚合结果。不同任务的聚合方式不同。
分类任务中,可以对 patch 预测概率进行平均、最大值、Top-K 聚合,或者使用 Attention MIL 进行加权聚合。
检测任务中,需要将不同 patch 的目标框合并到全图坐标系,再进行全局 NMS 或去重。
分割任务中,需要将 patch mask 拼接回 WSI 坐标,并处理重叠区域。
热力图任务中,需要将每个 patch 的预测分数或 attention 权重映射到对应位置,生成连续或离散的空间分布图。
结果聚合决定了模型输出是否能转化为医生可理解、可复核的结果。
9. Heatmap 可视化
Heatmap 是 WSI AI 系统中常见的可解释展示方式。它可以将模型认为重要的区域以颜色形式叠加在切片上,帮助医生快速定位高风险区域。
Heatmap 的来源可以有多种:
- patch 分类概率;
- attention 权重;
- 目标检测密度;
- 阳性细胞空间分布;
- 分割区域得分;
- 模型不确定性分数。
生成 heatmap 的基本流程:
- 获取每个 patch 的位置和分数;
- 将分数映射到 WSI 坐标;
- 根据分数生成颜色;
- 对低分辨率图进行插值或平滑;
- 与原始切片缩略图叠加显示。
Heatmap 的重点不是替代医生诊断,而是帮助医生理解模型的关注区域,提高 AI 结果的可解释性。
10. 工程实践中的常见问题
在实际开发中,WSI 系统经常遇到以下问题:
- 切片文件损坏或局部 tile 读取失败;
- 不同扫描仪生成的格式兼容性不同;
- mpp 缺失或元信息不规范;
- patch 数量过多导致推理时间过长;
- GPU 显存不足;
- 坐标映射偏移;
- heatmap 与原图对不齐;
- 前端标注显示与后端坐标不一致;
- 模型版本管理混乱;
- 推理日志不足,线上问题难排查。
因此,一个可用的 WSI AI 系统,必须同时关注算法效果、工程稳定性、推理效率和可解释展示。
11. 从开源项目看 WSI 流程实现
如果想进一步理解 WSI 工程链路,可以参考一些公开计算病理项目的组织方式。
MahmoodLab 的 TRIDENT 是一个面向大规模 WSI 处理的工具包,它的设计思路很接近实际工程系统:先统一不同格式和不同后端的 WSI 读取方式,再完成组织区域分割、patch 坐标提取、patch 可视化和特征提取。它支持 OpenSlide、CuCIM、普通图像、OME-Zarr、CZI 等多种输入形式,这说明在真实项目中,图像格式兼容性本身就是系统设计的一部分。
CLAM 则更偏向弱监督 WSI 分类流程。它包含组织区域分割、patch 提取、特征提取、MIL 训练和 heatmap 可视化等步骤。这个流程非常适合理解 WSI AI 系统的基础范式:先把超大图切成 patch,再把 patch 转为特征,最后做切片级建模和可解释可视化。
从这些开源项目可以看到,一个成熟的 WSI 系统通常不会把所有逻辑写成一个单独脚本,而是会拆成几个稳定模块:
- WSI reader:负责不同格式切片读取;
- tissue segmentation:负责组织区域筛选;
- patching:负责 patch 坐标生成和切块;
- feature extraction:负责批量特征提取;
- slide-level model:负责 WSI 级分类或聚合;
- visualization:负责 patch 标注、heatmap 和结果展示。
这种模块化设计也适合生产系统。读图、切块、推理、聚合和可视化各自独立,后续更换模型、调整 patch size、增加新格式支持或优化推理性能都会更方便。
参考项目:
12. 总结
WSI 图像处理是一套完整的大图分析链路,不是单纯的模型调用。它通常包括:
text
WSI 读取 -> 尺度归一化 -> 组织区域筛选 -> patch 切分 -> 模型推理 -> 坐标还原 -> 结果聚合 -> heatmap 可视化
在数字病理 AI 场景中,模型能力固然重要,但图像读取、尺度控制、坐标映射、推理优化和结果展示同样关键。只有将这些环节串成稳定闭环,才能让 AI 结果真正进入业务系统并被医生复核使用。