4. 切片级与图块级处理策略
WSI(全切片图像)动辄数万×数万像素,直接送入分割网络既不现实也无必要。真正决定分割质量与训练效率的,是“切片级”与“图块级”两级处理策略的配合:切片级负责在金字塔中选层、定位组织区域、规划切块网格;图块级负责把每个patch变成可训练、可推理的样本,并在推理后把结果拼回整张切片。本节围绕这条主线,讲清层级选择、patch提取、重叠与步长、多尺度融合,并给出一个可落地的patch数据集构建流程。
一、金字塔层级选择:先定“看多细”
WSI通常以金字塔形式存储,层级0为最高分辨率(如0.25 μm/pixel),层级越高分辨率越低。选择层级本质是在“细节”与“上下文/显存”之间做权衡。常用判断依据是目标结构的物理尺度:细胞核约5~10 μm,腺体约50~200 μm,肿瘤区域可达毫米级。若目标为细胞核分割,通常选层级0或1(0.25~0.5 μm/pixel);若为腺体或区域分割,常选层级1或2(0.5~2 μm/pixel),使单个patch能覆盖足够上下文。
工程上还需注意两点:一是不同扫描仪的μm/pixel不同,不能只按层级号选层,应按目标物理尺寸反推层级;二是训练与推理必须使用同一层级或同一物理分辨率,否则模型看到的纹理尺度会漂移。例如目标为腺体,希望patch覆盖256 μm,若层级1为0.5 μm/pixel,则patch边长应为512像素;若层级2为1.0 μm/pixel,则边长256像素即可。
二、图块提取:从组织掩膜到patch网格
WSI中大量区域是白色背景,直接切块会引入大量无效样本。标准做法是先做组织区域检测:将低分辨率缩略图转灰度,用Otsu阈值分割,再经形态学闭运算与孔洞填充,得到组织掩膜。随后在掩膜内按固定步长滑动窗口提取patch。判断一个patch是否保留,常用“组织像素占比”阈值,例如≥50%保留,否则丢弃;也可用熵或颜色方差过滤模糊、空片区域。
提取时需记录每个patch的元数据:切片ID、层级、左上角坐标(x, y)、patch尺寸、物理分辨率、组织占比、标签路径。这些字段是后续拼接与评估的基础,缺一不可。
三、重叠与步长设计:平衡覆盖与冗余
步长(stride)与patch尺寸(patch_size)共同决定重叠率:重叠率 = 1 − stride / patch_size。若patch_size=512、stride=512,则无重叠;stride=256则重叠50%。重叠的作用有三:一是缓解边界效应,使分割结果在拼接处更连续;二是增加样本多样性,提升训练鲁棒性;三是推理时通过重叠投票(如取平均或多数投票)抑制单块误判。
但重叠并非越大越好。重叠率从0提升到50%,patch数量约增加4倍,训练与推理成本显著上升。实践中,训练阶段常用25%~50%重叠以增强样本;推理阶段常用50%重叠并配合高斯加权融合,边缘权重低、中心权重高,可有效消除拼接缝。若显存紧张,可先按无重叠推理,再对边界区域做二次精细推理。
四、多尺度特征融合:让模型同时“看细”和“看全”
单一层级往往难以兼顾细节与上下文。多尺度融合的常见做法有三类:一是输入级融合,将同一位置的不同层级patch分别送入网络,再在特征层拼接或相加;二是特征金字塔,在编码器中引入多分辨率特征并自顶向下融合;三是决策级融合,分别在不同层级推理,再对概率图加权平均。实践中,输入级融合实现简单、效果稳定,适合作为基线;特征金字塔更适合端到端训练,但显存开销更大。
一个可操作的策略是:以层级1为主输入(0.5 μm/pixel,patch 512×512),同时下采样得到层级2的256×256作为上下文分支,两分支在解码器末端拼接。这样既保留了腺体边界细节,又引入了更大范围的解剖上下文。
五、实战:构建patch数据集用于分割任务
下面给出一个可执行的patch数据集构建流程,以腺体分割为例,假设原始WSI为层级0,0.25 μm/pixel,目标物理分辨率0.5 μm/pixel,patch 512×512,训练重叠50%,推理重叠50%。
输入:WSI 列表 + 对应标注掩膜(层级0)
参数:target_mpp = 0.5, patch_size = 512, stride_train = 256, stride_infer = 256
tissue_thresh = 0.5, min_tissue_area = 0.01
步骤:
1. 读取缩略图,Otsu 分割 + 形态学闭运算 → 组织掩膜
2. 计算目标层级 level = log2(0.5 / 0.25) = 1
3. 在 level 1 上按 stride_train 滑动窗口,提取 patch
4. 对每个 patch 计算组织占比,≥0.5 保留,否则丢弃
5. 同步裁剪标注掩膜,生成对应 label patch
6. 记录元数据:slide_id, level, x, y, patch_size, mpp, tissue_ratio
7. 按 slide_id 划分训练/验证/测试,避免同切片泄漏
8. 保存为 HDF5 或 PNG + CSV 索引
构建完成后,建议做三项检查:一是随机抽样可视化patch与标签是否对齐;二是统计正负样本比例,若正样本过少,可对含目标区域的patch做过采样;三是检查不同切片的颜色分布,必要时做颜色归一化(如Macenko或Reinhard),减少染色差异带来的域偏移。
总结来说,切片级策略决定“在哪里看、看多细”,图块级策略决定“怎么看、怎么拼”。层级选择要按物理尺度反推,patch提取要结合组织掩膜与占比过滤,重叠与步长要在覆盖率和成本之间取平衡,多尺度融合则让模型同时具备细节与上下文。把这四件事做扎实,patch数据集才能真正支撑起稳定的分割训练与推理。