基于Dense-UNet++的关节滑膜磁共振图像分割
Magnetic Resonance Images Segmentation of Synovium Based on Dense-UNet++
通讯作者: 石洁, Tel: 021-62805833, E-mail:ghyyfsk@163.com汪红志, Tel: 13916346546, E-mail:hzwang@phy.ecnu.edu.cn
收稿日期: 2021-04-6
Received: 2021-04-6
为解决以往基于深度学习的滑膜磁共振图像分割模型存在的分割精度较低、鲁棒性较差、训练耗时等问题,本文提出了一种基于Dense-UNet++网络的新模型,将DenseNet模块插入UNet++网络中,并使用Swish激活函数进行训练.利用1 036张滑膜磁共振图像数据增广后的14 512张滑膜图像对模型进行训练,并利用68张图像进行测试.结果显示,模型的平均DSC系数为0.819 9,交叉联合度量(IOU)为0.927 9.相较于UNet、ResUNet和VGG-UNet++网络结构,DSC系数和IOU均有提升,DSC振荡系数降低.另外在应用于相同滑膜图像数据集和使用相同的网络结构时,Swish函数相比ReLu函数有助于提升分割精度.实验结果表明,本文提出的算法对于滑膜磁共振图像的病灶区域的分割有较好的效果,能够辅助医生对病情做出判断.
关键词:
To further improve the segmentation accuracy, robustness, and training efficiency of existing articular synovium segmentation algorithms, a new deep learning network based on Dense-UNet++ was proposed. First, we inserted the DenseNet module into the UNet++ network, then applied the Swish activation function to train the model. The network was trained through 14 512 synovial images augmented from 1 036 synovial images, and tested through 68 images. The average accuracy of the model reached 0.819 9 for dice similarity coefficient (DSC), and 0.927 9 for intersection over union (IOU) index. Compared with UNet, ResUNet and VGG-UNet++, DSC coefficient and IOU index were improved, and DSC oscillation coefficient reduced. In addition, when applied in the same synovial image set and using the same network structure, the Swish function can help improve the accuracy of segmentation compared with the ReLu function. The experimental results show that the proposed algorithm performs better in segmenting articular synovium and may assist doctors in disease diagnosis.
Keywords:
本文引用格式
王振宇, 王颖珊, 毛瑾玲, 马伟伟, 路青, 石洁, 汪红志.
WANG Zhen-yu.
引言
滑膜增生是类风湿关节炎的基本病理改变,属于一种无菌性炎症,是多以手足小关节起病的多系统性自身免疫性疾病.滑膜增生不仅损害人体四肢关节滑膜组织,还会破坏神经、血管等重要器官,通常表现为滑膜充血、水肿、渗出,中性粒细胞、淋巴细胞浸润,进而出现滑膜增厚、毛细血管增多、滑膜内产生血管翳.如果在滑膜增生疾病早期能够确诊并采取对应的治疗措施,对于改善骨关节的侵损程度,减低或延缓致残率有着相当重要的医学价值.磁共振成像(MRI)具有软组织分辨率高以及任意方向成像的特点[3],所以相较于电子计算机断层扫描(CT)图像,磁共振图像更能够显示滑膜增生、关节腔积液、关节软骨破坏等早期病理改变[4, 5].为了能够准确的分割出滑膜病灶区域并制定有效的治疗方案,通常需要医生手动对关节磁共振图像进行标注,但这种方法存在两个问题:一是耗时过长并且效率低下,对滑膜的分割需要对边界进行细致的判断,因此需要耗费大量的精力以及时间;二是存在一定的主观性,因为经验不同,不同医生对同一张磁共振图像会有不同的判断.以往的深度学习模型用于增生滑膜的分割时,比如魏小娜等[6]利用ResUNet对手部滑膜磁共振图像进行分割,通过在UNet中添加残差模块来提高UNet模型的分割精度,虽然效率相较医生手动勾画效率更高,但是存在准确性差、模型训练成本高、鲁棒性较差等问题.而Long等[7]利用ResNet进行膝关节滑膜超声图像分割时,只能够将关节有滑膜增生的部位整体分割出来,无法对滑膜增生的区域进行分割.
为了解决目前关节滑膜磁共振图像病灶分割模型存在的准确性差、模型训练成本高、鲁棒性差的问题,并能够准确的将滑膜增生区域进行分割,受以往研究以及深度学习理论的启发,本文在网络架构以及激活函数方面进行了探索,提出一种基于改进UNet++网络——Dense-UNet++网络的滑膜磁共振图像的分割模型.
1 Dense-UNet++网络
1.1 全连接卷积神经网络(FCN)
1.2 UNet神经网络系列
UNet提出的初衷是为了解决医学图像的分割问题[10],其系列网络最核心部分的就是UNet网络结构,它继承了FCN的上采样思想,但相较于FCN,UNet是完全对称的,且在从高语义信息解码为像素分类的过程中进行了卷积加深处理,而FCN只是简单的进行了上采样.与FCN相同的是,UNet也使用了短接(skip connection)连接方式,但FCN中短接操作的联合是通过求和对应像素,而UNet则是对图像通道进行拼接操作.短接通道使得某些数据跳过若干卷积层,直接和更高级的特征图融合,保留了更多原始信息,提高了模型精度,并在一定程度上解决了梯度消失的问题.UNet使用短接通道操作将浅层网络的输出和深层网络的输出合并到一起[10],使得网络在最终输出的时候能够同时考虑浅层网络和深层网络的贡献,有效避免了FCN语义信息和分割细节此消彼长的问题. 浅层输出保留了空间细节信息,深层输出则保留了相对抽象的语义信息,二者合一就提升了分割效果.UNet是比较早的使用多尺度特征进行分割任务的算法之一,它的U型结构也启发了后面很多算法,但它也有几个缺点:一,有效卷积增加了模型的设计难度和普适性,分割细节仍有待加强;二,不同任务的UNet最佳深度不同,需要通过大量实验进行验证[11].
为了解决UNet存在的问题,Zhou等[12]在2020年提出了UNet++网络.Zhou等在利用UNet时,发现UNet网络并不是越深越好,不同层次的特征的重要性对于不同的数据集是不一样的,训练时不可能将所有深度的UNet都进行尝试,否则耗时会大大增加.UNet++的优势在于可以抓取不同层次的特征,将这些不同层次的特征通过特征叠加的方式整合,加入更浅的UNet架构,使得融合时候特征图之间的差异更小,使用不同深度的UNet进行集成来降低对不同层次最优架构的探索,这些UNet网络部分使用的是一个编码器,在训练的时候同时对所有层次的UNet进行监督[13].但与此同时,UNet++也引入了更多的参数,占用的内存也大大增加,使得训练速度减慢,损失函数收敛速度减缓.
1.3 Dense-UNet++网络
针对传统UNet++网络存在参数量过大、占用内存较大、训练难以收敛的问题,本文提出了一个新的网络架构,即Dense-UNet++,主要从两个方面对UNet++网络进行修改:一是将UNet++中的基础网络架构(backbone)由VGG16改为速度较快并且较为轻量级的密集卷积网络(DenseNet);二是采用了Swish激活函数,替换UNet++中原本的ReLu激活函数.
1.3.1 DenseNet
UNet++使用的基础模型架构为VGG16.VGG16虽然结构非常简洁,整个网络都使用同样大小的卷积核尺寸和最大池化尺寸.但是它使用了较多的参数,耗费许多的计算资源,导致内存占用更多、模型训练和预测时间更长.
图1
1.3.2 Swish激活函数
激活函数的选择与设计是神经网络训练过程中十分重要的一环.如果不使用激活函数,每层输出都是上层输入的线性函数,无论神经网络叠加多少层,都无法改变.如果使用了不恰当的激活函数,会加大计算量,使得收敛速度减慢,严重的时候甚至可能会导致梯度消失或者梯度爆炸.所以合适的激活函数十分重要的.
UNet++网络中最常使用的是ReLu激活函数,但ReLu激活函数有如下缺点:(1)当输入为负数时,ReLu是完全不被激活的,对所有输入输出都为0,如图 2所示,并且这个过程是不可逆的.在神经网络前向传播的过程中,这可能不会引起什么问题,因为激活函数不同区域敏感度不同是很正常的.但在反向传播中,如果输入为负数,就会导致权重对损失函数几乎没有影响,这样不利于权重的优化,网络模型参数无法更新,而且极其容易出现梯度消失和梯度爆炸等问题;(2)ReLu激活函数过于脆弱,如果输入函数的梯度过大导致网络参数更新后,神经元不再具有激活功能.
图2
基于以上原因,Google Brain提出了Swish激活函数[17],Swish函数如(1)式所示:
Swish激活函数具有无上界、有下界,光滑而且非单调的优点[17].
1.3.3 损失函数
损失函数是机器学习里面最基础也是最为关键的一个要素,它可以用来衡量模型预测的好坏,体现预测数据与实际数据之间的差距.训练过程会根据损失函数的大小调整模型的参数.通常情况下,损失函数越小,模型的效果越好.本文采用的损失函数为Dice Loss.
由于一张滑膜磁共振图像中可能出现多个滑膜区域,且每个区域大小不一,如果使用图像分割常使用的交叉熵损失函数,分割效果会不太理想.Dice Loss损失函数能很好解决样本类别不均衡的问题.因为Dice Loss是一个区域相关的损失函数,即当前像素的损失函数不仅和当前像素的预测值相关,也和其他区域相关.相较于交叉熵,Dice Loss损失函数更倾向于挖掘图像的前景区域[18],而在医学影像中,病灶一般就出现在前景区域,所以Dice Loss损失函数是一个较好的选择.
1.3.4 基于Dense-UNet++网络的分割模型
如图 3所示,Dense-UNet++网络架构延续了原本的UNet++网络架构,通过将1~4层UNet网络架构全部连在一起.UNet的网络架构由两部分组成.一是下采样网络,通过使用卷积和最大池化操作,减少特征图的空间维度并扩增特征图数量,但在原本UNet++下采样网络上,本文添加了DenseNet的密集模块,并且使用Swish激活函数替换了原本的ReLu激活函数.二是上采样网络或扩张网络,此网络与降采样网络操作类似,不过是对称的,在上采样网络中也采用了密集模块和Swish激活函数.
图3
图3
本文提出的基于Dense-UNet++网络的关节滑膜磁共振图像分割模型
Fig.3
Magnetic resonance images segmentation of synovium based on Dense-UNet++ proposed in this research
Dense-UNet++在保留了原UNet长连接的同时,添加了许多短连接.长连接在一定程度上联系了输入图像的很多信息,有助于还原下采样所带来的信息损失.Dense-UNet++可以得到不同深度UNet对原本图像的特征图,并且不需要训练多个下采样网络,只需要通过不同的上采样网络对不同层次的特征进行还原即可.相较于原UNet++网络架构,Dense-UNet++采用了Swish激活函数,在一定程度上解决了梯度消失、梯度爆炸,以及当层数过多时神经元不敏感等问题.并且添加了密集模块,使用DenseNet替换原本的VGG16,降低了梯度消失出现的概率,加强了特征的传递,并且在一定程度上减小了参数量,使得网络更易训练.
2 实验部分
2.1 数据预处理和数据扩增
本文共使用来自77例病例的1 104张手部滑膜磁共振图像,其中27例(共377张磁共振图像)来自上海市光华中西医结合医院,50例(共727张磁共振图像)来自上海交通大学医学院附属仁济医院,均签订知情同意书.采集图像所用的设备是西门子3.0 T磁共振仪器,均采用2D T1 W1-CE序列.采样参数如下:回波时间(TE)为23 ms,重复时间(TR)为639.8 ms,扫描层厚为2.5 mm,采集带宽是127.7 Hz,图像分辨率为800×800,图像为二维图像,存储格式为DICOM格式.滑膜标注由三名专业的放射科医生使用本课题组自行开发的标注软件完成.
选取5个病例的68张手部滑膜图像作为测试集,其余1 036张图像用于模型训练.为解决训练样本量少的问题,本文采用了随机角度旋转、随机水平翻转、裁剪、缩放,水平、竖直偏移等几何变换的方式对已标注好的手部滑膜磁共振图像进行了扩增[19],扩增后的训练样本包含磁共振图像14 512张,按照8:2的比例分为训练集和验证集.
2.2 模型训练
模型训练使用的硬件平台为RTX1080Ti双卡,软件平台为:Ubuntu18.04,Keras/TensorFlow;Python3.6.训练超参数设置:训练循环次数(epoch)为50,计算批次大小(batch size)为8,学习率(learning rate)为0.000 1.本文对基于UNet、ResUNet、VGG-UNet++和Dense-UNet++四种网络的分割模型的性能进行了评价.并且在数据集和网络结构相同的情况下,比较了激活函数对分割性能的影响.
2.3 评价指标
2.3.1 Dice系数(DSC)
DSC是目前图像分割领域普遍采用的评价指标.它是一种集合相似度度量指标,通常用于计算两个样本的相似度,如(2)式所示:
其中,TP是被判定为正样本,实际为正样本的数量;FP是被判定为正样本,实际为负样本的数量;FN是被判定为负样本,实际为正样本的数量.
DSC取值范围为[0, 1],当模型分割结果与医生手动分割结果重合度越高时,DSC越高;反之,则DSC越低.
2.3.2 交叉联合度量(IOU)
IOU也是常用的图像分割模型性能的衡量指标之一,可以用在目标检测任务中.在衡量目标检测是否正确时,通过利用实际目标框与模型预测框的交叉重合度进行判定.而在像素级图像分割任务中,则可以理解为输入图片的模型预测的像素区域和实际目标存在的像素区域之间的重合度,如(3)式所示:
其中A和B分别代表预测像素区域和真实像素区域.IOU具有尺度不变性,一张图像上的两个框A和B的相似程度与它们在这张图上的空间信息没有关系.
3 结果与讨论
3.1 激活函数对比
在UNet网络结构下,使用不同激活函数的结果如图 4和表 1所示.图 4(a)和4(b)中展示了验证和训练集的DSC曲线,图 4(c)和4(d)中展示了验证集和训练集的IOU曲线.由图 4(a)和4(b)的DSC曲线对比可以看出,在使用相同滑膜数据集分成的训练集和验证集,以及相同的网络模型时,相比于Swish,使用ReLu作为激活函数的训练集和验证集的DSC曲线振荡幅度更大.从训练集DSC曲线可以看出,使用Swish激活函数时,在第40个训练批次中已经趋于稳定;而使用ReLu激活函数时,训练完50个批次时的DSC系数仍然未完成收敛并且有下降趋势.而由图 4(c)和4(d)可以看出,使用Swish激活函数的UNet的IOU曲线更加平滑;验证集与训练集的IOU曲线相较于使用ReLu的UNet更加贴合.这验证了相比于ReLu,Swish激活函数有助于加速网络模型收敛.
图4
图4
应用于相同的滑膜磁共振图像数据集,采用不同激活函数的UNet模型的DSC和IOU曲线. (a) DSC曲线,使用ReLu激活函数;(b) DSC曲线,使用Swish激活函数;(c) IOU曲线,使用ReLu激活函数;(d) IOU曲线,使用Swish激活函数
Fig.4
The DSC and IOU curves of UNet model with different activation functions applied in the same synovial magnetic resonance data set. (a) DSC curves, UNet with ReLu; (b) DSC curves, UNet with Swish; (c) IOU curves, UNet with ReLu; (d) IOU curves, UNet with Swish
表1 应用于相同滑膜磁共振图像测试集,采用不同激活函数的UNet模型的结果对比
Table 1
网络结构 | 激活函数 | Batch size | 平均DSC | 平均IOU | 训练耗时 |
UNet | ReLu | 8 | 0.4432 | 0.5109 | 47 h |
UNet | Swish | 8 | 0.5369 | 0.6495 | 22 h |
由表 1可以看出在使用相同的每批次数据量大小(batch size),对网络进行50个批次训练之后,相较于Swish激活函数,使用ReLu激活函数的UNet模型的平均DSC降低了0.093 7,平均IOU降低了0.138 6,训练时间也约是Swish激活函数的2.1倍.这是因为在训练过程中,ReLu激活函数很容易使网络出现梯度消失或者爆炸的问题,导致网络结构参数计算量增大,训练速度也就随之减缓.
3.2 网络架构对比
图5
图5
应用于相同滑膜磁共振图像数据集时,不同网络结构的DSC曲线.(a) Dense-UNet++,使用ReLu激活函数;(b) ResUNet,使用ReLu激活函数;(c) VGG-UNet++,使用Relu激活函数;(d) Dense-UNet++,使用Swish激活函数
Fig.5
DSC curves of different networks applied in the same synovial magnetic resonance data set. (a) Dense-UNet++ with ReLu; (b) ResUNet with ReLu; (c) VGG-UNet++ with ReLu; (d) Dense-UNet++ with Swish
表2 相同测试集中不同网络架构结果对比
Table 2
网络结构 | 激活函数 | Batch size | 平均DSC | 平均IOU | DSC标准差 |
ResUNet[17] | ReLu | 8 | 0.5832 | 0.7990 | / |
VGG-UNet++ | ReLu | 8 | 0.7399 | 0.8136 | 0.049 |
Dense-UNet++ | ReLu | 8 | 0.7793 | 0.8447 | 0.038 |
Dense-UNet++ | Swish | 8 | 0.8199 | 0.9279 | 0.046 |
3.3 分割结果对比
图6
图6
使用不同模型进行手部滑膜磁共振图像分割的结果
Fig.6
Synovium segmentation results with different models
3.4 模型训练鲁棒性比较
通过归一化处理,我们计算了不同分割模型的训练集与验证集DSC曲线的振荡系数,振荡系数的计算是通过对训练集和验证集DSC值进行曲线拟合,将拟合得到的值与真实值之间的方差均值进行计算得到.由表 3可知,在网络结构同为UNet时,相较于ReLu激活函数,使用Swish激活函数的DSC曲线振荡系数更低,说明Swish的平滑特性可以辅助训练,样本集的不均一性对其干扰程度小于ReLu.同样使用UNet++网络结构时,DenseNet基本架构的DSC曲线振荡系数远远低于VGG,这是因为密集模块的连接特性,在连接过程中连接之前所有层的输出作为当前层的输入可以很好的避免样本不均一性带来的不稳定因素.最后,如果同时将Swish激活函数和DenseNet基本架构添加至网络结构当中,振荡系数会进一步降低,并且精确度也会得到提高,进一步说明本文提出的网络结构的优越性.
表3 不同分割模型的验证集与训练集DSC曲线的振荡系数
Table 3
网络结构 | 激活函数 | 是否使用密集模块 | DSC曲线振荡系数 |
UNet | ReLu | 否 | 2.534×10-4 |
UNet | Swish | 否 | 1.439×10-4 |
ResUNet | ReLu | 否 | 3.295×10-4 |
VGG-UNet++ | ReLu | 否 | 2.321×10-4 |
Dense-UNet++ | ReLu | 是 | 9.412×10-5 |
Dense-UNet++(本文方法) | Swish | 是 | 2.835×10-5 |
4 滑膜图像自动分割软件设计
目前尚没有一款成熟的应用深度学习模型进行滑膜图像分割的软件能够让医生体验到人工智能(AI)带来的方便与快捷、帮助医生提高工作效率,以及辅助用于滑膜训练甚至分级的数据的收集.为了解决这个问题,我们设计了一款基于Dense-UNet++的模型的滑膜图像自动分割软件,主要用于滑膜磁共振图像的自动分割与勾画.自动分割滑膜软件包含以下主要功能:(1)DICOM图像的读取与显示;(2)对DICOM图像进行滑膜自动分割;(3)根据层厚计算当前DICOM图像中的滑膜容积;(4)对选中的DICOM图像的滑膜容积进行累加.
首先通过加载“图像”按钮,对DICOM文件进行导入,如图 7所示.DICOM图像有两种读取模式:一种是读取单个DICOM文件,一种是读取DICOM文件夹.软件会根据用户的选择自动识别,如果用户时选取的是单个DICOM图像文件,则软件中DICOM图像显示页面的“上一张”和“下一张”按钮会被置灰,无法点击.用户若是直接导入文件夹,则该文件夹下所有DICOM文件均会被导入至软件中,此时可以通过点击“上一张”和“下一张”按钮对DICOM图像进行浏览.
图7
通过加载“模型”按钮,可以选择希望使用的模型.本软件的默认模型为本文提出的基于Dense-UNet++的模型,本软件还提供基于ResUNet、UNet和VGG-UNet++等网络的模型进行预测.读取完DICOM图像以及模型文件后,可以通过点击“分割”按钮对DICOM图像进行滑膜分割,分割后的结果会在分割结果展示框中进行显示,如果只单独加载了图片或者模型文件,则会跳出提示框,提示对应文件的缺失.点击加载“标注文件”按钮,可以对.txt格式的模型标注文件进行读取.读取.txt文件后,软件会将标注文件中的信息反馈在图像界面.通过点击“GPU”方框来选择是否使用GPU进行模型的预测,使用GPU可以使图像处理速度加快,但也有可能会导致程序的卡顿,这是因为程序在调用GPU时需要占用一定大小的显存,如果使用本软件的计算机不存在显卡或者显存较小,可能会导致程序的崩溃.图 8为选取单个病人的所有DICOM图像,并对读取的DICOM图像进行滑膜分割的结果展示,分割模型为本文提出的基于Dense-UNet++网络的模型.在分割结果显示界面,可以与原始图像进行对照观测.
图8
通过点击“容积测量”按扭可以对当前显示层的滑膜容积进行计算,并将计算结果显示在旁边的文本编辑框中.滑膜容积可以通过当前分割出的滑膜面积及层厚进行计算,层厚可以通过读取当前DICOM图像数据获得,也可以人工设置.滑膜容积大小有助于医生判断滑膜是否增生,并且医生可以通过对比病人不同时期的滑膜容积大小判断治疗是否有效,从而采取对应的措施,所以容积计算是一个必不可少的功能.
5 结论
本文提出了一种基于Dense-UNet++网络的模型用于滑膜磁共振图像分割.该网络融合了UNet++与DenseNet的核心思想,使用了Swish激活函数、密集模块、短接操作等神经网络的最新研究结果,解决了传统网络训练耗时过长、梯度消失等问题.实验结果表明,相比以往基于深度学习的滑膜磁共振图像分割的网络模型,该模型的分割准确性及鲁棒性得到了大幅度提升,并且训练时间大大减少.同时,本文还开发了一款基于该模型的滑膜磁共振图像自动分割软件,可以辅助医生对类风湿性关节炎进行诊断,同时医生可以通过这款软件加深对深度学习算法的了解,为科学研究提供更多的数据.但本文模型仍有待改进,例如无法对滑膜区域进行多种类分割,不能对病灶轻重程度进行分类等等.针对这一问题,我们将在未来的工作中收集更多的精细标注的关节滑膜数据,将多分类网络融入模型之中,以实现滑膜图像病灶的自动分割和定级.
无
参考文献
Artificial intelligence and its application in medical field
[J].
人工智能及在医疗领域的应用
[J]. ,
Clinical value and research progress of MR in wrist facet joint lesions
[J].
MR在手腕部小关节病变的临床价值及研究进展
[J]. ,
Clinical observation of traditional Chinese medicine combined with antirheumatic drug treatment of rheumatoid arthritis in active stage
[J].
中药联合抗风湿药治疗类风湿性关节炎活动期的临床观察
[J]. ,
Magnetic resonance image segmentation of articular synovium based on improved U-Net
[J].
基于改进U-Net的关节滑膜磁共振图像的分割
[J]. ,
Segmentation and classification of knee joint ultrasonic image via deep learning
[J]. ,
Current methods in medical image segmentation
[J]. ,DOI:10.1146/annurev.bioeng.2.1.315 [本文引用: 1]
A U-net network-based rapid construction of knee models for specific absorption rate estimation
[J].
用于SAR估计的基于U-Net网络的快速膝关节模型重建
[J]. ,
Classification of Alzheimer's disease patients based on magnetic resonance images and an improved UNet++ model
[J].
基于磁共振图像和改进的UNet++模型区分阿尔茨海默症患者和健康人群
[J]. ,
Multiple feature reweight densenet for image classification
[J]. ,
Effective combination of densenet and bilSTM for keyword spotting
[J]. ,DOI:10.1109/ACCESS.2019.2891838 [本文引用: 1]
DenseNet-based depth-width double reinforced deep learning neural network for high-resolution remote sensing image per-pixel classification
[J]. ,
The art of data augmentation - Discussion
[J]. ,DOI:10.1198/10618600152418719 [本文引用: 1]
/
〈 | 〉 |