APP下载

基于深度学习的CT影像肺结节检测

2019-10-28赵梓淇常振东安烁文李文辉

吉林大学学报(信息科学版) 2019年5期
关键词:步长像素卷积

赵梓淇, 裴 昀, 常振东, 王 博, 安烁文, 李文辉

(吉林大学 a.计算机科学与技术学院; b.电子科学与工程学院, 长春 130012)

0 引 言

深度学习作为机器学习的重要分支, 在计算机视觉等领域发展迅速[1-3]。卷积神经网络(CNN: Convolutional Neural Networks)是一种常用于图像识别及处理和分割的深度学习算法, 应用在人脸识别、行人检测以及肺结节检测等相关领域[4-7], 具有局部感知和权值共享等特点。2012年CNN在ImageNet竞赛中取得第1的佳绩, 至此CNN成为图像处理与目标检测的常用神经网络结构。CNN经历了从AlexNet[8]、VGGNet[9]到GoogLeNet[10]再到ResNet[11]的不断优化, 性能得到了大幅度的提升。

有学者将深度学习算法应用到神经细胞图像的分割、判断乳腺癌的良恶性分级等。同时也有相关研究人员用深度卷积神经网络进行视网膜血管分割, 将三维的卷积神经网络应用到了大脑病变区域分割研究中等。这些研究工作在临床应用中都已有了很大的进展。

世界卫生组织的报告表明, 肺癌目前已经成为全球致死率最高的癌症。而根据我国癌症中心发布的2017年中国肿瘤登记年报, 肺癌位居我国癌症发病率、死亡率第1位。临床研究证明, 肺癌早期患者的五年生存率可达70%以上, 而晚期患者的五年生存率仅为14%左右。肺结节是早期肺癌的一个重要标志。传统检测肺结节的方法是医生通过观察肺部的CT(Computed Tomography)切片图像, 以识别病人是否有肺结节。然而较微小的肺结节在CT影像上看与血管极为相似, 易被遗漏。这就需要具有较高医术水平的医师进行诊断, 而往往这些医师通常是科室的科主任, 即便在三甲级医院这样的资源也是少之又少。另一方面, 一个患者的完整肺部平扫CT影像有数百张的切片, 检测工作量巨大, 需要投入大量的医师完成相关工作。目前, 70%左右的肺癌患者就诊于县级及县级以下医院, 诊疗设备和人力资源都不及三甲医院, 从而导致许多患者错过治疗的最佳时期, 导致发病率极高的肺癌, 因此, 采用计算机辅助研究刻不容缓[12]。

笔者采用U-Net网络对肺结节进行检测, 而U-Net网络是在FCN(Full Convolution Network)网络的基础上进行优化改进得到的适用于医学图像处理的神经网络, 所以在实验过程中选用U-Net网络对肺结节进行检测分割可以得到较好的效果。

1 相关研究

韩贵来等[13]采用基于视觉注意的肺结节显著性区域分割方法, 寻找肺图像中实质显著的区域连通同时对连通区域进行区域生长操作。这种方法虽然可以有效分割肺结节, 但人工选取的误差会对分割过程造成一定影响, 并且受限于肺结节的多样性导致应用不广泛。董林佳等[14]提出了一种基于三维形状指数和Hessian矩阵特征值的肺结节分割与检测方法, 该方法获得三维数据, 并通过对肺结节三维特征建模对肺结节进行分割。Alakwaa等[15]使用3D卷积神经网络对肺结节进行分割与检测。

Long等[16]在基于CNN网络下提出了FCN(Full Convolution Network)网络, Zhou等[17]将其用于医学影像分割, 将FCN算法和多数投票算法相结合, 在人体躯干CT图像中分割出了19个目标。Ronneberger[18]提出了U-net网络结构, 不仅提高了训练效率, 同时也能更精准得实现图像语义级别的分割。U-Net是一种适用于医疗图像分割领域的深度学习网络模型, 该网络已经在角膜图像分割、皮肤病变分割以及膝关节磁共振(MR: Magnetic Resonance)图像分割等领域得到了应用[19-21]。

2 数据预处理

实验需要在众多信息中提取出有用信息, 使分割更准确高效, 这样就需要对数据进行预处理。数据的预处理主要由以下步骤:第1步采用SimpleITK对CT图像进行读取,并存放在Numpy数组的缓存中以供使用;第2步利用Scikit-Image对CT原始图像(图1)进行预处理, 将处理得到的CT影像信息存储在缓存文件中以进行快速训练初始化。将整张CT图像分为512×512像素大小的子图像进行处理。

主要处理过程分为:Binary、Clear_border、Label、Region、Closing、Dilation。

图1 肺部CT图像原图

Binary表示图像的二值化, 即将CT图像转换为像素值为0(黑色)、255(白色), 使肺部边界、内部、外部更加分明, 如图2所示。

Clear border则是将二值化图像的肺部边界外部像素转换为和边界相同, 使肺部区域得以分离, 如图3所示。

Label是对影像每个像素进行连通性检查, 标记连通区域, 分为四连通和八连通;Region是提取标记过的连通区域, 并保持最大的连通区域;Closing是返回的灰度图像的形态闭合, 即关闭可以去除细小黑点并连接小的明亮细缝, 关闭明亮特征之间的黑色间隙, 如图4所示。

图2 肺部CT图像二值化

图3 Clear border处理

图4 Closing处理

Dilation是对图像进行形态学上的膨胀, 将某一坐标下的像素值设置为以该坐标为中心的邻域中所有像素值的最大值, 扩张放大明亮区域并缩小黑暗区域, 如图5所示。预处理后的结果如图6所示。

图5 Dilation处理

图6 预处理结果图

3 肺结节分割网络

该实验使用U-Net网络作为基础网络, 由于医学图像边界模糊、梯度复杂、需要较多的高分辨率信息, 而人体内部结构相对稳定, 语义较为简单, 所以低分辨率信息即可完成简单定位。U-Net网络用深层特征定位, 浅层特征用于精确分割, 在上采样过程中将浅层特征和深层特征结合, 能得到较好的分割效果。

3.1 FCN网络

该网络是在卷积神经网络基础上实现的, 通常CNN在卷积层之后会接若干个全连接层, 将卷积层产生的特征图(feature map)映射成一个固定长度的特征向量。以AlexNet为例, 在最后得到长为1 000的输出向量, 其值为输入图像属于某一类的概率, 即通过softmax得到固定长度的特征向量。FCN就是将CNN的全连接层转换为卷积层, 例如AlexNet使用了两个尺寸为4 096的全连接层和一个尺寸为1 000的全连接层用作计算分类评分(见图7)。

图7 部分AlexNet网络结构

将其分别转换为和的卷积层, 把全连接层的权重重新塑造为卷积层的滤波器, 转化的目的是使卷积神经网络能得到更多输出, 以对每个像素点进行分类, 同时保留了原始图像的空间信息如图8所示。

图8 改进的FCN网络结构

FCN对图像进行像素级分类, 从而解决了语义级别的图像分割问题, 所以FCN的另一优势就是对输入图像的大小没有明确限制, 不需要像CNN要对图像进行裁剪, 避免了特征信息丢失。

在得到热图(heatmap)后需要对图像上采样(upsampling), 同样使用和前部分对称的卷积核和池化层大小, 把图像放大到原图像大小。

FCN上采样过程中的一个关键步骤是对上采样的微调(fine tuning), 如果直接把pool4层进行步长为32的反卷积, 得到的结果图会丢失大量存在于浅层特征的位置信息和细节, 所以将pool4层进行步长为2的反卷积和pool3层的特征相加再进行步长为16的反卷积, 将相加的特征进行步长为2的反卷积和pool2层的特征相加进行步长为8的反卷积, 整个过程如图9所示。

图9 FCN网络上采样过程

此时每个像素都得到了分类预测, 得到更加精准的分割图像, 所以FCN全卷积神经网络是一种端到端、像素到像素的良好的分割网络。

3.2 U-Net结构

U-Net是基于FCN的语义分割网络。相比于FCN, U-Net在上采样部分进行了改进, U-Net为上采样部分提供了大量的特征通道, 使更多的语义信息传输到高分辨率特征层。

3.2.1 反卷积

网络的上采样部分采用反卷积过程, 反卷积过程和卷积过程相反, 卷积层的反向传播过程就是反卷积的前向传播过程。卷积的目的是提取更深层次的特征信息, 而反卷积的作用是在浅层区域一定程度上还原原始图像的位置信息。若输入图片大小为I×I, 卷积核为K×K, 步长为S,一层零填充为P, 对于卷积过程, 输出图像大小

(1)

反卷积过程以输入图像为2×2像素, 卷积核为3×3像素, 步长为1, 两层零填充为例, 同样利用卷积过程的权值共享的特性, 带有零填充的输入图像和卷积核做矩阵内积, 随步长移动形成输出图像, 如图10所示。

图10 反卷积过程描述

同样能得出输出图像大小

O=(I-1)S+K-2P

(2)

3.2.2 并联跳跃结构

上面已经阐述了传统的FCN网络将层间信息进行加和, 并进行多次训练, 耗费时间较长, 并且由于加和的原因, 深层特征信息会有一定程度的丢失。U-Net采用并联跳跃结构, 和FCN一样结合了深层的特征信息和浅层的位置信息, 采用2×2的反卷积核反卷积得到2倍于长宽的输出特征图再和同一层级池化后的特征图进行叠加并联, 由于尺寸不同, 所以需要对同层池化后的特征图进行相应的裁剪, 重复该过程直到恢复到初始输入图像尺寸。该过程只需训练一次, 得到的位置和特征信息更加精确。

3.2.3 损失函数

U-Net用softmax函数和交叉熵的结合作为损失函数, 首先用softmax处理输出向量, 得到不同类别间的相对概率, 将数值稳定在[0,1]区间

(3)

其中wij为第i个神经元的第j个权重,b是偏移量,Zi表示该网络的第i个输出。

(4)

其中ai表示第i个softmax的输出值,k为分类数。

熵用于表示信息量的期望值, 即

(5)

其中n代表n种分类,p(xi)为xi事件发生的概率。

在机器学习中用到相对熵, 用p表示样本真实分布、q描述样本, 相对熵可表示为

(6)

式(6)的前半部分在训练过程中保持不变, 所以只需关注后面一项, 就是交叉熵。

在该网络中将softmax的结果用ai描述样本、yi表示真实分类结果, 则得到交叉熵C为

(7)

(8)

针对分类问题,yi最终只会有一个类别为1, 其余类别都为0, 最终梯度可化简为

(9)

3.2.4 U-Net网络结构

U-Net网络分为两个阶段, 第1个阶段是收缩阶段(contracting path), 这部分的网络结构是常规的卷积神经网络, 所以这部分可以利用ResNet、VGG、Inception等成熟的模型做为卷积网络的结构, 优点是可以利用训练成熟的模型加速U-net网络的训练, 该实验收缩部分进行了多次以两次用3×3卷积核卷积和一次2×2 max pooling为单位的操作, 每层卷积层之间都用激活函数ReLu进行处理, 每进行一次操作, 特征通道数将会扩大一倍。

最后一次的卷积和池化后得到的特征图具有较深层抽象的特征提取信息, 由于实验以分割为目的, 所以需要将每个像素进行分类并且还原原图的位置信息, 所以第2阶段是扩张阶段, 其中重要的步骤是上采样。上采样过程解决了上述问题, U-net网络采用2×2反卷积, 将其和同层经过两次3×3卷积后经过适当裁剪的特征图进行叠加并联, 同样经过两次3×3卷积后, 同样操作的反卷积和卷积操作对称进行多次, 最后一层采用1×1的卷积核得到输出图像, 整个网络结构如图11所示, 相关说明如图12所示。

图11 U-Net网络结构

图12 U-net相关说明

4 实验设计

4.1 数 据

实验全部数据引自阿里云天池医疗AI大赛, 数据集提供一千例高危患者的低剂量肺部CT影像(mhd格式)数据, 每个影像包含一系列胸腔的多个轴向切片。每个影像包含的切片数量会随着扫描机器、扫描层厚和患者的不同而有差异。原始图像为三维图像。每个图像包含一系列胸腔的多个轴向切片。这个三维图像由不同数量的二维图像组成。其二维图像数量可以基于不同因素变化, 比如扫描机器、患者。Mhd文件具有包含关于患者ID的必要信息的头部, 以及诸如切片厚度的扫描参数。所提供数据的结节大小如表1所示。

表1 肺结节大小在数据集中占比

由于结节大小不同, 尤其对半径小于10 mm的肺结节, 在验证和测试时很容易造成漏检, 以及和血管黏连导致误诊, 所以实验对数据进行增强, 对结节小于10 mm的图像扩大4倍, 对结节大于10 mm小于30 mm的图像扩大3倍, 提高了验证和测试的准确性。

4.2 网络设计

实验所用的U-net网络设计如表2所示。

表2 U-net网络设计

5 实验结果

5.1 实验条件

实验环境如下。

1)硬件:Intel i9-7920X,16GByte,Nvidia GTX 1080Ti;

2)软件:Windows10,CUDA10.0,cudnn7.4,Tensorflow1.9.0。

数据输入尺寸为512×512像素, 选择其中976张图像用于训练模型, 270张图像用于测试网络模型性能。

5.2 实验结果

随机初始化各层的参数权重值, 训练模型, 输入CT图像, 得到图像中预测出的肺结节位置的掩膜(mask), 对得到的预处理图像肺结节部分进行检测并加以增强, 使训练效果以及分割效果更加精准, 处理后的CT图像如图13所示。经过训练之后得到各CT图像中的肺结节掩膜如图14所示。

图13 CT图像中的肺结节

图14 肺结节掩膜

实验结果表明, 对于训练集的损失函数最终稳定在0.118 7, 对于验证集的损失函数最终稳定在0.382 8, 验证集的准确率最终可以达到98.1%, 结果如图15~图17所示。

图15 训练集损失函数 图16 验证集损失函数 图17 验证集准确率

6 结 语

笔者使用在医学图像分割领域上效果较为出色的U-Net作为基础网络, 数据集采用天池AI医疗大赛所提供的肺部CT图像对肺结节进行分割, 实验结果表明, 通过本方法可以有效地得到较好的分割效果。实验采用的方法主要特点是不需要人工提取肺结节特征, 利用深度神经网络学习特性, 自动分割肺结节, 相比人眼识别肺结节大幅度提高了速度和准确率。虽然现如今在深度学习方式的辅助诊断还有一些困难, 但相信在不久的将来, 使用深度学习方法对肺结节分割的技术将逐渐趋于成熟, 并得到广泛的应用。

猜你喜欢

步长像素卷积
像素前线之“幻影”2000
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于随机森林回归的智能手机用步长估计模型
卷积神经网络的分析与设计
基于Armijo搜索步长的几种共轭梯度法的分析对比
“像素”仙人掌
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
ÉVOLUTIONDIGAE Style de vie tactile