APP下载

基于深度学习的SPECT图像关节炎病灶分割

2021-03-29高瑞婷满正行曹永春王海军

关键词:残差关节炎卷积

高瑞婷,林 强,满正行,曹永春,王海军,陈 军,邓 涛

(1.西北民族大学 中国民族语言文字信息技术教育部重点实验室,甘肃 兰州 730030;2.西北民族大学 动态流数据计算与应用实验室,甘肃 兰州 730030;3.甘肃省人民医院 核医学科,甘肃 兰州 730020)

0 引言

关节炎是人体关节的炎性病变,主要由微生物感染、机体创伤、免疫力下降、遗传及关节退行性变等因素引发.临床上,关节炎具有病症隐匿、病情进展缓慢、可反复发作等特征,当然也不排除部分急性发作的病例.这种情况若不及时治疗则易引起关节功能障碍,严重者可致终身残疾.对于老年患者,关节炎与骨转移的早期症状有着类似的成像特征.在临床诊断中,准确诊断并精确分割关节炎病灶具有重要的临床诊疗价值,已经成为放射医学中图像自动分割的重要研究分支[1-3].

在医学成像中,单光子发射计算机断层成像(Single-Photon Emission Computed Tomography,SPECT)是主要的核医学功能成像技术,可同时捕获器官、组织的功能状态和结构形态.与传统的结构成像,如计算机断层摄影(Computed Tomography,CT)和磁共振成像(Magnetic Resonance Imaging,MRI)相比,核医学SPECT成像通过检测骨代谢的变化实现病变的识别,具有较高的灵敏度[4-5].

SPECT是低质量医学成像模态,一幅全身骨扫描SPECT图像的分辨率仅为256×1024.同时,SPECT图像容易受噪声干扰,还经常包含注射点、膀胱等部位的高浓度残留.尽管传统的机器学习方法已经部分应用于SPECT图像的病灶分割,但受限于SPECT骨成像的低分辨率和低对比度,目前面向全身SPECT骨成像的病灶分割研究很少,几乎为空白.

深度学习是近年来快速发展和广泛应用的机器学习技术,具有可从图像中自动提取特征的独特功能.在图像分割研究范畴,学术界提出了系列深度分割网络,包括面向语义分割的全卷积网络(Fully Convolutional Networks,FCN)[6]和面向实例分割的Mask R-CNN[7].专注于医学图像的分割,Ronneberger等[8]基于FCN构建了U-Net网络.当前,基于深度学习的图像分割已经成为医学图像分析的重要研究分支,产生了一系列代表性的研究成果,涉及的成像模态主要包括磁共振图像[9-13]、CT图像[14-16]、超声图像[17-19]分割.

应用传统的神经网络,朱春媚等[20]于2007年构建了基于BP神经网络的全身骨SPECT图像的骨骼结构分割方法.该方法首先利用神经网络进行粗分类,然后用模板匹配和去对称机制排除误识别的区域,获得的分割准确率为75.5%;Chen等[21]于2020年提出深度网络与主动轮廓技术结合的骨SPECT成像骨骼结构分割模型,获得的DSC(Dice similarity coefficient)值为0.732;Shimizu等[22]于2020年在U-Net网络的基础上构建了所谓的蝴蝶型网络(BtrflyNet),实现全身骨SPECT图像中13个骨骼部位分割,获得的DSC值在0.7~0.96之间.

现有研究主要关注的是骨骼结构的分割,尚未涉及疾病病灶的分割.由于骨骼具有比较规则的形状,并且有可参考的构造常识,因而相对容易分割.相比而言,病灶的形态各异,结构复杂,特别是关节炎病灶单体面积较小、分布密度较大,病灶可靠分割难度较大.借助于深度学习技术的图像特征自动提取功能,可精确分割SPECT骨成像中的关节炎病灶.本文首先利用归一化技术将骨SPECT成像数据文件转换成元素值在特定范围的图像,在关节部位图像裁减的基础上做标准的图像镜像、平移和旋转处理,实现数据集的适度扩展.然后利用经典的U-Net和Mask R-CNN网络以及提出基于U-Net网络的改进模型R_U-Net构建分割模型,实现关节炎病灶的自动分割.最后,使用一组真实的SPECT骨成像数据,验证本文构建的深度分割模型.实验结果表明,本文提出的方法可用于SPECT骨成像中关节炎病灶的识别和检测,获得的上肢关节炎CPA和IoU分别为0.688和0.648,下肢关节炎CPA和IoU分别为0.640和0.590,MPA、MIoU的值分别为0.776、0.754.

1 SPECT骨成像数据集及预处理

1.1 核医学SPECT图像数据集

本文实验所用数据收集于2017年1月至12月甘肃省人民医院放射科疾病诊断过程中采集的数据.所有患者均采用西门子多光谱伽玛照相机,配有两个探测器,静脉注射Tc-99m亚甲基二磷酸盐(MDP)放射性药物2~3 h后的骨显像.SPECT数据存储遵循医学数字成像与通信协议(Digital Imaging and Communications in Medicine,DICOM).DICOM文件中的每个元素都是辐射剂量(16位无符号整数)的数字记录,而不是预先注射到患者体内的放射性核素或同位素的像素值,矩阵大小为1024×256,可显示患者大部分身体情况.正常人的SPECT成像均匀、清晰,全身骨放射性分布均匀且对称,而发生病变的区域会出现放射性核素浓聚,成像表现为团点状的亮点.

1.2 数据集预处理

本文拟构建基于深度学习模型的SPECT图像关节炎病灶分割方法,而深度模型对训练数据量以及数据输入格式有较高的要求.SPECT图像是在疾病诊治过程中收集的核医学影像记录,患有关节炎的SPECT数据较少,而且原始数据为DICOM文件,无法直接输入模型训练.为此,本文采用归一化方法处理SPECT数据,通过平移、旋转、镜像、裁剪等方法来扩展数据,然后将数据集转换成实验模型所要求的输入格式并送入模型训练.

1.2.1 DICOM矩阵到图像的转换

SPECT关节炎病灶数据是以DICOM文件格式存储,而每个文件都是核素放射量矩阵,如图1是获取的2017年所有DICOM文件的数量及其放射量.由图1看出,放射量大约处于0~11 000之间,范围变化较大.为了适应模型将其做归一化处理,转化为像素值在0~255的普通图像.运用Min-Max标准对原始数据归一化线性变换,如公式(1).

(1)

其中,xi表示图像像素点值,max(x)和min(x)分别表示图像像素的最大值与最小值.

图1 2017年DICOM文件放射量图

1.2.2 数据扩展

为了解决标注样本数量较少的问题,需要进行数据扩展.数据扩展能够有效缓解过拟合问题,从而提高分割精度.

1) 图像裁剪.SPECT图像基本包含人体全身部位.为了降低图像背景对病灶部位的影响,本文通过裁剪方式扩展数据.原始数据大小为1024×256,设置步长为128,以肩、肘、腕、膝、踝关节为目标点依次进行裁剪,确保裁剪后的每张图像都有一个或者多个病灶点,最终得到尺寸为256×256的图像.

2) 水平镜像.SPECT核医学检测每次产生两幅图像,分别代表前位图像和后位图像.检查过程和数据传输、存储过程均有可能出现图像丢失现象.为了避免图像丢失可能带来的影响,本文对SPECT图像做镜像处理.常见的图像镜像有水平镜像和垂直镜像,但由于人体的垂直对称性,本文仅选用水平镜像的处理方法.

设原图像的高度为h,宽度为w,(xi,yi)为输入图像中的点,式(2)给出了经过水平镜像变换后的点(x0,y0).

(2)

3) 图像旋转.疾病检查过程中,患者的睡姿可能不完全标准,所收集的SPECT图像中难免会包含倾斜现象.为了弥补这种缺陷,对SPECT图像做适度旋转处理.其旋转幅度需要控制在合理的范围内.

假设(xi,yi)为输入图像中的点,给定旋转角度θ∈[θ1,θ2],其中θ1和θ2分别代表旋转角度的下限和上限,取值通过实验方式确定.式(3)给出了经旋转处理后的点(x0,y0).

(3)

4) 图像平移.因患者睡姿的不标准,所收集的SPECT图像中会产生偏离中心的现象.为消除这一影响,需要对SPECT做平移处理.但医学图像不同于自然图像,平移幅度应该控制在合理的范围之内.

假设(xi,yi)为输入图像中的点,给定平移量Δx∈[Δx1,Δx2],其中Δx1和Δx2分别代表平移量的下限和上限,其取值通过实验方式确定.式(4)给出了经平移处理后的点(x0,y0).

(4)

2 基于深度学习的SPECT图像病灶分割模型

2.1 Mask R-CNN网络

Mask R-CNN[7]是一个具有多任务学习能力的神经网络,在Faster R-CNN[23]网络分类与目标检测分支的基础上并行增加了一个分割的分支,可以同时实现检测、分类和分割任务.

Faster R-CNN主要是对图像做检测与定位,通过区域建议网络(Region Proposal Network,RPN)找出图像中的候选区域(Region of Interest,RoI),再利用卷积层提取这幅图片的整体特征,从而得到特征图.

Mask分支是使用FCN对每个RoI预测掩模.FCN主要包括卷积和去卷积模块,即先对图像进行卷积和池化操作,使其特征图的大小不断减小,然后进行反卷积操作,经过神经网络最后的Softmax分类器,预测某像素属于某类别的概率.在上采样的特征图上进行逐像素的预测分类,从而实现对图像的准确分割.

RoI Align是使用双线性插值进行池化操作,使得特征图中目标区域的精确信息被获取,并进行分类回归,从而提高准确性.

在训练阶段,每个样本的RoI均有一个损失函数(Loss,L),L定义为公式(5).

L=Lcls+Lbox+Lmask

(5)

其中,Lcls为分类损失,Lbox为回归损失,Lmask为分割损失.Lcls和Lbox是利用全连接预测出每个ROI的所属类别及其矩形框坐标值.mask分支采用FCN对每个ROI的分割输出维数为K×m×m的掩膜,对每一个像素应用sigmod函数求相对熵,得到平均相对熵误差Lmask.

本实验模型的网络结构如图2所示.骨干网络使用ResNet50,基于ResNet50构建特征金字塔网络(Feature Pyramid Networks,FPN)做自下而上特征提取.SPECT骨显像原始图像大小为256×256,在进入主干网络前先放大为512×512.ResNet50网络中划分为5个模块,每个模块的特征图对应Stride为[4,8,16,32,64].经滑动窗口卷积后再经RPN网络中3×3的主干卷积神经网络过滤重叠特征,然后经过两个1×1的卷积神经网络生成锚框坐标和前景背景.在病灶位置检测选取锚点框(anchor)时,将anchor大小分别设置为[24,48,96,192,384]五种尺度,以实现多尺度图像检测,以适应大小不同病灶的位置检测.分类与检测的结果对Proposals优化更新,RoI Align再作用于Mask分支,将输出的特征图分别送入分类和分割两个分支.在检测任务分支中分类任务完成后,再进行分割.Mask形成与原图等大的二值图,用彩色区域代表不同类别的病灶区域,黑色部分为背景区域.

图2 Mask R-CNN网络结构

2.2 R_U-Net网络

2.2.1 U-Net网络

U-Net网络[8]是一种编码器—解码器的结构,由收缩路径和扩张路径呈对称状.收缩路径进行下采样操作,用于获取丰富的上下文信息对骨显像病灶和背景进行分类,扩张路径进行上采样操作,用于实现病灶的精确定位.通过跳跃拼接(skip connection)将浅层特征与深层特征进行融合,以获得更精确的上下文信息,得到更多的病灶细节信息.

U-Net网络共有23个卷积层,收缩路径每一步下采样包括两个3×3的卷积.每次卷积后都经过修正线性单元(Rectified Linear Unit,ReLU)函数作用,之后使用一个2×2的最大池化操作实现下采样,其步长为2.所有下采样操作使得特征通道翻倍,图像尺寸减半.共进行四次这样的下采样操作.扩张路径每一步上采样包括两个3×3的卷积操作,通过ReLU作激活函数,输出通道变为原来的一半,图像尺寸变为原来的2倍.最后,通过1×1的卷积操作将特征映射到所属类别中.

2.2.2 残差块

传统神经网络随着训练的迭代次数增加,产生的错误也会增多,容易产生梯度消失或爆炸问题.为此,He等[24]提出了残差学习来解决网络退化问题.对于一个堆叠层结构,当输入x时学习到的特征记为H(x)=F(x).当直接将一个输入添加到函数的输出时,得到的残差映射为F(x)=H(x)-x.每一个残差单元计算公式如式(6)、式(7).

yi=F(xi,wi)+h(xi)

(6)

xi+1=f(yi)

(7)

其中,xi和xi+1表示第i个残差单元的输入和输出,F表示学习到的残差,wi为第i层参数,f表示ReLU激活函数,h(xi)=xi表示恒等映射.残差单元的结构如图3所示.

图3 残差块结构

与其他网络相比,残差网络结构相对简单,该网络将多个卷积操作得到残差映射与输入通过Add操作进行特征融合,减少了训练参数与训练时间,在加深网络深度的同时,有利于提升SPECT图像关节炎病灶分割的精度.

为了从SPECT数据集中获取到更多深层特征信息,引入了残差块来代替普通的卷积层,残差块在加深U-Net网络的深度,同时可有效解决随着网络层数加深出现的梯度消失问题.改进后的R_U-Net网络如图4所示.

图4 R_U-Net网络结构

R_U-Net网络结构采用了U-Net网络的U型结构,由收缩路径和扩展路径两部分组成.收缩路径的四次下采样和扩展路径的四次上采样都包括两个3×3的卷积,一个1×1的残差单元和一个2×2的最大池化层.在下采样操作中,特征通道变为原来的2倍,依次为[1,64,128,256,512,1024],图像尺寸变为原来的一半,依次为[256,128,64,32,16].在上采样操作中,将每一次的输出特征与相映射的收缩网络的特征合并在一起,补全卷积边界像素的丢失.最后,通过1×1的卷积操作,将64通道的特征图转为类别数为2的特征图,并经过sigmoid函数输出一个概率值.该值反映了预测结果为关节炎的可能性.概率值越大,说明关节炎可能性越大.每次卷积后都通过ReLU函数激活.为了保持输出图像与输出图像尺寸一致,每个卷积层均采用零填充方式进行填充.

训练阶段采用Dice损失函数作为分割部分的损失函数.Dice系数被定义为公式(8).

(8)

其中,A为预测结果,B为人工标记结果.当预测结果与人工标注结果完全相同时,其Dice系数为1.反之,当预测结果与人工标注结果没有任何重叠时,其Dice系数为0.Dice损失函数为公式(9).

LDice=1-Dice(A,B)

(9)

3 实验与分析

3.1 实验设计

3.1.1 实验数据与环境

本文将患者被诊断为关节炎的325幅SPECT数据作为实验样本,主要以患者双侧肩关节、肘关节、腕关节、膝关节和踝关节进行病灶分割.根据部位不同,将双侧肩关节、肘关节和腕关节部位病灶归为上肢关节炎(D1)类,双侧膝关节和踝关节部位病灶归为下肢关节炎(D)类.由该医院三名放射科医生使用标注工具LabelMe人工勾勒患者五处部位的病灶轮廓,由一名放射科主任医生负责检查标记结果来确保标记的正确性.如果三位医生标记一致,则认为该张图像标记成功.如果三位医生中有一位与其他两位不同,则执行“少数服从多数”原则.三位医生根据病例报告中对每个病例的描述,结合患者的SPECT骨显像情况,对该张图像重新标记,确保每张图像标记部位准确无误.标注完成后生成json格式的注释文件,其中包含每幅图像中目标区域对应的坐标信息.在数据处理阶段,json格式文件被转换为对应于每个分割区域的掩码图像,然后送入模型进行训练.

原始数据集通过裁剪、镜像、旋转和平移等方式得到5 300张.数据集输入尺寸大小为256×256.实验中将数据集划分为训练集、测试集和验证集,其中训练集4 500张,验证集500和测试集300张.

实验将Mask R-CNN网络学习率设置为0.001,学习率的初始动量系数为0.9,batch size设置为8,网络设置的epoch为200.每个epoch的迭代次数为130,训练最大迭代次数设置为26 000.将U-Net网络的学习率设置为0.000 1,batch size设置为4,网络设置的epoch为200,每个epoch的迭代次数为200,训练最大迭代次数设置为40 000.为了对比本文改进模型的性能,将R_U-Net网络与原U-Net网络作同样的参数设置.

实验在Windows 1064位操作系统,有Intel i5-9300X和1块NVIDIA Ge Force GTX 1050T显卡的计算机上进行.采用Python 3.6编写代码.神经网络的训练和测试均以PyTorch框架完成.

3.1.2 评价指标

本实验使用医学图像分割中常用的度量指标来定量评价模型的分割结果,度量指标分别为类别像素精确率(Category Precision Accuracy,CPA)、平均像素准确率(Mean Pixel Accuracy,MPA)、交并比(Intersection over Union,IoU)和平均交并比(Mean Intersection over Union,MIoU).其中,pij表示属于类i但被预测为类j的像素数量;pii表示属于类i且被预测为类i的像素数量;pji表示属于类j但被预测为类i的像素数量,k代表图像分割类别个数,k+1为包括背景在内的类别总个数.具体公式见式(10)~式(13).

(10)

(11)

(12)

(13)

3.2 实验结果与分析

将预处理好的训练集在Mask R-CNN网络、U-Net网络和R_U-Net网络上分别训练.当设置网络的epoch从1开始增加时,三种网络的目标函数值一直处于减少状态,损失值也开始逐渐减小.三种网络训练过程曲线图如图5所示,横坐标表示网络训练的迭代次数,纵坐标表示训练损失值.

由图5看出,三种网络随着迭代次数的增加损失值不断减小,表示网络在迭代过程中充分学习数据集的特征,Mask R-CNN网络大约在26 000次迭代后损失值达到最小.U-Net网络大约在迭代39 000次后达到收敛状态,R_U-Net网络大约在迭代40 000次后达到收敛状态.

(a)Mask R-CNN模型Loss曲线 (b)U-Net模型Loss曲线 (c)R_U-Net模型Loss曲线

为综合评价分割效果,本实验以上肢关节炎和下肢关节炎病灶的人工标注结果作为参考,根据300张测试图像的分割结果计算两类病灶的CPA和IoU值.表1展示了Mask R-CNN、U-Net和R_U-Net三种网络模型对不同病灶类别的度量指标结果.

表1 三种模型对不同类别的指标结果

由表1看出,三种网络模型对于上肢关节炎(D1)的分割结果优于下肢关节炎(D).在SPECT关节炎数据集中,部分数据的D1病灶点比D病灶点更加浓聚,利于网络学习特征,从而可获得相对较好的分割结果.但是三种网络整体分割效果一般,是因为D1病灶和D病灶具有较高的相似性,且SPECT数据较少,使得三种网络模型不能很好地识别两种病灶,导致部分D1病灶和D病灶数据出现类别预测错误的情况.

为了更好地评价Mask R-CNN、U-Net和R_U-Net三种网络模型对SPECT图像关节炎病灶的分割性能,实验计算了MPA和MIoU的值,结果如表2所示.

由表2可以看出,U-Net网络分割效果高于Mask R-CNN网络,是因为Mask R-CNN网络层数较深且复杂.而SPECT关节炎病灶数据集较少,模型学习特征的能力不足,使得关节炎病灶分割效果较差.R_U-Net网络的分割指标MPA和MIoU比原U-Net网络分别提高了7.4%和6.8%,是因为原U-Net网络深度略有不足,模型学习到的深度特征较少,而R_U-Net网络里增加了多个残差块,加深了原U-Net网络的深度,能够从SPECT数据集中获取更多深层特征信息,残差块还将多个卷积操作得到残差映射与输入通过Add操作进行特征融合,从而获取多个层次的特征,提高了分割精度.

为了更直观地看到三种网络的模型分割效果,图6列出2组上肢关节(D1)和下肢关节(D)在测试集上的分割病灶结果.(a)为原始图像,(b)为人工标记病灶图,(c)为Mask R-CNN网络模型分割病灶结果图,(d)为U-Net网络模型分割病灶结果图,(e)为R_U-Net网络模型分割病灶结果图.

由图6可看出,三种模型都可以分割出上肢关节病灶部位和下肢关节病灶部位:1)组中R_U-Net网络模型分割结果与人工标记的重叠区域比Mask R-CNN模型和U-Net模型更大,更接近人工标注区域;2)组中R_U-Net网络模型分割结果曲线要比其他两种模型更圆滑.实验结果表明,将残差块与原U-Net网络相结合的改进R_U-Net网络模型能提升SPECT图像的关节炎病灶分割精度,能够进一步为诊断疾病及后续治疗提供更多辅助信息.

图6 关节炎病灶分割结果

4 总结

以SPECT成像关节炎病灶的自动分割为目标,本文研究并构建基于Mask R-CNN网络和U-Net网络的分割模型,提出在U-Net网络中加入残差块的R_U-Net网络.首先,对SPECT图像的预处理和数据扩展过程给予了交代.然后详细说明了构建的深度分割模型.最后,基于真实的SPECT检查数据,对构建的分类模型进行了实验验证.实验结果表明,本文提出的改进方法在关节炎病灶图像分割中具有可行性.未来将从如下几个方面对本文工作予以扩展:

1)进一步优化模型,提升模型的分割性能.

2)收集更多真实数据,验证模型的有效性和可用性.

3)拓展研究领域,构建面向多疾病多病灶的深度分割模型,进而研发可实际部署的SPECT关节炎CAD系统.

猜你喜欢

残差关节炎卷积
基于双向GRU与残差拟合的车辆跟驰建模
Red panda Roshani visits Melbourne Zoo vet
基于3D-Winograd的快速卷积算法设计及FPGA实现
关节炎的“养护手册”
基于残差学习的自适应无人机目标跟踪算法
卷积神经网络的分析与设计
基于递归残差网络的图像超分辨率重建
从滤波器理解卷积
求医更要求己的类风湿关节炎
基于傅里叶域卷积表示的目标跟踪算法