Learning to segment images with classification labels
用分类标签来分割图像
发表于:04 2021;
发表期刊/会议:Medical Image Analysis (2021 IF:8.545)
关键字:弱监督 数字病理学 图像分割
论文:https://doi.org/10.1016/j.media.2020.101912
代码:https://github.com/ozanciga/learning-to-segment
0 摘要
【困难】医学影像中最常见的两项任务是分类和分割,这两项任务都需要标注,稀少又代价昂贵;
【现状】在乳腺癌病理学任务中,现实的临床应用都需要WSI,而大多公开数据集都是带标签的patch;
【本文方法】本文提出一种架构,通过图像级标签(也就是分类标签)来减轻分割任务对分割标签的要求 (就是用分类的标签来帮助学习一些对分割有用的特征)。实验在数据集上证明有效。
1 背景
标签的重要性;
图像分割的注释比图像分类的标签更难获得;
- 更加耗时;
- 更难达成一致,比如像素级别错误(导致算法学习到冲突的信息,泛化能力降低)。
弱监督学习:试图通过未标注的数据来学习,以此来减轻注释的负担;
1.1 相关工作
无监督学习:用没有标签的数据训练;
自监督学习:在无标注数据上训练,借助辅助任务,从大规模的无监督数据中挖掘自身的监督信息;
弱监督学习:用包含噪声的有标签数据训练;
1.2 本文贡献
提出一种弱监督学习框架,通过组合从两个不同的过程中获得的数据来减轻注释的负担,两种注释指:
- patch上的分类标签;
- WSI或patch的分割掩码;
训练数据包含不同级别的信息:patch级别和pixel级别;
- 贡献1:对现有的Resnet框架进行简单的修改,让模型可以同时执行分割和分类任务(多输出任务,同一个网络,两个独立任务),同时利用patch分类标签和少量的分割掩码来提高分割性能;
- 贡献2:两种数据预处理技术
- 贡献2.1:HSV空间分割法;
- 贡献2.2:一种更有效的提取ground truth的方法;
2 方法
2.1 数据预处理(详情见附录)
1)HSV通道过滤 去除背景(对应贡献2.1)
步骤:
- 在WSI的HSV颜色空间上通过阈值(低于最大饱和度10%的像素一般被认为是背景)进行过滤,生成"foreground mask"(就是组织掩码);
- 填充"foreground mask"中的空洞;
- 移除噪声区域(open操作);
2)提取ground truth(对应贡献2.2)
为了防止组织区域(foreground)和背景区域(background)的类别不平衡 (就是防止一个patch里组织区域占少数,背景占多数),本文提出了基于中心的ground truth提取方法 (就是怎么切patch可以防止背景占多数);
之前的切图方法:给定固定的步长,以恒定的步长向前滑动窗口来切patch;
本文切图方法:以组织区域为中心点进行切图;
如下图所示,左图为以组织为中心切图的结果,右图为滑动窗口切图的结果,可以看出来,左图组织区域占多数,背景占少数。
如果组织区域(ROI)本身就比要切图的patch大,首先使用K-Means算法将ROI分割成等大的区域,然后在每个簇的中心使用上述提到的方法切图;
如下图所示,ROI比较大的时候,先用K-Means算法分割成4个簇,然后以簇的中心为中心点进行切图;
2.2 网络架构
2.2.1 网络
对Resnet-18进行了微调;
蓝色箭头:残差连接;
红色方格:最大池化;
蓝色方格:空间上采样;
输出的Decoder:
图像分割的分支(表A.2):
- Input图像:3 × 128 × 128;
- 一通操作到256 × 8 × 8(图1绿色箭头所指);
- Conv2d 3 × 3, stride 1, padding 1, 256 > 64, no bias,到64 × 8 × 8,对应图1 Seg.;
- 2d Batch-normalization;
- ReLU activation layer(维度不变);
- 2d upsampling (×2),上采样,变为64 × 16 × 16;
- Conv2d 1 × 1, stride 1, padding 0, 64 > C, with bias,变成C × 16 × 16(图1红色箭头所指);
- Spatial (nearest) interpolation 16 > 128,空间插值,变为C × 128 × 128,对应图1 Seg.output;
图像分类分支(表A.3):
- Input:3 × 128 × 128;
- 一通操作到C × 16 × 16(图1红色箭头所指),就是分割没有插值前的结果;
- Adaptive 2d average pooling (C × 16 × 16) 变成 (C × 1 × 1);
- Conv2d 1 × 1, stride 1, padding 0, C > 8, no bias,变成8 × 1 × 1;
- 2d Batch-normalization;
- ReLU activation layer(维度不变);
- Conv2d 1 × 1, stride 1, padding 0, 8 > C, no bias,变成C × 1 × 1;
- Output vector ∈ R C R^C RC,对应图1 Cls.output;
2.2.2 训练每batch详情
如图2所示,对于每batch的训练,使用batch中的像素级图像(带有分割掩码)和图像级标签(只有分类标签的图像)交替执行两个步骤:
- step1. 输入patch和分割掩码(ground truth),在分割网络(编码器+解码器)上使用标准反向传播算法训练输入图像和分割掩码的网络,不经过分类层;
B
e
n
i
g
n
Benign
Benign:良性;
D
C
I
S
DCIS
DCIS:Ductal Carcinoma In Situ,导管原位癌;
- step2:
- 输入patch和图像级标签(就是分类标签),经过分割网络,得到一个分割掩码(就是C × 16 × 16,图1红色箭头所指位置);
- 然后由分类网络进行变换得到分类输出向量∈ R C R^C RC,其中C为类数;
- 把这个分类向量用于反向传播,交叉熵损失作为错误信号来更新分割网络权值,以校正给定图像的分割掩码 (相当于这个向量是预测值,与真实标签计算损失,把损失信号通过反向传播给网络来更新训练分割网络);
上图显示了分类网络错误的将DCIS分类成Benign的情况,该错误会通过反向传播纠正;
2.3 实现细节
- Adam优化器, β 1 = 0.1 , β 2 = 0.999 β_1=0.1,β_2=0.999 β1=0.1,β2=0.999;
- learning rate:0.0001;
- batch size:20;
- 分类网络:weighted cross entropy loss function;
- 分割网络:Cross entropy loss;
- 图像预处理:stain normalization;
- patch size:128×128;
3 实验
3.1 数据
三个独立公共数据集;
3.2 评价指标
- precision;
- recall;
- F1 score;
- macro-F1:多分类问题,容易受到识别性高(高recall、高precision)的类别影响,所以用macro-F1;
- micro-F1:多分类不平衡,若数据极度不平衡会影响结果,所以用micro-F1;
3.3 实验设置
训练集和测试集的划分;
挑选patch的规则;