1. 引言
包虫病是一种严重危害人类健康的人畜共患性疾病。引起人体包虫病的绦虫主要有细粒棘球绦虫幼虫感染所致的囊型包虫病(cystic echinococcosis, CE)和多房棘球绦虫幼虫感染所致的泡型包虫病(alveolar echinococcosis, AE)两种类型[1],两类包虫病均主要侵犯肝脏[2]。四川省西部是包虫病流行最严重的地区之一,截至2021年底,全国棘球蚴病患者有40.56%分布在四川,居全国之首[3],四川省92.36%的患者来自甘孜州(2023年监测数据)。经有效干预,2017年抽样调查发现,包虫病流行最为严重的石渠县肝囊型包虫病患病率仍高达3.45%,这部分患者患病时间长,病情复杂,相当一部分病人错失最佳诊断和治疗时机,严重影响患者的生活质量[4]。因此,如何有效诊断肝包虫病是一个迫切需要解决的重大民生问题。
最近,不同的卷积神经网络被应用于分割医学图像。U-Net [5]是众多分割网络中最具代表性的网络模型之一。U-Net使用由多个卷积和池化运算符组成的编码器从输入中提取抽象特征,然后由多个转置卷积或上采样运算符组成的解码器尝试从特征中识别目标。此外,编码器和解码器之间设计了快捷连接以促进信息流动。在U-Net的基础上,V-Net [6]将运算符的维度从二维扩展到三维,并添加了残差连接,有效缓解了网络深度增加导致的梯度消失问题。为了减少不同抽象特征级别之间的语义差异,Fan等人[7]提出了一种名为Inf-Net的网络,用于分割新冠状病毒性肺炎的CT图像。该网络使用一组隐式反向注意力模块和显式边缘注意力模块来建立区域和边界之间的关系。此外,Gu等人[8]基于注意机制和条件随机场设计了一个名为CA-Net的网络,用于调节信息流以进行脑胶质瘤的分割。
尽管上述提到的方法在医学图像中分割病变方面表现出令人印象深刻的性能,但其中很少有考虑到由于卷积运算符固有的局部性而导致的全局和局部信息之间的差异[9]。目前,Transformer中的自注意力机制[10]用于建模全局信息,已广泛应用于自然语言处理任务。Transformer在图像分类、目标检测和分割等任务中超越了基于卷积的模型的性能[11]。然而,Transformer的成功应用依赖于大规模数据集,这对医学图像分割任务提出了挑战。因此,我们提出了一种新型的双侧学习机制,以平衡全局和局部信息。设计了一个基于扩张卷积的上下文分支(CB)来保留尺度不变的全局信息,同时提出了一个利用深度聚合金字塔模块(DAP)学习局部信息的细节分支(DB)。最后,通过多个实验验证了所提方法的有效性。
2. 基于双侧学习分支的网络架构
本文提出的网络是一个像素级别的分割网络,主要由两个组成部分组成:① 上下文分支(Context Branch, CB):由轻量级的RepVGG和特征融合模块(MLPF)组成。最后三个特征映射(即1/8,1/16,1/32分辨率)被融合表示全局信息。② 细节分支(Detailed Branch, DB):DB建立在DAP模块上,用于在相同分辨率下提取特征图,专门设计用于捕获局部信息。从CB和DB分支提取的特征图然后与输入图像具有相同的分辨率融合。最后,使用一个1 × 1卷积层,后跟sigmoid函数来生成肝包虫病变区域的概率图。此外,在训练过程中使用标签来优化CB和网络的输出。整体网络结构如图1所示,其中橙色矩形框对应多通道特征图,框的高和宽表示特征图的空间大小和通道数。MLPF代表基于MLP融合两个特征图,DAP代表深度金字塔聚合模块,Label代表在训练期间进行的深度监督。
Figure 1. Overall network architecture diagram
图1. 整体网络架构图
2.1. 改进的RepVGG
为了在肝包虫病变区域识别中实现速度和准确性的良好平衡,本文采用扩张卷积来改进RepVGG [12]的模块以提取多尺度的特征图,并将其作为CB的骨干网络。改进后的RepVGG模块与常规卷积进行了比较,如图2所示。
图2(A)表示ResNet [13]的原始残差块,它由两个3 × 3卷积层的残差分支和一个快捷分支构成。然后将这两个分支求和作为块的输出。残差结构用于缓解深度网络中的梯度消失问题,并使网络加快收敛速度。图2(B)表示训练时使用的RepVGG的卷积块,它由一个3 × 3卷积层的残差分支、一个1 × 1卷积层的快捷分支和一个快捷连接分支组成,最终输出由三个分支的输出线性相加。这种结构由多条分支传播梯度信息,可以更好地模拟梯度消失。同时,它还可以在网络不同阶段监督训练过程,有助于提升网络鲁棒性。图2(C)表示在推理中使用的RepVGG的卷积块,它由两个3 × 3卷积层重新构建而成,用于替代训练过程中的三个分支。这种方法丢弃了叠加过程和多分支并行计算的开销,并可以更好地提高内存利用率,从而提高模型的推理速度。其中图中红色矩形框代表批归一化层,⨁代表通道维度特征的线性相加。
(A) (B) (C)
Figure 2. Comparison of convolution blocks
图2. 卷积块比较
由于在分割具有大尺寸变化和不规则形状的肝包虫病灶任务中,获得较大的感受野和高维上下文语义信息非常重要。为了进一步增强特征并提取主干网络的全局感受野,本文使用步长为2的5 × 5扩张卷积层来替代步长为1的标准3 × 3卷积层,最终可使输出与输入的大小保持一致。扩张卷积基于普通卷积,感受野的扩大。其中普通卷积计算原理如公式(1)所示:
(1)
其中,
、
和
分别表示卷积核的维度,
、
和
表示内核
的索引。
表示通过卷积操作
计算得到的
层中位置(
)的输入,以及来自上一层
的输出。扩张卷积基于普通卷积引入了扩张率
来控制卷积核中的间隔。扩张卷积可以被看作在卷积核的元素之间插入
个零。扩张卷积的计算原理如公式(2)所示:
(2)
通过比较公式(1)和公式(2),可以看出当
时,扩张卷积退化为标准卷积。
2.2. 基于MLP的上下文分支
本文改进的RepVGG提取的最后三个特征图由MLP和卷积(MLPF)构成的特征融合模块进行融合。具体位置如图1所示,其中两个MLPF用于融合三个特征图(即1/8,1/16,1/32),上下文分支的输出是输入图像的1/8分辨率。
MLPF的计算原理如图3所示。在融合过程中,较小的特征图通过双线性插值进行两次上采样(UPS)以匹配较大特征图的大小。然后,使用两个3 × 3卷积层顺序地将两个特征图的通道数减少到较小的特征图。两个相同大小的特征图在通道维度上连接起来。最后,分别在令牌维度和通道维度上使用两个MLP来融合相同大小的特征图。MLP层基于Transformer,它在建模特征之间的长距离关系方面具有优势。Transformer的计算原理如公式(3)所示:
(3)
假设输入特征为
,
、
和
表示特征
的转换。其中,
表示特征
的维度,除以
的目的是增强数值稳定性。以特征
为例,其计算原理可以总结为
,其中
表示可学习参数,通过矩阵乘法将特征
的转换为特征
。对于特征
和
,也是类似的原理。
激活函数旨在引入非线性,并完成归一化。
Figure 3. Feature fusion module
图3. 特征融合模块
2.3. 基于DAP的细节分支
局部细节信息对于实现精确分割至关重要。CB提取的特征具有低分辨率,并且缺乏详细信息。因此,我们提出了基于深度聚合金字塔(DAP)模块的DB分支[14],以提取具有高分辨率的特征,弥补了CB分支的局限性。DB分支的架构如图4所示。DB分支的结构包括五个路径。首先,使用三个平均池化操作符将特征图减小到不同的尺寸。其次,使用卷积层来提取多尺度的局部细节。第三,将这些特征图上采样到相对于输入相同的分辨率。最后,这五个路径通过1 × 1卷积进一步处理,并沿着通道维度串联起来。其中,每个卷积单元由卷积层、批量归一化和ReLU激活函数组成。
Figure 4. Deep pyramid aggregation module
图4. 深金字塔聚合模块
2.4. 语义分支和深度监督损失
为了提高该网络不同特征提取分支和不同卷积阶段的特征表达能力,本文设计了一个深度监督模块来指导训练过程中使用的不同特征提取阶段。深度监督模块的架构如图5所示。
Figure 5. Deep supervision module
图5. 深度监督模块
在深度监督模块中,监督的特征图被上采样到1分辨率并通过1 × 1卷积层处理,在训练中通过sigmoid函数根据真值计算损失。根据整体网络架构,本文使用两个深度监督模块来监督从CB中获取的全局上下文特征图和最终的概率图。在推理过程中,将第一个深度监督模块舍弃,最终结果被直接视为预测结果,不需要任何额外的模型参数和计算。
在每个深度监督模块中,特征图经过一个1 × 1卷积层,然后是sigmoid函数处理。然后,相对于地面真实值计算损失。在训练阶段,使用两个深度监督模块来监督来自CB的预测和最终的概率图。在推理阶段,省略第一个辅助监督模块,并将最终结果视为预测结果。语义分割任务通常使用交叉熵损失[15]地面真实值之间的不相似性。然而,在病变分割任务中出现了类别不平衡问题,其中背景构成CT图像的大部分,从而减慢了网络的学习过程。此外,背景中存在大量具有挑战性的体素,如纹理和结节,这增加了分割任务的复杂性。(肝包虫病在CT图像中呈现多种影像学特征,这些特征与别的多种肝脏病变相似,包括单纯性肝囊肿、细菌性肝脓肿、肝囊腺瘤以及肝细胞癌,这增加了分割任务的复杂性。)因此,在训练阶段使用Dice损失,因为与交叉熵相比,它可以更好地解决类不平衡问题。Dice系数(DSC)是评估两个集合相似性的指标[16]。两个集合之间的DSC如公式(3)所示:
(3)
其中,
和
分别表示模型的分割结果和真实值的体积。DSC被限制在[0, 1]范围内,其中数值为1表示预测与真实值完全匹配,反之亦然。Dice损失可以描述如公式(4)所示:
(4)
根据提出的深度监督模块,损失函数由两部分组成,即用于分割性能的主要损失和旨在稳定训练的辅助损失。这两个损失被定义为DSC损失,公式如(5)所示:
(3)
其中
代表辅助损失,
代表最终结果和真值之间的主要损失,
表示辅助监督损失的权重,本文设置为0.4。
3. 实验与分析
本节首先介绍数据集和采用的数据增强方法。接下来详细讨论实验环境以及评估指标。最后展示和讨论与其他模型的比较结果和消融实验。
3.1. 数据集和评估指标
3.1.1. 数据集和评估指标
本文利用甘孜藏族自治州人民医院提供的自标注的肝包虫病CT影像数据集对该方法进行了验证。数据集由专业医生详细标注。转换后的数据集包含4320张灰度图像,每张图像的分辨率为512 × 512。其中,随机选取1440张作为验证数据集,另外2880张作为训练数据集。
3.1.2. 数据增强
模型的泛化能力可以通过使用数据增强来提高[17]。根据研究和分析,肝包虫病变图像中的噪声分布存在显着差异。针对这种情况,本文在训练上采用了水平翻转、几何变形等方法来扩大训练数据集。其中几何变形是根据肝包虫病变区域的不规则性,应用三角函数改变每个像素点的位置。该方法公式如(4)所示:
(4)
其中,
、和
分别为各像素点在变形前后的坐标位置。
3.1.3. 评价指标
本文使用四种常用的语义分割指标来评估该网络,指标如公式(5)~(8)所示:
(5)
(6)
(7)
(8)
其中,TP表示被正确分类的病变像素的数量,FN表示被错误分类为背景的病变像素的数量,FP表示被错误分类为病变的背景像素的数量。召回率(Rc)用于评价病灶像素被正确分类的性能,精度(Pa)用于评价分类为病灶的像素为真实病灶的性能。而IoU (intersection over union)和F1 (F1-score)作为重要的综合指标,可以看作是Rc和Pa的调和平均。四个指标的值分布在0和1之间,当它们的值接近于1时,模型对病变区域的分割效果更好。此外,为了评估网络的性能,使用参数数量(Par)和每秒浮点运算次数(Gfl)评估模型在推理过程中的计算资源成本。帧率(Fra)也用于表示模型完成一次推理的时间。
3.1.4. 实验细节
本文所有网络使用Pytorch深度学习框架实现和训练。所有基于CNN的模型都在12G NVDIA GTX TITAN XP和i7-7770 CPU@4.20GHz的计算机上进行训练和验证。我们使用Adam,学习率为0.0001,将批量大小minibatch设为4,优化所有分割网络。在100个epoch的训练过程中,选择验证数据集上平均损失值最小的模型作为最终模型。在推理阶段,输出值大于0.5的像素被识别为肝包虫病变,其他像素被识别为背景。
3.1.5. 模型比较
本文在私有数据集上使用我们的网络和其它五个经典分割网络进行了比较:SegNet [18]、Deeplab v3 [19]、U-Net [5]、U-Net++ [20]和TransUNet [21]。其中SegNet中的解码器使用在编码器的最大池化步骤中计算的池化索引来执行非线性上采样,从而消除了学习上采样的需要并改善了内存与准确性的权衡;Deeplab v3使用空卷积空间金字塔池化模块检测多尺度上的卷积特征图,捕获多尺度上下文信息;U-Net的架构由一个捕获上下文的收缩路径和一个能够实现精确定位的对称扩展路径组成,具有高精度图像分割的能力;U-Net++改善了不同层级特征图之间的语义差距,在多场景下具有更好的分割精度。TransUNet在U-Net的基础上使用transformer结构改进了特征融合模块。网络输入大小为512 × 512图像进行实验,详细结果如表1所示。
Table 1. Comparison of different networks
表1. 不同网络的对比
Network |
Par (M) |
Gfl (GMac) |
Fra (ms) |
IoU (%) |
F1 (%) |
SegNet |
29.4 |
16.1 |
23.5 |
57.5 |
71.6 |
Deeplab v3 |
15.3 |
15.6 |
26.2 |
68.3 |
83.2 |
UNet |
17.3 |
16.3 |
24.9 |
78.1 |
87.9 |
UNet++ |
26.9 |
15.3 |
22.9 |
80.8 |
88.5 |
TransUnet |
66.8 |
130.4 |
31.9 |
80.9 |
89.7 |
ours |
7.3 |
12.7 |
17.9 |
81.9 |
90.3 |
从表中可以看出,本文提出的网络实现了每张图像17.9毫秒的最佳精度和实时速度。参数量和计算量达到了所有方法的最小值。并且,与其他分割网络相比,所提出的网络的IoU和F1中取得了最佳性能,证明了我们提出的网络在肝包虫病变区域特征提取方面的有效性和准确性。图6展示了图像在不同网络的分割结果。具体来说,基于U-Net的网络识别出微小的裂缝,并且比其他网络更准确地依赖于具有丰富细节信息的高分辨率特征图。而本文提出的网络对肝包虫病变区域的预测结果比U-Net具有更好的连续性和完整性,这主要是因为CB具有更大的感受野信息以及DB有丰富的细节信息,使得图像分割更完善,边界更清晰和流畅。
Figure 6. Image segmentation results of different networks
图6. 不同网络的图像分割结果
3.1.6. 消融研究
本小节验证两个模块的有效性,在私有数据集上进行五个消融实验。实消融验分别为将网络结构改为RepVGG-32、RepVGG-8、CB以及没有深度监督模块的网络。实验结果如表2所示,分别展示每个模块及其组合在IoU和F1指标的贡献。
Table 2. Comparison of segmentation networks with different improvement modules
表2. 不同改进模块的分割网络比较
Network |
IoU (%) |
F1 (%) |
RepVGG-32 |
66.8 |
80.1 |
RepVGG-8 |
78.8 |
88.3 |
Context Branch |
79.1 |
89.1 |
Without Deep Supervision |
81.3 |
89.8 |
ours |
81.9 |
90.3 |
从表中可以看出,在不添加任何模块的RepVGG-32的基础上,我们的网络总共带来了15.1%的IoU和10.2%的F1提升。而仅使用MLPF的CB在相同RepVGG-8下提高了0.3%的IoU和0.8%的F1。而在RepVGG-32的基础上,MLPF提升了12.3%的IoU和9.0%的F1,在此基础上,DB提升了2.2%的IoU和0.7%的F1。最后,使用深度监督模块提升了0.6%的IoU和0.5%的F1。以上结论证明了改进的RepVGG以及提出的两个分支能提取丰富细节信息的高分辨率特征图,对于肝包虫病灶分割提升有显著提升。
4. 结论
目前,人工智能技术已用于肿瘤性疾病的辅助诊断,其中深度学习是一种基于数据的表示学习,可以学习高级抽象特征表达。国内外迅速将其应用到医学图像处理领域,并取得了较好的成果。基于深度学习的多模态医学影像关键技术快速发展,和传统的人工判定比较,利用计算机技术辅助过程极大地提高了效率,减少了人力、物力及财力的巨大消耗。目前,有学者[22]提出使用计算机辅助诊断(computer aided diagnosis, CAD)的方法来辅助医师对肝囊型包虫病做出诊断,以此弥补部分地区医疗资源不足的问题。随着深度学习网络的快速发展,图像处理中的目标检测任务也有了跨越性的进展[23]随着深度学习的快速发展,基于卷积神经网络(CNNs)等的目标检测算法取得了显著的成果,这不仅提高了检测的准确性,还加快了检测速度,使得实时应用成为可能。
本文针对肝包虫病变区域的全局背景特征、不同尺寸变化、小尺度局部细节和不规则形状等特点,提出了一种由上下文特征提取分支和详细特征提取分支组成的新型深度网络。在所提出的方法中,基于RepVGG的改进轻量级网络用于提取具有多尺度感受野的全局背景特征图。特征融合模块用于高效地融合特征图。同时,使用由深度聚合金字塔模块组成的详细特征提取分支来提供局部详细信息。所提出的网络在私有数据集上进行了验证。实验结果表明,所提出的网络达到了最佳的准确性。在未来的研究中,我们将在额外的医学图像分割任务中验证所提出的方法。
利益冲突声明
全部作者声明无利益冲突。
作者贡献声明
陆定负责研究设计、论文撰写,尚婧晔参与图表绘制,夏勋、熊静、邓春梅参与数据收集,魏丽,王舒负责论文指导。
基金项目
四川省科技计划项目(2023YFG0281)四川省重点研发项目(2021YFG0316)。
NOTES
*通讯作者。