



目前,深度学习方法,尤其是CNN,在医学图像处理中得到了广泛应用。CNN在不同尺度的感受野下,能学习到的特征不同,大的感受野能够更多学习到全局特征,而小的感受野能够更多学习到局部的细节特征。因此,CNN相比一般的全连接前向网络更适合应用于图像处理领域。目前,大多数主流的图像数据分类模型都是基于CNN的一系列改进。图像分割或目标检测也可当作是分类任务,即把每一像素分为目标或非目标两类。UNet [13] 是一种2015年提出的FCN架构,专用于图像分割任务。本章分割脊柱X线图像就是基于U-Net模型,本节对U-Net模型进行简要介绍。
CNN由输入层、卷积层、池化层和全连接层组成。输入层用于输入图像数据,卷积层是CNN中提取图像特征的核心组件,池化层进行下采样来减少网络参数。在图像分类任务中,经过多轮卷积层和池化层处理后,CNN最后一般会由全连接层来输出最后的分类结果,输出层是整个CNN的输出,在图像分类的任务中,输出值通常是代表各个类别的概率。
1.输入层
输入层是CNN的第一层,就是原始图像数据或者经过预处理后的图像数据。对于 N × N 大小的灰度图像,CNN的输入层为 N × N 矩阵,对于彩色RGB格式的 N × N 大小的图像,CNN的输入层则为 N × N ×3的矩阵,即红色R、绿色G、蓝色B通道中各有一个 N × N 维的矩阵。图像数据传入CNN后,通过后续多个卷积层和池化层进行特征提取,最终得到输出结果。
2.卷积层
卷积层是CNN中的核心层,卷积是一种线性运算。卷积操作是将一个滑动小窗口与输入图像进行逐元素相乘再相加的操作。如图2.2所示,该小窗口是一组固定权重的矩阵,可以被看作是一个特定的滤波器,称为卷积核(Kernel),其大小通常小于该卷积层的输入矩阵。通过移动卷积核与图像的不同位置进行卷积操作,即以一定步长(Stride)从左到右、从上到下对输入图像进行遍历,来提取图像中的特定特征。不同的卷积核将提取不同的图像特征,卷积核的权重就是通过训练神经网络获得的参数。合理设计卷积层可以实现参数共享和局部连接,从而降低模型的参数量和计算量。经过某卷积层的输出可当作是特殊的图像,称为特征图。某个卷积层的输出特征图又作为下一层的输入数据,从而实现了特征的传递和提取。特征图的尺寸由卷积核尺寸、卷积核移动的步长和输入矩阵填充(Padding)共同决定。步长是滑动卷积核的跨度,用于控制卷积核在输入数据中的滑动速度。填充是在输入矩阵周围补充一圈边缘数据,通常是填充0,以方便从初始位置以步长为单位卷积核刚好滑动到矩阵末尾位置,即总长能够被步长整除,从而对边缘部分也可作卷积处理。经过卷积操作输出特征图的尺寸可以通过输入特征图的大小、卷积核的大小、填充的大小以及卷积的步长计算出来:
式中, W out 为输出矩阵尺寸, W in 为输入特征图或原始图像尺寸, k 为卷积核大小, p 为填充大小, S 为步长。对计算出现非整数的情况进行向下取整即可。
作为例子,图2.2展示了卷积操作,左侧的输入图像是一个大小为5×5的矩阵,中间的卷积核是一个大小为3×3的矩阵,步长为1则每次卷积核移动1格,不需要边缘填充,输入数据和卷积核卷积后将获得大小为4×4的矩阵。
图2.2 卷积操作示例
3.池化层
在CNN中,池化层位于卷积层之后,池化层的主要功能是减小特征图的维度,同时确保关键特征得以保留,相当于进行下采样。在池化层的输入特征图上取一个滑动窗口,如图2.3所示,若对该窗口内的元素取最大值称为最大池化,若取平均值则称为平均池化,从而实现对特征图尺寸的缩减,这样可以减少下一层参数量。图2.3中,输入的特征图是一个大小为4×4的矩阵,池化窗口的大小为2×2,步长为2,则该池化层输出一个大小为2×2的特征矩阵,相对于输入特征图像缩小了2倍,参数量缩小了4倍。最大池化的优点是能够突出显示最重要的特征,但缺点是可能会丢失一些有用信息。平均池化的优点是能够平滑特征,减少过拟合的风险,但缺点是可能会模糊一些重要的细节。
图2.3 池化操作示例
4.全连接层
在CNN架构中,全连接层一般位于卷积层和池化层之后,将卷积层和池化层输出的特征图矩阵展平(Flatten)为一维向量作为全连接层的输入。全连接层在CNN中也扮演着重要角色,主要用于综合和解释已学习的特征。如果说卷积层、池化层是学习原始数据与高级特征之间映射关系的,那么全连接层则是学习这些高级特征到目标结果之间映射关系的。简单的全连接层结构如图2.4所示,两层之间所有神经元都有权重连接,这些权重也是通过训练神经网络获得的参数。最后一层全连接层的激活函数一般采用Softmax激活函数,输出不同类别的概率分布,以进行分类。
图2.4 简单的全连接层结构
医学影像多为灰度图像,相对于自然景象图像,医学图像的语义信息较为简单。所以医学图像中的特征在处理中都十分重要,一般无须过滤冗余信息。但是,带标注的医学图像数据一般数量很少。如何用小样本数据集训练来获取精确分割结果,是医学图像分割的热点研究问题。U-Net模型 [13] 为这一问题提供了解决思路,即多层次特征信息复用。UNet模型如图2.5所示,主要结构为编码器、跳跃连接和解码器三个部分。其中左侧的编码器通过卷积和下采样操作获取图像不同尺度特征,多个卷积层和池化层级联使用,每一层编码结构由两个3×3的卷积层串联提取特征图,然后经过激活函数,最后通过一个2×2的最大池化层来突出前景特征,每次池化后图像缩小一半。跳跃连接的作用是将编码器获得的浅层信息与解码器获得的深层信息相融合。解码器通过上采样和反卷积操作来恢复图像尺度并提取融合后的特征,每一层解码结构由一个反卷积层和特征拼接结构组合来扩大图像,扩大之后接两个3×3的卷积层和ReLU激活函数激活特征图,最终输出分割结果。
U-Net模型广泛应用于各种医学图像分割任务中。但它的结构过于简单,面对脊柱X线图像分割这种复杂的任务时,存在如下三个不足。
1.在同级间缺乏多尺度特征提取能力
U-Net的编码器和解码器通过连续下采样和上采样操作,以获取不同尺度的信息。然后通过跳跃连接方式将编码器和解码器获取的不同尺度信息融合,以达到多尺度特征提取的目的。这种方式只考虑了不同层级之间的尺度信息,在同一层级间缺乏多尺度特征提取能力。
图2.5 U-Net模型
2.跳跃连接方式的特征融合不全面
U-Net的编码器采用最大池化层进行下采样,以最大值代替局部。解码器采用反卷积进行上采样,通过插值来恢复图像的分辨率。这两个操作会造成部分信息丢失的问题。为了缓解这个问题,U-Net设计了跳跃连接。跳跃连接方式只在通道维度上对编码器和解码器获取的特征进行融合,忽略了空间位置信息对图像分割的重要性,存在特征融合不足的问题。
3.缺乏特征筛选
U-Net通过多次跳跃连接以融合不同尺度的特征,这将导致信息的冗余。越是靠近网络的输出层,网络融合的信息越多,无用的信息也越多,导致网络不能关注到重要信息。