数字病理 WSI 图像处理流程:从大图读取到热力图可视化

数字病理 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 的基本流程:

  1. 获取每个 patch 的位置和分数;
  2. 将分数映射到 WSI 坐标;
  3. 根据分数生成颜色;
  4. 对低分辨率图进行插值或平滑;
  5. 与原始切片缩略图叠加显示。

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 结果真正进入业务系统并被医生复核使用。

相关推荐
yuhulkjv3353 小时前
腾讯元宝公式粘贴word乱码
人工智能·chatgpt·word·deepseek·ai导出鸭
纪伊路上盛名在3 小时前
Github 命令行搜索工具
人工智能·数据分析·github
隐层漫游者3 小时前
从二进制到三进制:新专利如何重塑算力底座,助力量子计算与大模型?
人工智能·语言模型
AI医影跨模态组学4 小时前
Lancet Digital Health(IF=24.1)德国德累斯顿工业大学医学院:深度学习评估结直肠癌的基因型-表型相关性
人工智能·深度学习·论文·医学影像·影像组学
星恒随风4 小时前
从零开始理解 CNN(上):为什么图像任务需要卷积神经网络?
人工智能·笔记·神经网络·学习·cnn
YOLO数据集集合4 小时前
滑坡智能识别|遥感卫星无人机多源影像数据集|深度学习语义分割开源基准
人工智能·深度学习·yolo·目标检测·视觉检测·无人机
星恒随风4 小时前
从零开始理解 CNN(下):拆开卷积层、池化层、通道数和训练流程
人工智能·笔记·深度学习·神经网络·学习·cnn
蔡俊锋4 小时前
AI时代,是时候越狱了
人工智能·ai 越狱
有为少年4 小时前
深度学习中的隐式层
人工智能·深度学习·神经网络·线性代数·机器学习·优化算法·深度隐式层