改进的Libra区域卷积神经网络的脑动脉狭窄影像学检测算法

2022-09-25 08:43刘汉卿康晓东张福青赵秀圆杨靖怡王笑天李梦凡
计算机应用 2022年9期
关键词:检测器卷积神经网络

刘汉卿,康晓东*,张福青,赵秀圆,杨靖怡,王笑天,李梦凡

(1.天津医科大学医学影像学院,天津 300202;2.天津医科大学第二附属医院,天津 300211;3.西交利物浦大学智能工程学院,江苏苏州 215123)

0 引言

脑血管疾病目前是世界上第二大常见死亡因素[1],其中缺血性卒中的发病率最高,引起缺血性卒中的主要发病机制是由于颈内动脉或椎动脉的狭窄或闭塞,动脉粥样硬化性疾病的结果是血管壁上积聚了钙化斑块,导致管腔狭窄。斑块的存在易导致脑血管内栓塞形成或长期处于缺血状态进而导致脑卒 中[2]。CT 血管造影(Computed Tomography Angiography,CTA)作为常见的影像学检查,因其检查快速、创伤性小和费用低等特点,通常作为脑血管疾病的首选检查方式。因此将计算机辅助诊断(Computer-Aided Diagnosis,CAD)结合CTA 图像用于脑血管狭窄的自动检测,可以协助医生进行脑血管异常的诊断并指明患者的准确病变位置。

传统的血管狭窄检测方法主要利用机器学习算法[3-6],很大程度上依赖于人工预定义的特征,手工特征的设计和提取过程繁琐且耗时,易产生人为误差。此外,传统机器学习算法缺少捕捉血管图像特征语义信息,因此它们在抗干扰以及泛化能力方面表现不佳。

近年来,卷积神经网络(Convolutional Neural Network,CNN)的出现,大幅提高了目标检测的准确性,为计算机视觉领域带来显著效果,加上海量数据、结构化信息以及图像处理器等硬件技术快速发展,使深度神经网络的实时应用成为可能,且其精确度超过许多其他先进方法。由于R-CNN(Region-Convolution Neural Network)的成功,两阶段检测框架通过结合建议检测器和区域分类器逐步成为主导地位,在过去为了减少R-CNN 中冗余的CNN 计算,提高运算速度,SPPNet(Spatial Pyramid Pooling-Net)[7]和Fast R-CNN[8]引入了区域特征提取的思想。之后,Faster R-CNN[9]通过引入区域提议网络(Region Proposal Network,RPN)实现了进一步的加速,Faster R-CNN 的浅层网络通常学习位置信息,深层网络学习特征语义信息。Faster R-CNN 采用顶层特征预测,仅利用最后一层(即高层特征)进行目标检测,因此并未充分考虑其他层的特征信息,导致其对小目标的检测能力明显不足。特征金字塔网络(Feature Pyramid Networks,FPN)[10]将高层特征与低层特征信息融合得到融合特征,并进一步提取该特征进行预测,可以获得更好的检测效果。

结合深度学习在医学图像分析中同样表现优异,Joo等[11]利用3D 残差网络结构结合脑部磁共振成像(Magnetic Resonance Imaging,MRI)图像进行动脉瘤的检测;Smistad等[12]使用Fast R-CNN 进行超声图中深静脉血栓的检测;Stib等[13]通过使用DenseNet 在多期CTA 图像检测颅内血管栓塞部位;De Man 等[14]采用RED-CNN(Residual Encoder-Decoder Convolutional Neural Network)获取冠状动脉的中心位置,并通过全连接神经网络评估管腔横截面积;胡涛等[15]在烟雾病的数字减影血管造影图像中,利用CNN 提取图像特征,随后输入结合注意力机制的门控循环单元(Gated Recurrent Unit,GRU)中进行脑动脉狭窄的检测;Dai 等[16]从3D CTA 图像中提取2D 邻近投影图像,结合Faster R-CNN 完成颅内动脉瘤的检测;Yang 等[17]向Resnet18 中添加注意力机制模块,在编码和解码阶段使用密集空洞卷积核以及残差多核池,实现颅内动脉瘤风险评估;Shinohara 等[18]利用深度卷积神经网络在CT(Computed Tomography)平扫中识别大脑中动脉高密度症,用于检测大脑中动脉供血区域的急性脑梗死;卫渊等[19]使用AlexNet,对不同部位的颅内动脉瘤CTA 图像进行识别;秦志光等[20]通过将多模态的脑部CTA 图像输入至多个并行的卷积神经网络中,有效提取脑血管结构。虽然CTA作为脑血管狭窄的首选检查方式,但其病灶部位通常并不明显,因此在临床诊断过程中仍然十分依赖医生的经验,而长时间影像诊断同样会增加误诊或漏诊的可能性。此外,脑血管可在不同断层层面表现不同的形状,如圆形、椭圆形、梭形或不规则形状,加上不同患者间存在个体差异,因此要求特征图在最大限度上获取更多的语义信息来检测血管的状况;而狭窄区域较小将导致正负样本采样时出现样本不均衡等问题。

Libra R-CNN 能有效解决采样不均衡问题,针对上述问题,本文提出一种改进的Libra R-CNN 算法用于辅助临床脑血管狭窄的CTA 图像诊断,在骨干网络中加入可变卷积网络(Deformable Convolutional Network,DCN),使骨干网络能根据血管在不同层面CTA 图像的形状动态学习语义特征;接着将从骨干网络中提取的特征图输入至引入非局部神经网络的平衡特征金字塔(Balanced Feature Pyramid,BFP)中进行进一步的特征图的融合;最后将融合后的特征图输入级联检测器进行三次优化后输出最终检测结果。

1 Libra R-CNN

目标检测模型的训练主要包括3 个步骤:候选区域的生成与选择、特征提取、类别分类和检测框回归等多任务的训练与收敛。在检测任务中,样本、特征以及目标级别的不均衡通常会限制模型性能的表现,因此Libra R-CNN 分别提出IoU(Intersection-over-Union)平衡采样、平衡特征金字塔结构和平衡L1 损失函数三种方法[21]。

1.1 IoU平衡采样

通常损失函数较大的样本被定义为困难样本,损失函数较小的样本为容易样本。在采样阶段,困难样本具有重要的价值,因为困难样本对提高检测性能更高效。在训练目标检测器并生成许多候选框后,如果采用随机的方法挑选正负样本,可能会导致大部分负样本的候选框与真实框的IoU 位于较小的区域。假设在含有M个对应的候选样本中抽取N个负样本,随机抽样下每个样本的被选概率为:

为了提高困难负样本被选中的概率,将IoU 阈值区间划分为K份,在每个子区间都采样相同数量的负样本(如果达不到平均数量,则取所有在该子区间的样本),最终可以保证采样得到的负样本在不同的IoU 子区间达到尽量均衡的状态,IoU 平衡采样概率为:

其中Mk为对应间隔K内的采样候选个数。在实验中默认为2,即将负样本根据IoU 分为两部分:大于或等于阈值的样本,根据IoU 进行分桶操作,计算应该落在每个桶中的样本数量,最后得到IoU 均匀分布的负样本;低于阈值的样本则进行随机采样。

1.2 平衡特征金字塔

在FPN 结构中使用横向连接的操作融合骨干网络的特征,在BFP 中依次使用缩放(Rescale)、融合(Integrate)、精炼(Refine)和强化(Strengthen)四步完成增强FPN 结构输出的特征图。BFP 结构如图1 所示。

图1 平衡特征金字塔结构Fig.1 Structure of balanced feature pyramid

缩放 为了获取均衡语义特征,首先需要对各层语义特征进行缩放,依次将从{C2,C3,C4,C5}层输出的特征图分别进行差值和下采样的方法统一到C4层。

融合 将统一之后的特征图进行融合,不同层级特征融合表达式如:

其中:Cl表示分辨率级别l的特征,L表示多层级特征数,lmax和lmin分别表示最高层次和最低层次指数。

精炼 平衡语义特征可以使其更具有鉴别性,因此可以使用卷积核或非局部神经网络细化平衡语义特性。通常,卷积操作感受野较小,卷积操作学习图像的局部特征,而非局部神经网络可以结合更多空间位置信息,利用局部特征和全局特征之间的差异找到图像中更显著的部分从而带来更丰富的语义特征。

强化 将强化之后的特征图与不同层级的原始特征图加和,最终得到增强FPN 结构输出{P2,P3,P4,P5}的特征图。

1.3 平衡L1损失函数

在目标检测任务中,损失函数为分类损失函数与边框回归损失函数之和,若分类得分很高时,即使边框回归效果差,最终的预测结果也会有较高的精度,因此需要考虑增加回归损失函数的权重。Smooth L1 损失函数常在RPN 中用于计算回归分支,Smooth L1 中困难样本对应的梯度相对于容易样本的梯度更大,导致不同样本学习能力的不平衡。平衡L1损失函数在Smooth L1 上做出改进,在平衡L1 损失函数中,困难样本和容易样本界限处的梯度更加平滑,平衡L1 损失函数的表达式如式(4)所示:

其中定义γ=αln(b+1),通过调节α和γ的值实现分类与回归损失函数间的平衡。

2 相关工作

2.1 可变卷积网络

CNN 可以通过多层的堆叠自动学习高层语义特征,但是CNN 的卷积核和池化算子不能根据空间特征进行自适应性调整,传统卷积核中的卷积单元对输入的特征图进行固定位置采样,并且典型的池化层(例如,平均或最大池化层)也是固定的,不能以自适应方式学习用于特征下采样,因此难以适应不同尺度或形变的物体。由于血管结构的复杂性,若采用标准卷积操作,同一卷积层的激活单元的感受野尺寸都相同,这对于编码位置信息的浅层神经网络并不可取,因为不同的位置可能对应不同尺度或者不同形变的物体,这些层需要能够自动调整尺度或者感受野的方法。可变卷积网络在感受野中通过学习偏移量,使得感受野与血管的实际形状贴近。引入可变卷积网络,大小和形状可以根据血管空间环境自适应调整。具体地,为了创建可变形采样点位置,首先为输入图像的每个像素计算二维的偏移量,具有计算的偏移的每个像素的采样位置可以覆盖具有相似特征的其他相邻像素的位置;其次利用可变形采样点,将相邻像素的相似结构信息压缩成固定的网格;最后生成可变形特征图像。因此,对可变形特征图像进行规则卷积可以更有效地反映复杂结构,可变卷积网络的结构形式如图2 所示。

图2 可变卷积网络结构Fig.2 Structure of deformable convolutional network

假设规则的卷积是在一个规则的网格R上操作的,表达式如式(5)所示:

对R进行可变形卷积运算,但每个点都增加一个可学习的偏移Δpn,可变卷积表示为如式(6):

卷积生成2N个特征图,对应N个2D 个偏移量Δpn(每个偏移量对应有x方向和y方向)。本文使用可变卷积层表现为在卷积核大小为3 × 3、卷积步长为2 × 2、特征图填充宽度为1 的2D 卷积层前,加入输出通道数为18、卷积核大小为3 × 3、卷积步长为2 × 2、特征图填充宽度为1 的2D 卷积层作为偏移量。

2.2 非局部神经网络

CNN 通过神经元的连接,以卷积核窗口滑动的形式实现,感知图片局部的语义信息,在更高层将局部信息整合得到全局信息。为了更好学习图片全局的语义信息,Wang等[22]和Shokri 等[23]将CNN 与传统非局部均值相结合构成非局部模块的网络结构,利用特征图的位置信息融合全局信息,通过重复卷积运算提取传统模型所不能捕获的全局特征,拥有更多的全局特征有助于利用局部特征和全局特征之间的差异找到图像中更显著的部分,可以为高层带来更丰富的语义表征,从而提高现有方法的性能。非局部神经网络(Non-local Neural Network,Non-local NN)结构如图3 所示,C、H、W分别对应维度,其中N=H×W。非局部模块的表示式如式(7)所示:

图3 非局部神经网络结构Fig.3 Structure of non-local neural network

其中:(i,j)为待计算响应的位置坐标;(k,l)为输入图片中所有可能位置的坐标;x表示输入图片或其特征图,y表示与x相同维度的输出信号;函数f(·)计算(i,j)与(k,l)之间的标量;函数g(·)表示在(k,l)位置输入信号的一元函数;C(x)表示响应因子,对输出值进行归一化计算。一元函数g(·)的表达式为:

其中:Wg为权重矩阵,g(·)的实现使用大小为1 × 1 的二维卷积。

2.3 级联检测器

在目标检测网络中,大于IoU 阈值为正样本,小于IoU 阈值为负样本。如果选用较低的IoU 阈值,则会导致抽取的正样本中含有较多的背景,容易产生误检;而采用较高IoU 阈值可以减少误检,但随着IoU 阈值的提高,选取正样本的数量也会随之减少,从而导致过拟合。当一个检测模型采用某个阈值u(假设u=0.5)来界定正负样本时,那么当输入目标候选区的IoU 在这个阈值附近时,该检测模型比基于其他阈值训练的检测模型的效果要好[24]。

级联检测器(Cascade Detector)的核心是Cascade RCNN[24](如图4 所示),是由一系列的检测头组成,每个检测头都基于不同IoU 阈值的正负样本训练得到。Cascade RCNN 在Faster R-CNN 的基础上通过对RPN 输出的感兴趣区域(Region Of Interest,ROI)进行3 次微调,将每次检测头输出的偏移量和ROI 解码作为下一阶段ROI 的输入,而且越往后的检测头,其界定正负样本的IoU 阈值是不断上升的。采用级联检测器的方法能够让每一个阶段的检测头专注于检测IoU 在某一范围内的建议候选区并达到最佳,通过不断提高预测框的质量,满足不同阶段ROI 输入的变化,提高ROI的质量以保证每个检测头有足够的训练样本避免过拟合问题。

图4 级联检测器结构Fig.4 Structure of cascade detector

级联检测器包括以下两个部分:

1)多级边框回归:回归分支是计算候选框到真实框的偏移量,候选框的向量用b=(xb,yb,wb,hb)表示,其中xb、yb分别表示候选框的中心点位置,wb、hb分别表示候选框的宽度和高度;真实框的向量用b*=(x*,y*,w*,h*)表示,其中x*、y*分别表示候选框的中心点位置,w*、h*分别表示候选框的宽度和高度。候选框到真实框的偏移量t*的表达式如式(9):

使用回归器f(x,b)将候选框向真实框b*进行回归,其中损失函数的表达式为:

级联回归采用一系列特定的回归量来实现,公式如式(12):

其中:T表示级联阶段的总数,fT表示对应阶段a的回归。

2)分类:分类函数定义为h(x),分类器将样本分为K+1类,其中第0 类包含背景信息以及待检测的目标。给定的训练样集(xi,yi)通过学习最小化分类风险,公式为:

其中:Lcls为交叉熵损失函数,yi为对应图片xi所属类的标签。

级联检测器通过将前一阶段预测框回归的输出结果作为下一阶段的输入,在每个阶段t中分类器ht和回归器ft用于最小化多任务损失目标函数,用于优化IoU 的阈值ut(ut>ut-1),多任务损失目标函数表达式如式(14)所示:

其中:bt=ft-1(xt-1,bt-1),g表示检测目标xt的真实框,yt为xt的预测标签,λ为权衡系数。

本文算法结构如图5 所示,在Libra R-CNN 的网络框架中,以ResNet50 为骨干网络。首先,分别在骨干网络的3、4、5 阶段引入可变卷积网络,通过学习偏移量提取血管形变在不同断层面的形态特征;其次,将从骨干网络中学习的特征图分别输入至RPN 进行候选区域的筛选,以及引入非局部神经网络的平衡特征金字塔网络中,利用全局信息进行更深层的特征融合;最后,通过不断提高IoU 阈值的级联检测器进行三次分类与回归分支的调整,优化其最终预测结果。

图5 改进的Libra R-CNN算法结构Fig.5 Structure of improved Libra R-CNN algorithm

3 实验与分析

3.1 数据集与实验环境

脑动脉狭窄CTA 数据集来自天津市第二附属医院,由79 位患者组成,首先对数据进行脱敏处理,由具有医师资质且工作年限大于5 年的医生使用Labelme 标注为PASCAL VOC2012 数据格式,最后转换成COCO 数据格式。数据集按训练集与测试集进行划分,其中:821 幅图像作为训练集,标注物体数量为879;200 幅图像作为测试集,标注物体数为219。为了检验本文算法的泛化能力,选用来自Aistudio 平台公开的结肠息肉CT 数据集进行验证,其中:800 幅图像作为训练集,标注物体数为800;57 幅图像作为测试集,标注物体数为57。

本文实验环境实现是在PaddlePaddle 框架下进行的,操作系统Ubuntu18.04,显卡Tesla V100,内存为32 GB。实验采用的骨干网络为ResNet50,目标检测网络均使用FPN 结构。学习率采用分段衰减,总训练次数epoch=20,初始学习率为0.001 25,分别在epoch=12 和epoch=19 时学习率分别下降至初始学习率的1/10,batch size=2。模型参数的优化方法均为随机梯度下降法(Stochastic Gradient Descent,SGD),图像未采用数据增强方式,输入图像大小为512× 512。

3.2 实验评价指标

实验使用平均准确率(Average Precision,AP)、每秒帧率(Frames Per Second,FPS)、AP50、AP75和APS,其中AP 表示测试集中预测框平均准确率,FPS 表示每秒预测图片的数量,AP50表示在IoU=0.50 下的平均准确率,AP75表示在IoU=0.75 下的平均准确率,APS表示小目标物体(面积<32×32)的平均准确率。对于类别为C的物体,其AP 的计算公式如式(15)和(16)所示:

其中:N(TruePositives)C表示正确检测目标的个数,N(TotalObjects)C表示待检测目标的总数,N(TotalImages)C表示待检测图片的总数。

实验1 对脑动脉狭窄CTA 数据集进行验证,为了充分验证本文算法的可靠性和有效性,分别采用单阶段目标检测网络YOLOv3(You Only Look Once version 3),两阶段目标检测网络Faster R-CNN、Libra R-CNN 和Cascade R-CNN 进行对比实验。实验1 的对比结果如表1 所示。

表1 实验1的对比结果Tab.1 Comparison results of experiment 1

对比实验表明,在脑动脉狭窄的CTA 数据集上,本文算法效果最优,AP 分别在Libra R-CNN 和Cascade R-CNN 的基础上提升4.3 和2.1 个百分点;对比Libra R-CNN,本文算法在AP50、AP75和APS上的指标分别提升1.3、6.9 和4.0 个百分点,FPS 降低10.8;相比Cascade R-CNN,在AP50、AP75和APS上的指标分别提升2.5、0.9 和1.8 个百分点,FPS 降低3.2。

在实验1 中,通过不同模型的对比,证实了本文算法的有效性。为了进一步解析本文算法的DCN、级联检测器Cascade 以及非局部神经网络3 个模块对实验结果的贡献,进行了消融实验。通过添加某个模块后与Libra R-CNN 进行横向对比,评估模块的重要性。

表2 给出了消融实验的仿真结果。整体来看,所有模块对本文的实验结果都起着积极作用。当本研究添加DCN 模块,与Libra R-CNN 相比,AP、AP75和APS分别提高了0.2、1.0和0.3 个百分点,FPS 下降1.7。由此可见,使用DCN 模块有助于学习血管形态变化,但是整体提升并不明显。在本研究中继续添加级联检测器时,发现AP、AP75和APS分别大幅度改善了2.9、7.0 和3.2 个百分点,FPS 降低11.0。说明级联检测器通过提高IoU 阈值进而提升输出框的质量。当继续添加Non-local NN 时,发现实验结果AP、AP50、AP75和APS分别提升了4.3、1.3、6.9 和4.0 个百分点,FPS 降低10.8。说明通过非局部神经网络学习全局特征,为高层带来更丰富的语义表征。

表2 实验1的消融结果Tab.2 Ablation results of experiment 1

AP 与训练步数结果如图6 所示,横坐标步数表示每隔4轮训练输出一次结果。由图6 可知本文算法在每一步中的AP 均为最高。

图6 几种方法的训练步数与平均准确率结果对比Fig.6 Results comparison of training steps and average accuracy among several methods

图7 表示预测速度与AP 结果,图7 中单阶段检测网络YOLOv3 的检测速度最快,但是AP 值最低。在Libra R-CNN上添加DCN,AP 的上升和FPS 的下降不是十分显著。通过继续添加级联检测器和非局部神经网络,AP 的上升和FPS的下降表现比较显著。

图7 几种方法的预测速度与准确率结果对比Fig.7 Results comparison of prediction speed and average precision among several methods

对比实验中预测结果如图8 所示,列表示同一层面不同算法的血管狭窄的预测图,行表示同一算法不同层面血管狭窄的预测图,不同模型输出结果均用不同颜色预测框表示,并输出置信区间。本文算法输出置信区间结果最优,与Faster R-CNN 置信区间结果近似,但是对比其预测框结果发现本文算法的预测框回归效果优于Faster R-CNN。

图8 实验1中不同算法的检测效果对比Fig.8 Detection effects comparison of different algorithms in experiment 1

为了验证本文算法的泛化能力,实验2 对公开的结肠息肉CT 数据集上验证,同样采用单阶段目标检测网络YOLOv3,两阶段目标检测网络Faster R-CNN、Libra R-CNN 和Cascade R-CNN 进行对比实验,对比实验结果如表3 所示。

表3 实验2的对比结果Tab.3 Comparison results of experiment 2

通过向Libra R-CNN 中依次添加DCN、级联检测器Cascade 以及非局部神经网络3 个模块进行消融实验,消融实验结果如表4 所示。

表4 实验2的消融结果Tab.4 Ablation results of experiment 2

在结肠息肉CT 数据集中,对比实验表明本文算法效果最优,AP、AP50、AP75和APS分别为59.8%、99.3%、66.9%和59.8%,与Libra R-CNN 相比,AP、AP50、AP75和APS分别提高6.6、3.6、13.0 和6.4 个百分点,FPS降低10.9。相 比Cascade R-CNN,在AP、AP50、AP75和APS上的指标分别提升3.7、8.3、3.5 和3.7 个百分点。消融实验结果表明,加入DCN 后,与Libra R-CNN 相比AP 提升0.7 个百分点,FPS 降低1.1。通过继续添加级联检测器发现,与Libra R-CNN 相比,AP、AP75和APS分别提升2.4、4.3 和2.2 个百分点,FPS 降低10.2。通过继续添加非局部神经网络发现,与Libra R-CNN相比,AP、AP50、AP75和APS分别提升6.6、3.6、13.0 和6.4 个百分点,FPS 降低10.9。对比实验中预测结果如图9 所示,本文算法检测效果优于其他算法。

图9 实验2中不同算法的检测效果对比Fig.9 Detection effects comparison of different algorithms in experiment 2

综上所述,通过添加可变卷积网络、级联检测器以及非局部神经网络三个模块对实验结果有显著提升。此外,3 个模块均会导致网络计算复杂度增加,其中级联检测器最为显著。

4 结语

本文采用结合多模块的Libra R-CNN 目标检测算法用于检测脑动脉狭窄,该模型在骨干网络中使用可变卷积网络通过学习偏移量提取血管在不同断层面的形态特征,同时在平衡金字塔网络中加入非局部神经网络,通过特征图的位置信息融合全局信息,学习更深层的语义表征,最后级联检测器通过提高IoU 阈值优化最终预测结果。

在脑动脉狭窄CTA 和结肠息肉CT 数据集上的实验结果表明,本文算法检测效果均优于现有主流目标检测算法,在客观指标(AP、AP75和APS等)和预测结果都有显著提升。通过多种网络结构的优化,本文算法在小目标的准确率也有显著提升。

尽管本文算法优于Faster R-CNN 和Cascade R-CNN 等主流两阶段目标检测方法,但所提出的检测方法由多种网络堆叠,网络结构冗余且参数量增加,导致检测速度减慢。在未来的工作中,将进一步研究如何简化网络结构及减少参数量,并提高检测的准确率和检测速度。

猜你喜欢
检测器卷积神经网络
基于全卷积神经网络的猪背膘厚快速准确测定
基于神经网络的船舶电力系统故障诊断方法
基于人工智能LSTM循环神经网络的学习成绩预测
基于图像处理与卷积神经网络的零件识别
MIV-PSO-BP神经网络用户热负荷预测
基于深度卷积网络与空洞卷积融合的人群计数
用于录井专用气相色谱仪的FID检测器
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
高效液相色谱法应用中常见问题与处理
卷积神经网络概述