周海柱,张 东,胡 平,祝新根
1武汉大学物理科学与技术学院,湖北 武汉 430072;2南昌大学第二附属医院神经外科,江西 南昌330006
颅内出血(ICH)根据出血位置的不同可以分为脑实质出血(IPH)、脑室内出血(IVH)、硬膜外血肿(EDH)、硬膜下血肿(SDH)和蛛网膜下腔出血(SAH)5种类型。颅内动脉瘤破裂主要造成SAH,当出血量较大时可能发生IPH和IVH。在临床诊治中,从头部CT影像中获取血肿的类型和大小是制定治疗方案的重要步骤。当前血肿大小主要是人工通过多田公式进行粗略估算,由于人类判断的主观性差异,该方法常常会产生较大的估算误差。为了获取血肿的大小,首先需对血肿区域进行分割。既往研究已使用传统的影像学处理方法(如阈值分割[1,2]、模糊聚类[3,4]、区域生长[5]、超像素[6]、活动轮廓[7]等)完成血肿的自动或半自动分割,这些方法大量应用到IPH的分割中并取得较好的结果。随着机器学习的不断发展,部分研究者使用UNet神经网络完成了不区分类型的脑血肿分割[8-12]。当前研究主要集中在不区分类型的血肿分割,只有少量的工作尝试对多类型血肿分割;但目前仍缺乏对于颅内动脉瘤破裂引起的颅内出血多类型血肿分割的研究。本文在UNet的基础上设计一种新的网络模型。通过混合2D和3D卷积神经网络来完成颅内动脉瘤破裂引起的颅内出血多类型血肿分割,结合数据处理阶段的脑组织提取算法可以实现端到端的全自动处理流程。该方法可以有效提升颅内动脉瘤破裂引起的颅内出血的诊治效率,拥有较好的临床应用价值。现报道如下。
本研究已通过南昌大学第二附属医院伦理委员会批准。研究中共收集动脉瘤性颅内出血的CT影像数据644例。每例数据包含的切片数为24、28或32,空间分辨率统一重采样为0.5 mm×0.5 mm×5 mm。本数据集包含3种出血类型,其中SAH为主体,同时包含IPH和IVH。数据由6位神经外科研究生使用3D Slicer进行手动标注,再由2位资深的放射医师进行审核校对,最终对标注结果达成一致。
原始数据首先使用自制的脑组织提取算法和矫正算法进行预处理,再提取脑组织的最小感兴趣区,最后将切片分辨率统一调整为352×288;为使每例数据具有相同的切片数,经调整后移除脑组织占比低于20%的切片,最后保留剩余切片的前18张,即用于深度学习模型训练和测试的数据的分辨率为352×288×18。
本研究使用的数据为未经处理的临床数据。未经处理的脑部CT影像中除了大脑组织外还存在颅骨、皮肤组织以及仪器固定架等构成要素。为减少此类非脑部组织对血肿分割结果造成的不良影响,本研究在图像预处理阶段首先进行CT图像中的脑组织区域的提取,然后经重采样和裁剪等处理后获取最终用于深度学习模型训练和测试的数据集。
基于颅骨和脑组织在CT值中存在明显的差异,本研究使用区域生长算法对脑组织进行提取(图1)。在区域生长过程中为防止过度生长,先检测出脑干的位置作为区域生长的一个边界,算法具体步骤如下:(1)提取颅骨边界:将CT值高于120 Hu的区域确定为颅骨,并对该区域执行形态学膨胀操作,封闭可能存在的间隙。(2)确定脑干区域:由于脑干区域以下位置的颅骨边界是一个非封闭的区域,因此首先在前1/3切片的脑组织区域(CT值-20~120 Hu)进行霍夫圆形检测,计算组织区域与检测到的圆形的IOU系数,并将IOU系数高于0.8的切片确定为存在脑干(图2)。(3)确定生长种子点:从后2/3切片中选取前景区域(CT值大于-20 Hu)面积最大的切片的中心为生长种子点。(4)区域生长:从种子点向四周开始生长,生长边界为(2)中得到的最后一张存在脑干的切片和(1)中提取的颅骨边界,最终得到脑组织区域的初始掩膜。(5)掩膜边界外扩:由于(1)中膨胀操作侵蚀了部分脑组织边缘,因此使用膨胀操作对(4)中得到的脑组织掩膜进行边界外扩。如果掩膜内部存在孔洞则一并填充。(6)脑组织提取:提取掩膜对应的区域作为脑组织区域。完成脑组织的提取之后(图3),将其中脑组织面积最大的切片用于椭圆拟合,并使用椭圆的长轴的旋转角对脑组织进行矫正(图4)。
图1 脑组织提取算法流程Fig.1 The flow of brain extraction.
图2 脑干识别示意图Fig.2 Diagram for brainstem recognition.Image B could be done from image A,which performed tissue extraction,erosion and removal of too-large or too-small areas.The IOU of brainstem position identification was 0.91.
图3 脑组织提取结果Fig.3 Brain extraction results.The area under the red masked is the brain tissue.There were 28 slices in this case,and the currently selected slice was 2,6,11,18,23,26.The 6th slice was the last brainstem position after identification.
图4 基于椭圆拟合的旋转矫正Fig.4 Rotation correction.A:Result of ellipse fitting;B:Result of rotation.
1.3.1 网络模型设计 本文提出基于深度学习的动脉瘤性颅内出血多类型血肿分割网络的框架图和详细设计图(图5~6)。该网络模型以医学图像领域经典的UNet[13]作为主干网络。经典的UNet网络中包含编码器和解码器两部分,同层的编码器和解码器通过跳层连接进行联合。由于颅内出血病灶在CT影像中均表现为高密度影,在不考虑出血类型的情况下,其特征是相似的;考虑出血病灶的位置时,可以进一步区分为不同的类型。为了获得准确的多类型分割结果,应同时考虑其密度特征和其空间位置信息。在本文设计的混合2D/3D特征融合分割网络中,使用2D-UNet进行密度特征和片内空间信息的提取,通过不区分类型的血肿标签进行监督;使用3D-UNet进行切片间上下文信息的提取,最后将2DUNet和3D-UNet的特征输出经过3D的卷积模块进行特征融合,最后输出多类型的分割结果。在网络训练和预测中,每次选择一例三维CT影像数据作为输入,对于2D-UNet,输入前将不同的切片拆分到Batch上,对于3D-UNet则将其作为一个整体输入,此时的BatchSize为1。为了将2D-UNet的输出特征与3D-UNet的输出特征进行拼接并送入3D卷积模块进行融合,需要保证二者空间大小一致,故2D-UNet输出特征的Batch调整到特征的轴向空间。
图5 混合2D/3D特征融合分割网络框架图Fig.5 The framework of 2D/3D segmentation network with feature fusion.
图6 混合2D/3D特征融合分割网络设计图Fig.6 The design of 2D/3D segmentation network with feature fusion.
卷积模块是CNN的基本组成,本文使用的卷积模块(图7A)包括卷积、归一化和激活函数,在2D UNet中,归一化函数选择为BatchNorm;在3D UNet中,由于BatchSize为1,所以归一化函数选择为InstanceNorm。
图7 基本模块Fig.7 Basic module.
血肿在影像中表现为高密度影,因此在下采样中加入空间注意力模块,以增强血肿的特征响应(图7B)。注意力模块通过对输入特征进行不同的权重映射来提升感兴趣区域对最终结果的影响。空间注意力模块[14]通过在通道上进行全局最大池化和全局平局池化得到一个与输入特征空间大小一致的特征图,然后将特征图进行拼接,再经过一个卷积层进行通道降维,最终经过Sigmoid层激活(图8)。上采样模块使用反卷积模块对前一层网络的输出特征进行特征层的缩放,然后和跳层连接的特征进行拼接,最后经过卷积模块进行特征融合(图7C)。
图8 空间注意力模块Fig.8 Spatial attention module.
为了减少模型参数量,2D-UNet和3D-UNet的下采样模块只使用3个,同时由于一个数据样本的切片只有18张,为避免维度过度采样,在3D-UNet中,只在最后一个下采样模块对轴向空间进行下采样。
1.3.2 损失函数 损失函数作为模型预测结果与目标值误差的一种度量,可以指导网络在训练中的优化方向。一个合适的损失函数可以有效提高网络预测的准确性。本文使用的损失函数由两部分构成:加权交叉熵损失和TverskyLoss[15]。交叉熵损失用于描述预测概率的分布模型,加权交叉熵对不同的类型赋予相应的权重,提升交叉熵损失在不平衡数据集中的表现,在多类型的监督中,本文对于非出血区域、SAH、IPH、IVH选用的权重分别为1、5、10、10,在2D-UNet不区分血肿类型的监督中,非出血区域和出血区域选用的分别权重为1、25。TverskyLoss用于描述预测结果与真实目标的集合相似度,其中α和1-α分别控制着假阴性和假阳性的比例;当α为0.5时,TverskyLoss为DiceLoss,由于CT影像中SAH区域密度影较低,易形成假阴性,因此本文中α参数选取为0.75。公式如下:
其中为标签中第i的像素点为c类的概率,为预测结果中响应像素点为c类的概率。
1.3.3 实验设置 本文将所有数据按8:2分为训练集和测试集,即训练集515例,测试集129例。为保证训练集中脑组织预处理结果的准确性,人工对脑组织的提取和矫正结果进行复核,测试集不做调整。由于数据量较少,需进行数据增强扩充数据集以满足训练的需求。考虑到大脑的对称性以及血肿类型与出血的位置相关,因此本文只使用左右翻转的方式对训练集进行增强。
在CT影像数据中,不同的窗位和窗宽强调的特征各有侧重,如正常脑组织的CT值范围是28~40 Hu,血肿的CT值范围是40~80 Hu[16]。为了充分利用不同窗位窗宽内包含的先验知识,选择多窗宽窗位构建模型的输入数据。本文使用5个不同的窗位窗宽,其CT值范围如下:0~100、10~90、20~80、30~80、40~80 Hu,最后对脑部区域进行归一化处理。
本研究的运行平台为:CPU:Intel Xeon E5-1660(3.7GHz);GPU:NVIDIA GeForce RTX 3060(12GB),DDR3:64GB;Python 3.82,Cuda 10.2。实验中使用Adam优化器对网络进行优化;初始学习率设为0.0005,并使用ReduceLROnPlateau策略进行动态调整。
为了客观评价模型的性能,研究中采用图像分割领域广泛使用的Dice系数作为评价指标,其计算公式如下:
其中真阳性(TP)指预测为正样本,实际也为正样本;假阳性(FP)指预测为正样本,实际为负样本;假阴性(FN)指预测为负样本,实际为正样本。
本文在644例未处理的临床数据上进行实验,验证脑组织提取算法的有效性,结果使用Dice系数进行衡量,真实的脑组织分割标签来自本文算法自动提取并人工修正后的结果。为了体现本文算法的有效性,与ITK中的Skull-Stripping Filter以及FSL-Bet进行对比。本文实验中Skull-Stripping Filter和FSL-Bet的输入数据首先进行阈值处理[17],仅保留CT值大于0 Hu且小于100 Hu的区域,其他区域则置0。对于提取结果进行一定的后处理,包括对脑组织掩膜中的孔洞进行填充以及移除位于颅骨上的掩膜区域。Skull-Stripping Filter、FSL-Bet和本文算法的Dice系数分别为0.952、0.982、0.985;盒子图结果表明本文算法提取结果中的异常个体较少,算法更稳定(图9)。
图9 脑组织提取结果盒子图表示Fig.9 Box plots for the result of brain extraction(Dice).
为了定量评估模型的性能,本文与原始的UNet网络(4次下采样)进行了对比。测试实验结果显示(表1):相对于3D-UNet,2D-UNet对于不区分类型的血肿分割的Dice系数更高,但是由于缺乏三维的空间信息,在IPH和IVH上的分割表现欠佳。本文网络通过结合2DUNet和3D-UNet,在保证ICH和SAH的分割精度的基础上,提升了IPH和IVH的分割精度。
表1 血肿分割的表现Tab.1 The results of hematoma segmentation(%,Dice)
实验结果的定性分析结果显示,本文算法、2D-UNet、3D-UNet均将SAH成功分割,其结果与真实标签匹配度均较高(图10A)。2D-UNet将部分增厚的脑膜视为血肿,3D-UNet中将钙化区视为血肿(图10B)。四叠体池的轻微水肿所有网络模型均识别错误,内侧裂的轻微水肿区2D-UNet和3D-UNet将其识别为血肿,而在本文网络中正确识别(图10C)。由于IPH和IVH血肿区域相距较进,2D-UNet和3D-UNet均出现较大的误差,本文网络则能准确区分不同的血肿类型(图10D)。
图10 分割结果图Fig.10 Segmentation result.Red,yellow and blue represent the hematoma of SAH,IPH and IVH.The images from left to right are brain tissue,ground truths,prediction of 2D-UNet,prediction of 3D-UNet and prediction of the model in this article.
颅内动脉瘤破裂引起的颅内出血是一种严重危及生命的脑血管疾病,其渗出的血液会引起SAH,甚至引起IPH和IVH。头部CT成像作为当前诊断颅内出血的主要工具在治疗中发挥着重要的作用。然而由于头部CT成像需求的增加[18],过去15年放射科医生的工作量增加了1倍[19]。医生在面对大量繁杂的CT影像时,可能会出现漏诊和误诊[20]。
当前已有研究者利用深度学习模型来完成颅内出血的诊断,其中主要包括不区分类型的脑血肿分割[21-27]和出血的分类诊断[25-26];但针对颅内动脉瘤破裂引起的多类型出血,不区分类型地对血肿进行分割或判断是否存在某一类型的出血而不分割血肿区域并不能满足实际的需求,更多需要按类型对出血区域进行分割,然后统计不同类型的出血体积。有学者使用4条并行三维全卷积网络对不同分辨率的影像数据进行特征提取,最后通过全连接层进行像素级别的分类,该方法在分块的切片上完成了EDH、SDH和IPH3种类型的血肿分割[27]。Nijiati 等[28]则是在二维的UNet 中增加Transformer来增强全局信息的提取,弥补上下文信息的缺失,最终达到提升多类型分割精度的目的。将血肿分割为多种类型的主要难点在于需要同时考虑切片内的空间信息和切片间的上下文信息。有研究将Mask-RCNN的编码器部分置换成三维的卷积,但保持解码器中的二维卷积,利用三维卷积对输入的5张相邻切片完成特征信息的提取,最终实现血肿的多类型分割,但在该方法中只是利用相邻5张切片的空间信息,造成头部CT影像数据中整体特征的丢失[29]。在颅内血肿分割的研究中,部分研究者直接使用原始的CT影像数据进行血肿的分割[21-22,25-29],也有部分研究者先进行脑组织提取,然后再进行血肿的分割[3,23-24]。提取脑组织后再进行血肿分割一方面可以提升感兴趣区的占比,另一方面可以减少网络的计算量。目前主要的脑组织提取工具有ITK 中的Skull-stripping filter[31]以及FSL-bet,二者均是为MRI图像中脑组织提取开发的工具,经过适当的修改[17]可用于CT影像的脑组织提取,但由于CT影像与MRI影像的本质差异,致使提取结果易出现较多的过分割和欠分割区域。
本研究显示,2D UNet在血肿整体的分割上优于3D UNet,这是由于在2D UNet中网络参数更少,训练样本更多,泛化能力更强,但由于缺失切片间上下文信息在血肿分类上却不及3D UNet。与其他仅使用二维或三维的网络不同,本文算法使用混合的2D和3D网络模型来完成多类型的血肿分割,以完整的三维CT影像数据作为输入,避免分块或取部分切片造成的信息缺失;2D网络着重于切片内部空间信息的提取,3D网络着重于切片间上下文信息的提取;在编码器中加入了空间注意力机制,用于强化血肿的特征响应;为了向网络中加入更多的先验知识,使用不同的窗位窗宽构建多通道数据作为网络模型的输入;使用TverskyLoss作为损失函数,减少SAH的假阴性误判。为了减少非脑部组织对网络分割性能的影响,在数据预处理阶段使用了一种简单高效的脑组织提取算法,通过叠加脑干识别,增加生长边界限制,获取CT影像数据的脑组织区域;最终实现了从未处理的临床CT数据预处理到获取最终多类型血肿分割结果的全自动处理流程。本文以动脉瘤性颅内出血作为切入点,完成了多类型血肿的分割,但没有对常见的出血部位(如前矢状裂、后矢状裂、外侧裂、内侧裂、鞍上池、环池、四叠体池等)进行精确定位,也未能从分割结果中给出治疗建议,这些有待今后研究加以完善。
综上所述,本研究所提出的算法可以实现临床治疗中较为精确的颅内动脉瘤破裂所引起的颅内出血血肿区域分割,在提高了医生工作效率,减少了人工成本的同时,为临床治过程中制定后续的治疗计划提供了新的参考信息。