方法 | 内容 |
---|---|
监督学习 | 骨干网络的选择、网络块的设计、损失函数的改进 |
弱监督学习 | 数据增强、迁移学习、交互式分割研究 |
医学图像分割的难点:
学习一组已知类别的样本调整分类器的参数,使其达到所要求的性能的过程,也成为教师学习。从标记的训练数据中推断一个功能的机器学习任务。
backbone network:(特征提取网络)语义分割的目的是对图像进行像素分类。通常采用编码器-解码器结构的全卷积网络方法。编码器用于提取图像特征,解码器用于将提取的特征恢复到原始图像大小并输出最终分割结果。
U-Net
U-net通过跳跃联系(Skip Connection:跳跃连接,将低分辨率和高分辨率的特征图有效的结合起来,有效的融合高分辨率和低分辨率信息)
U-Net网络模型
U-Net网络结构的核心思想是引入了跳跃连接,使得图像分割的精度大大提升。U-Net网络的主要结构包括了解码器、编码器、瓶颈层三个部分。
编码器:包括了四个程序块。每个程序块都包括3×3的卷积(使用Relu激活函数),步长为2的2×2的池化层(下采样:下采样实际上就是缩小图像,主要目的是为了使得图像符合显示区域的大小,生成对应图像的缩略图。比如说在CNN中的池化层或卷积层就是下采样。不过卷积过程导致的图像变小是为了提取特征,而池化下采样是为了降低特征的维度。)。每个程序块处理后,特征图逐步减小。
解码器:与编码器部分对称,也包括四个程序块,每个程序块包括步长为2的2×2的上采样(上采样实际上就是放大图像,指的是任何可以让图像变成更高分辨率的技术。它有反卷积(Deconvolution,也称转置卷积)、上池化(UnPooling)方法、双线性插值(各种插值算法))操作,然后与编码部分进行特征映射级联(Concatenate),即拼接,最后通过两个3×3的卷积(Relu)。
瓶颈层:包含两个3×3的卷积层。
最后经过一个1×1的卷积层得到最后的输出。
class Baseline(nn.Module):
def __init__(self, img_ch=1, num_classes=3, depth=2):
super(Baseline, self).__init__()
chs = [64, 128, 256, 512, 512]
self.maxpool = nn.MaxPool2d(kernel_size=2, stride=2)
self.enc1 = EncoderBlock(img_ch, chs[0], depth=depth)
self.enc2 = EncoderBlock(chs[0], chs[1], depth=depth)
self.enc3 = EncoderBlock(chs[1], chs[2], depth=depth)
self.enc4 = EncoderBlock(chs[2], chs[3], depth=depth)
self.enc5 = EncoderBlock(chs[3], chs[4], depth=depth)
self.dec4 = DecoderBlock(chs[4], chs[3])
self.decconv4 = EncoderBlock(chs[3] * 2, chs[3])
self.dec3 = DecoderBlock(chs[3], chs[2])
self.decconv3 = EncoderBlock(chs[2] * 2, chs[2])
self.dec2 = DecoderBlock(chs[2], chs[1])
self.decconv2 = EncoderBlock(chs[1] * 2, chs[1])
self.dec1 = DecoderBlock(chs[1], chs[0])
self.decconv1 = EncoderBlock(chs[0] * 2, chs[0])
self.conv_1x1 = nn.Conv2d(chs[0], num_classes, 1, bias=False)
initialize_weights(self)
def forward(self, x):
# encoding path
x1 = self.enc1(x)
x2 = self.maxpool(x1)
x2 = self.enc2(x2)
x3 = self.maxpool(x2)
x3 = self.enc3(x3)
x4 = self.maxpool(x3)
x4 = self.enc4(x4)
x5 = self.maxpool(x4)
x5 = self.enc5(x5)
# decoding + concat path
d4 = self.dec4(x5)
d4 = torch.cat((x4, d4), dim=1)
d4 = self.decconv4(d4)
d3 = self.dec3(d4)
d3 = torch.cat((x3, d3), dim=1)
d3 = self.decconv3(d3)
d2 = self.dec2(d3)
d2 = torch.cat((x2, d2), dim=1)
d2 = self.decconv2(d2)
d1 = self.dec1(d2)
d1 = torch.cat((x1, d1), dim=1)
d1 = self.decconv1(d1)
d1 = self.conv_1x1(d1)
return d1
V-Net
3D-U-Net,仅包含3次下采样,不能有效的提取深层图像特征,导致医学图像分割精度有限。但是 V-Net利用残差连接设计更深层次的网络(4次下采样)处理3维图片
V-Net网络模型
RNN
该方法实现了递归残差卷积层的特征积累,改善了图像分割任务中的特征表示。
**RNN:**可以通过考虑上下文信息关系来捕获图像的局部和全局空间特征。—GLCA局部-全局交叉注意力计算–与所选标记中的自我注意相比,我们不仅可以将高响应区域与自身联系起来,还可以将其与外部的其他上下文联系起来。
LSTM:一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。通过门控状态来控制传输状态,记住需要长时间记忆的,忘记不需要的信息。
级联模型
利用Ki-Net的低层精细边缘特征图和U-Net的高层形状特征图,不仅提高了分割精度,而且对小解剖标志和模糊噪声边界实现了快速收敛。
生成对抗网络
GAN学习识别肿瘤区并生成分割结果,GAN学习从生成网络中区分ground-truth和分割结果,从而强制生成网络获得尽可能真实的标签。
密集连接–一种特殊的卷积神经网络。改进的U-Net:用密集连接的形式来代替U-Net的每个子块。
优缺点:
有助于获得更丰富的图像特征。
在一定程度上降低了特征表示鲁棒性,增加了参数的数量。
U-Net++
将所有的U-Net层连接在一起,
----结构的优点是:它允许网络自动学习不同层次特征的重要性。
对跳跃连接重新设计,是具有不同语义尺度的特征可以在译码器中聚合。
----结构的缺点是:采用了密集连接,增加了参数的数量,因此将一种剪枝方法集成到模型优化中,以减少参数数量。
U-Net++网络模型
Inception
对于CNN来说,深层网络要比浅层网络具有更好的性能。遇到的新问题:梯度消失、网络收敛困难、内存占用大等。----Inception克服了这些问题。
它在不增加网络深度的情况下,并行地合并卷积核,从而获得更好的性能,该结构利用多尺度卷积核提取更丰富的图像特征,并进行特征融合,获得更好的特征表示。
模型复杂,导致模型修改困难。
Depth Separability
++轻量级网络模型-深度可分离卷积,逐通卷积参数为DkDk1M 。DkDk为卷积核,M为输入的特征维数。
Attention Mechanism
现在多利用掩码形成注意力机制上。掩码的原理是设计一个新的层,通过训练和学习,可以从图像识别关键特征,然后让网络只关注图像感兴趣的区域。
局部空间注意力
目的是计算每个像素在空间的特征重要性,提取图像关键信息。正常的池化相当于信息合并,很容易造成关键信息的丢失。解决:attention-Unet,在融合编码器和相应解码器的特征之前,利用注意力块,改变编码的输出。注意力块输出一组用于控制像素在空间位置上的门信号。
+忽略了不同通道信息的差异,对所有通道都一视同仁。
空间注意力着重于寻找感兴趣的目标区域
通道注意力
利用学习到的全局信息,选择性的强调有用的特征,抑制无用的特征,实现特征的再校准。
+直接集中全局信息,忽略了每个通道的局部信息,是一种粗糙的操作。
以通道为中心的注意力是提高图像分割性能最有效的办法。
通道注意力着重于寻找感兴趣的特征。
混合注意力
以通道为中心的注意力是提高图像分割性能最有效的办法。
非局部注意力
非局部U-Net在上采样和下采样过程中采用自注意机制和全局聚合块提取完整的图像信息,来提高分割精度。(非局部注意力等价于自注意力)
Multi-scale Information Fusion(多尺度信息融合)
金字塔池化
多尺度池化的并行操作可以有效地改善网络的上下文信息,从而提取更丰富的语义信息。
RMP(残差多核池化)–它使用四个不同大小的池化核来编码上下文信息。但是里面的上采样操作不能恢复细节信息的丢失,因为池化扩大了感知场,降低了图像的分辨率。
空洞空间金字塔池化(ASPP)
目的:为了减少池化造成的信息细节丢失,空洞卷积(可以有效的扩大接受野以收集更丰富的语义信息,为了提高性能,有必要增加约束或建立像素关联。)在不增加参数数量的情况下能有效的扩大感受野。-对不同尺度的同一物体有较强的识别能力。
存在的问题:
混合扩展卷积(HDC)网络,该结构使用锯齿波启发式方法来分配膨胀率,从而访问更大像素范围信息,从而抑制网格化(导致细节信息丢失)效果。
ASPP与非局部结合块用于人体部位分割,ASPP使用不同尺度的多个并行空洞卷积来捕获更丰富的信息,而非局部操作捕获广泛的依赖关系。
损失函数 | 内容 | 优缺点 |
---|---|---|
Crocs Entropy Loss(交叉熵函数) | 该函数将预测分类向量与实际的分割结果向量进行像素级的比较 | 对于每个像素都进行同等处理,忽略了类的不平衡。性能较低 |
Weighted Cross Entropy Loss(加权交叉熵损失) | 用来抵消类不平衡 | 通过添加距离函数改进交叉损失熵函数 |
Dice Loss | 这个度量的本质就是对分割结果和相应的ground-truth之间重叠的度量,取值范围(0-1) | 适用于不均匀样本;解决类不平衡问题。使用Dice Loss 很容易影响反向传播,导致训练困难;由于梯度值置信度比较低,Dice Loss对于平均表面距离或Hausdorff表面距离等不同模型的鲁棒性都很低。 |
Generalized Dice Loss | 解决严重的类不平衡问题 | 不同区域对损失函数的贡献相似,因此在训练过程中更加的稳定和鲁棒。 |
Boundary Loss | 最小化分割的边界和标记的边界之间的距离 | 实用性挺高 |
Exponential Logarithmic Loss | 引入指数形式 | 可以进一步控制损失函数的非线性过程,提高分割精度 |
在医学图像分割的具体任务中,损失函数使用经典的交叉熵损失函数与特定的正则化项或特定的损失函数相结合。
使用领域知识或先验知识作为规则术语或设计特定的损失函数可以获得更好的医学图像特定任务分割结果。
另一种方法是基于NAS技术的自动损失函数(或正则化术语)搜索。
Loss Improvements
主要改进在大背景下小目标的分割问题(类不平衡问题)。
Deep Supervision
有效的训练深度网络,提出了深度监督网络;不仅可以约束学习特征在各个阶段的判别和鲁棒性,而且可以提高网络的训练效率,关键在于如何设计模型来抵消深度监督的负面影响。
数据标签允许是不完全的,训练集中只有一部分数据是有标签的。
在缺乏大量标记的数据集的情况下,GAN是数据增强的最流行的策略,因为GAN克服了依赖原始数据的问题。
CGAN(条件生成)
1.将随机变量输入到GAN中,生成标签合成图像,
2.将生成的标签映射到输入到条件GAN中,生成真实的图像,
3.最后通过检查判别器是否能够区分合成图像和真实图像来验证合成图像的真实性。
迁移学习利用模型的训练参数初始化新模型,对标签有限的数据实现快速的模型训练。
1.针对图像分析任务微调ImageNet上的预训练模型;
2.将训练的数据从多个领域迁移
预训练模型
ImageNet上的预训练模型可以学习医学图像所需要的一些共同的底层特征,因此不需要再训练过程,而对训练模型进行微调是有用的。然而,当将预先训练好的自然场景图像模型应用于医学图像分析任务时,域自适应可能是一个问题。
++取决于分割数据集合任务
++很难应用于3D医学影像分析
Domain Adaptation域适应
若来自训练目标域的标签不可用,而我们只能访问其他域的标签,那么常用的方法是将源域上训练好的分类器转移到没有标记数据的目标域。
CycleGAN是一种循环结构,主要由两个生成器和两个判别器组成。
利用CycleGAN对CT图像中的脾脏分割任务提出了一种联合优化的图像合成和分割框架。该框架实现了从标记的源域到合成图像目标域的图像转换。在训练过程中,使用合成的目标图像来训练分割网络。在测试过程中,直接将目标域的真实图像(不带标签)输入到训练好的分割网络中,以获得理想的分割结果。
Interactive Segmentation
手工绘制医学图像分割标签。临床医生可以使用交互方法;
NAS主要在三个方面:搜索空间、搜索策略和性能评估
可解释形状注意神经网络
在反向传播过程中,图像中梯度值较大且大于0的像素因为高重要性而受到更多的关注,而大的和负梯度值的像素应该被抑制。如果这些负梯度包括在重要像素的可视化中,它们可能会导致描述性特征的噪声可视化。
为了避免产生有噪声的可视化效果,反向传播引导将改变神经网络的反向传播,从而将每一层的负梯度设置为零,从而只允许正梯度向后通过网络并突出显示这些像素。
医学图像分析的解释主要是可视化方法,如注意力和类激活地图(CAM)。因此,研究深度学习在医学图像分割中的可解释性将是未来的一个热门方向。
Multi-modality Data Fusion
多模态数据融合:能提供丰富的目标特征,有助于提高目标检测和分割结果
改进1:用于从未成对的CT和MRI图像中精确分割解剖结构,并利用知识蒸馏设计了一种新的损失函数,以提高训练效率。
用于不用模式(CT和MRI)的标准化层是在单独变量中实现的,而卷积层是在共享变量中构建的。
一个单一的系统可以用于临床实践中对于各种模态的数据自动执行分割任务,而不需要额外的特定任务训练。
在医学影像分割的研究中
方向 | 内容 |
---|---|
网络结构设计的创新 | 空间通道注意模块的开发使得神经网络特征提取过程更具针对性,残差网络(ResNet)和稠密网络(DenseNet)分别证明了网络深度加深的影响和残差结构的有效性对梯度传播的影响。在深度网络中跳跃连接可以促进梯度传播,从而减少梯度分散的风险,从而提高分割性能。此外,对跳跃连接的优化将允许模型提取更丰富的特性。 |
网络模块的设计 | 空间通道注意模块的开发使得神经网络特征提取过程更具针对性未来的趋势应该是手工设计与NAS技术的使用相结合。首先手工设计骨干网,然后在训练前由NAS搜索小的网络模块。 |
不同卷积运算的设计 | 图卷积作为一种处理非欧几里得数据的卷积方法,超越了传统的卷积,因为图结构更高效,具有较强的语义特征编码能力, |