用于烟雾病检测的Faster RCNN改进算法
2022-12-13徐佳薇顾宇翔
徐佳薇,武 杰,雷 宇,顾宇翔
(1.上海理工大学健康科学与工程学院,上海 200093;2.复旦大学附属华山医院神经外科,上海 200040)
引 言
脑血管病的危害性极高,对我国国民健康造成了巨大威胁,具有高致残率和高致死率的特点[1],其中烟雾病(Moyamoya disease,MMD)是一种原因不明、以双侧颈内动脉末端、大脑中动脉和大脑前动脉起始部慢性进行性狭窄或闭塞为特征,并继发引起颅底异常血管网形成的较为罕见的脑血管疾病。其临床表现为脑卒中(包括脑缺血和脑出血两种类型[2]),一旦发生脑血管意外会使患者的生命受到严重威胁,并导致较高的致残率。目前,数字减影血管造影(Digital subtraction angiography,DSA)是诊断烟雾病的金标准[3],其原理是将造影剂注入患者血管,血管在X射线照射下显影,将注入造影剂前后的两帧图像作减影处理即可得到纯血管影像。DSA图像可以反映出血液在血管内的流动轨迹,血管的形态及结构清晰可见。烟雾病患者的颈内动脉DSA图像表现为,在大脑前、中动脉分支处存在异常的狭窄或闭塞,使颅底血管发生代偿,出现不同程度的烟雾状细小血管网[4]。在传统的烟雾病诊断流程中,主要依靠临床医生阅片,并根据经验独立作出诊断,但是培养一名成熟的临床医生需要大量的时间成本,无法匹配日益增长的诊断需求。而且,如何能够较为精确地针对DSA图像进行烟雾病的精确分级与脑卒中是否发生的预测还是临床工作中的难点与痛点,同时也是目前研究的热点。
近年来,以深度学习为代表的人工智能技术迎来了研究与应用的高潮,也为烟雾病疾病转归预测提供了新的途径与思路。Tackeun等[5]采用深度学习对普通头颅X线图像中的烟雾病进行识别,准确率为84.1%;Akiyama等[6]使用改进的VGG16网络对烟雾病患者、动脉粥样硬化患者和正常人磁共振图像的基底池、基底节和半卵圆中心进行区分,准确率分别为92.8%、84.8%和87.8%。但实现烟雾病预后的智能化预测,首先要做到通过深度学习的人工智能技术对烟雾病DSA图像有较为精准的诊断,这是以后精准判断预后的基础与必要步骤。
与传统机器学习方法相比,卷积神经网络(Convolutional neural network,CNN)具有更强大的特征学习和特征表达能力[7]。许多CNN模型都在计算机视觉领域的识别任务上取得了令人满意的效果。其中,Faster RCNN网络[8]已经广泛应用于医学图像检测领域[9⁃12],且检测精度较高,具有良好的检测性能。
烟雾病影像表现为大脑前、中动脉存在一定程度的狭窄、闭塞,颈内动脉末端毛细血管增多,出现异常的烟雾状血管网。由于血管特征较小,原始的Faster RCNN采用VGG16作为特征提取模块不易捕捉细小的血管特征,且使用ROI Pooling进行特征映射难以保留小血管的完整度。因此,本文在原有的Faster RCNN网络上做了改进,选取ResNet101[13]作为特征提取网络,获得丰富的血管特征,使用区域生成网络(Region proposal network,RPN)定位病灶位置,并且将原本的ROI Pooling层替换为ROI Align层,降低目标误差,实现烟雾病的自动检测,有效提高了检测精度。
1 实验方法与材料
1.1 改进的Faster RCNN网络
改进的Faster RCNN网络结构分为特征提取模块、RPN和分类回归模块3个部分。输入图像经过特征提取模块提取血管特征,得到特征图,然后进入RPN,根据目标框与人工标定标记框的交并比(In⁃tersection over union,IOU)筛选正负样本进行回归训练,得到建议区域,并和特征图一起输入分类回归模块,ROI Align将特征图的建议区域转化为固定尺寸的特征图,输入分类、回归分支,得到最终的检测结果。改进的Faster RCNN架构如图1所示。
图1 改进的Faster RCNN架构Fig.1 Improved Faster RCNN architecture
1.1.1 ResNet101特征提取模块
对于烟雾病检测任务来说,主要检测对象为脑血管,其经过VGG16网络的池化操作后容易丢失细微的特征信息,且VGG16网络参数量大,需要的存储空间大,部署难度大。为了更好地提取复杂血管的特征信息,本文使用ResNet101网络替代原始模型所用的VGG16网络作为Faster RCNN的基础骨架。ResNet101网络采用跳跃连接方式,利用恒等映射不断学习新的特征,大大提升了模型学习特征的性能。ResNet101网络在ResNet50网络的基础上加深了第4层卷积层,能够在深层的特征图中获得丰富的图像特征,避免血管特征在卷积和池化过程中产生模糊或丢失,并且模块的参数量也适中,能够降低小样本数据集可能出现的过拟合风险。本文采用pre⁃training+fine⁃tune训练策略,载入了在公开的分类数据集ImageNet下预训练好的参数模型,能够提高模型的初始性能,在此基础上对模型进行训练,可以有效提取特征信息,并且能够共享网络权重,减少需要学习的自由变量的个数和训练网络所需的时间。在烟雾病数据集上微调参数,提升了模型的收敛速度,增加了模型的泛化能力和鲁棒性,更适合部署于算力一般的平台,更加适用于临床的应用。
1.1.2 区域生成网络
区域生成网络RPN是Faster RCNN模型的核心模块,主要作用是生成建议区域。它采用3×3的滑动窗口遍历特征图,来生成候选区域,取滑动窗口中心点为锚点,以128、256、512为尺度,1∶1、1∶2、2∶1为尺度比,每个锚点共得到9个锚框。通过卷积层后,再由Softmax对锚框进行分类,9个锚框进行二分类,将其分为目标类和背景类,卷积核通道数为9×2。同时计算对于锚框的边框回归偏移量,修正锚框,卷积核通道数为9×4,纳入9个锚框及各自的4个坐标位置参数,最后获得较为精确的建议区域。RPN的输出层共有(4+2)×9维通道,较其他网络维数更少,大大降低了参数的数量,更适合用于小样本数据的检测。
由于烟雾病检测不存在多目标重叠情况,因此选取非极大值抑制(Non⁃maximum suppression,NMS)去除冗余的锚框,提高检测速度。对于RPN生成的锚框,将置信度分数最大的目标框作为基准框,若目标框与其IOU大于0.7,则将该目标框的置信度置为零,即去除该目标框。
当剩余的目标框与人工标定的标记框的IOU大于0.7时,认为该框为正样本,当IOU小于0.3时,则认为其为负样本,当IOU位于0.3~0.7之间时,不纳入损失函数中计算。RPN网络中的损失函数定义为
式中:i表示第i个锚框,pi表示锚框是目标框的概率,ti为锚框的位置坐标,pi*为目标框的判断值(正样本为1,负样本为0),ti*为候选区域框的位置坐标,Ncls和Nreg为规范化参数。
分类损失Lcls和回归损失Lreg可分别定义为
R为稳健损失函数
锚框的坐标计算如下
式中:x、y、w和h分别为候选区域框的中心坐标、宽度和高度;xa、ya、wa和ha为锚框的坐标及宽度和高度;x*、y*、w*和h*为目标框的坐标及宽度和高度。
1.1.3 ROI Align特征映射
ROIPooling可以从候选框中截取ROI特征,映射到特征图的相应位置,对映射后的区域进行划分,得到相同大小的区域特征图,经过最大池化(Max pooling)操作后输出,保证了大小不同的候选区域输出结果都是固定大小。这样处理的好处是能够共享权重,使全连接层能够利用预训练的参数,减少训练模型的时间。但是候选区域框的坐标通常是浮点数,ROIPooling在映射过程中直接将其做最近邻插值操作,会产生量化偏差,尤其血管的特征比较细微,
如果产生严重的偏差,就会造成重要特征消失。为了解决这个问题,在本实验中采用ROI Align来代替ROI Pooling。ROI Align首次在Mask RCNN[14]中被提出,它可以避免候选区域边界在映射过程中被量化。将每个候选区域分为4个子区域,取各中心点为采样点,通过双线性插值计算得到4个采样点的像素值大小,再采用最大池化,取4个像素值的最大值作为该区域的像素值,依次得到最终的特征图。虽然ROI Align的取样点比ROI Pooling更少,但是性能却优于ROI Pooling。如图2所示为ROI Pool⁃ing和ROI Align的映射过程对比。
图2 ROIPooling和ROIAlign的映射过程对比Fig.2 Comparison of mapping process between ROIPooling and ROIAlign
1.1.4 分类回归模块
分类回归部分利用已经获得的区域特征图,通过全连接层后,用Softmax计算每个建议区域的所属类别,输出概率向量;并且再次进行边框回归获得每个建议区域的位置偏移量,用于回归获得更加精确的目标检测框[15]。
1.2 数据采集与标注
本实验所采用的数据来自复旦大学附属华山医院,共收到2017年8月至2020年12月间的433例烟雾病病例和75例正常脑血管病病例的DSA数据。选取动脉期的DSA序列,此时造影剂流经动脉供血干,烟雾病病灶显影清晰,从中提取出长宽都为512个像素的颈内动脉正位图像,并存储为JPG格式。考虑到血管造影技术存在一定的放射性,会对人体产生伤害,因此本实验不将正常人样本纳入其中,而是选取其他脑血管病病例的正常一侧图像作为正常样本。由于存在极小部分显影不清和伪影过强的图像,因此经过筛选将其去除,保留正常情况下伴有伪影及血管显影较淡的DSA图像,来提高模型在实际应用中的鲁棒性。为了防止正常样本数量偏少产生而过拟合,对原始图像进行随机调节亮暗、水平翻转处理及截取原始图像的一部分,以保证样本的多样性。同时保证样本数量均衡,确保模型的有效性,共得到烟雾病样本319张,正常样本316张,以6∶2∶2的比例划分为训练集、验证集和测试集。
在目标检测任务中,需要对ROI进行标注,根据其轮廓勾画出标注框。采用LabelImg软件对DSA图像颈内动脉末端大脑前、中动脉分支处进行标注。正常样本的颈内动脉及大脑前、中动脉血管壁平滑,血管结构完整,呈现“T”形的分叉,见图3(a)。烟雾病样本的颈内动脉及大脑前、中动脉存在一定程度的狭窄或闭塞,并导致血管代偿出现异常的烟雾状血管网,见图3(b)。分别对两类样本标注为“Normal”和“MMD”。该软件会自动生成图像的名称、图像存储路径、目标框的类别名称、目标框坐标和长宽等信息并存储为.xml文件。将数据制作为PASCAL VOC 2007格式的数据集。
图3 样本标记示意图Fig.3 Schematic diagrams of marking
1.3 运行环境
本实验使用Intel(R)Xeon(R)CPU E5⁃2640 v4@2.40 GHz处理器,内存为128 GB,NIVDIA Tes⁃la V 100显卡,显存为16 GB,在Linux操作系统、anaconda3.7、cuda10.0、python3.6环境下,基于Pytorch深度学习框架实现。
1.4 评价指标
在实际的临床应用中,检测的精度与速度缺一不可。本文将平均精度(Average precision,AP)作为烟雾病样本和正常样本检测的评价指标。AP的计算需要同时考量精确率(Precision)以及召回率(Recall),精确率定义为识别正确的物体数占总识别数量的比例,召回率定义为识别正确的物体数占样本总体数量的比例[16]。只有使精确率和召回率同时处在一个较高的水平,才能得到较好的检测效果,由P⁃R(Precision⁃recall)曲线下的面积求出AP的值,计算式为
式中:rn和r n+1分别表示第n和第n+1个Recall值,p为第n和n+1个Recall值区间内的Precision值。假设N个样本中有M个正样本,则得到M个Recall值和Precision值。
对于每个Recall区间,取该区间内最大的Precision值,并与区间长度(两个Recall值之差)相乘作为该区间的AP值,直到遍历所有区间,将每段AP值相加得到最后的AP值。AP值越接近1,检测效果越好,再对两种类别的平均精度取均值得到平均精度均值mAP(Mean average precision,mAP),作为模型的整体性能评价指标。
2 实验结果
2.1 标注区域大小选择
不同的标注区域所包含的特征信息不同,因此不同大小的标注区域会对实验结果产生不同影响。为了确定可以达到最佳模型效果的标注区域大小,对比了缩小标注区域1.5倍、本文所选标注区域与扩大标注区域1.5倍的实验结果,如表1所示。
由表1可见,当缩小标注区域1.5倍时,模型的mAP为86.37%,检测精度降低;扩大标注区域1.5倍时,模型的mAP较原先有明显的差距,仅为81.89%,下降了12.42%。这说明过小或过大的标注区域都会影响模型性能,只有选择合适的标注区域才能提升模型的检测性能。因此本文选择标注区域正好位于颈内动脉末端大脑前、中动脉分支处,此时模型能够学习到的血管特征最有效,烟雾病样本较正常样本标注区域稍大,可以更好地获取细小血管的特征信息。这可以避免标注区域过小使模型得不到足够的特征信息来学习,也可以防止标注区域过大,使颈内动脉的其他血管特征信息对检测造成干扰,使模型学习到大量无关特征,从而影响模型整体的检测性能。
表1 改变标注区域大小前后模型评价指标对比Table 1 Compar ison of model evaluation indexes be⁃fore and after changing size of marked area
2.2 训练参数选择
为了提高模型的检测精度,需要调整网络超参数。针对ResNet101+Align组合设置超参数。权重衰减速率为0.000 5,学习率(Learning rate,LR)衰减速率为0.1,动量为0.9,迭代次数为10 000次。对模型的批大小进行调整来减少所需的训练时间,对模型的初始学习率进行调整使损失函数收敛效果更好,进一步提高精度。初始学习率为0.001时,批大小调整结果如表2所示。
由表2可知,当批大小为2时,检测效果最好,mAP为91.18%,与批大小为1时的结果较为接近,且所需时间较少。是当批大小继续增大反而造成精度下降的原因在于本次实验所采用的数据集规模较小,过大的批大小使收敛速度加快,有可能陷入局部最优而无法提升整体精度。因此在批大小为2的条件下,继续对初始学习率进行调整。
表2 初始学习率为0.001时,调整批大小测试结果Table 2 Test results of adjusting the batch size when initial learning rate is 0.001
批大小为2时,初始学习率调整结果如表3所示。图4为模型在不同初始学习率下的损失函数值,观察纵坐标可以确认模型的收敛性。
由表3可知,当初始学习率为0.005时,mAP最高,为94.31%。且根据图4的损失函数变化曲线来看,学习率为0.001和0.003时,达到收敛时的损失函数值较大。当学习率为0.005时(图中黄色粗线),损失函数值最小,且相较其他3条曲线,收敛最为平滑,效果最好。学习率为0.007时,损失函数前部下降较快,但最终收敛值较学习率为0.005时更大。经过比较,当学习率为0.005时,模型效果最好。
图4 不同初始学习率下的损失函数变化曲线Fig.4 Variation curves of loss function under differ⁃ent initial learning rates
表3 批大小为2时,调整初始学习率测试结果Table 3 Test results of adjusting initial learning rate when batch size is 2
因此,本实验采用的批大小为2,初始学习率为0.005。
2.3 不同IOU阈值对检测效果的影响
在RPN中,如果NMS的IOU阈值设得过大就会造成目标框数量冗余,如果IOU阈值过小则容易出现误检的问题。因此不同的IOU阈值会影响到最终的检测效果,对比不同IOU阈值下的检测精度,选取最优的IOU阈值进行训练。
根据表4的结果,当IOU阈值为0.7时,模型的mAP最高,为94.31%;IOU阈值为0.9时的模型精度与IOU阈值为0.7时的mAP相差最大,为12.09%,检测效果差异较大。增大或减小IOU阈值都会使检测精度下降,说明只有选择合适的IOU阈值才能使模型检测效果最好。因此,为了确保模型的训练效果,本实验选择0.7作为IOU阈值。
表4 改变IOU阈值前后模型检测精度对比Table 4 Comparison of average precision before and after changing IOU threshold
2.4 不同特征提取网络和特征映射方法组合实验效果对比
为了验证网络的性能,本实验对ResNet101及VGG16特征提取网络和ROI Pooling、ROI Align特征映射方法进行组合,测试它们的检测效果,并且对正常样本和烟雾病样本进行测试,得到最终的实验结果,如表5所示。
表5 4种组合实验效果对比Table 5 Comparison of experimental r esults of four combinations
实验结果表明,使用ResNet101+ROI Align组合时,模型的检测效果最好,mAP为94.31%,其中对于正常样本的AP达到了99.23%,这是由于正常样本的特征较为明显。烟雾病样本AP较正常样本AP低的原因是因为烟雾病的血管形态较为多样,且血管较细,不易区分。但是该方法对于烟雾病样本的AP在4种方法中也是最好的,这是由于残差网络使用了跳跃连接的残差块,使特征信息易于在各层间流动,同时ROIAlign方法减小了在特征映射过程中产生的误差。对于ResNet101+ROI Pooling组合,两种样本的准确率都和ResNet101+ROIAlign组合相差10个百分点以上,这是因为ResNet101网络提取细小血管特征能力较好,但是ROIPooling的量化操作对小特征的影响较大,产生了严重误差。当使用VGG16作为特征提取网络时,使用ROIAlign方法对最终的AP和mAP有小幅提高。在训练时间上,可以看出采用ResNet101比VGG16训练速度稍快,因为ResNet101较VGG16的参数更少,所以运算速度有一定的提高,同时采用ROI Pooling比ROI Align更快,这是由于双线性插值比最近邻插值计算更为复杂,因此需要更多的计算时间。
2.5 改进Faster RCNN模型识别样例
改进Faster RCNN模型识别举例如图5所示。检测结果显示,该模型有效检测出了血管位置,图(a,b)为正常样本检测结果,检测置信度分别为0.999和1.000,图(c、d)为烟雾病样本检测结果,检测置信度都为0.998。可以看出该模型检测效果良好,对血管结构和位置的检测较为精准,表明该模型在实际的临床应用中,进行烟雾病的检测是可行且有效的。
图5 改进Faster RCNN模型识别样例Fig.5 Identification examples of improved Faster RCNN model
2.6 对比实验
Faster RCNN是一个两阶段模型,为了验证改进的Faster RCNN模型的检测性能,将其结果与经典的单阶段模型YOLOv3[17]和SSD[18]进行对比,结果如表6所示。单阶段模型可以直接使用神经网络在待检测图像中得到候选框的坐标、所含物体的类别及对应的置信度。
表6 改进的Faster RCNN模型与不同检测模型实验效果对比Table 6 Comparison of experimental results of im⁃proved Faster RCNN model with different testing models
由实验结果可知,YOLOv3和SSD模型虽然可以实现血管的检测与定位,并且检测时间较短,但由于该算法直接跳过了生成建议区域的部分,直接将提取到的特征用于检测,省略了对标定框的回归,因此其检测区域存在一定偏差且检测精度较低。虽然本文模型的单张检测耗时较长,但其mAP分别比YOLOv3和SSD的mAP高出6.94%和8.70%,检测精度得到了较大的提升。因此,改进的Faster RCNN可以更加准确有效地检测烟雾病。
3 结束语
为了实现烟雾病的自动辅助检测,结合烟雾病DSA图像血管特点,本文在传统Faster RCNN模型的基础上,主要完成了以下几点工作:
(1)提出了用于烟雾病检测的Faster RCNN改进模型,采用ResNet101提取小血管特征,RPN定位烟雾病病灶,并且使用ROI Align方法保留小血管特征的完整度,从而实现了烟雾病的自动检测与定位。
(2)使用数据增强方法扩充现有数据,使其满足用于深度学习模型训练的需求,降低过拟合的风险,然后通过对比确定了适用于烟雾病检测的图像标注区域大小、模型超参数和IOU阈值。
(3)将不同特征提取网络和特征映射方法进行组合,并且和其他两种目标检测算法进行对比。
实验结果表明,改进的Faster RCNN模型具有良好的检测能力,优于对比算法,mAP达到94.31%。该模型可以在复杂的血管图像中较为精准地诊断出烟雾病,能够较好地鉴别出烟雾血管及周边结构的特征,为以后的预测研究提供可靠的基础,而且本文模型参数量较少,易于在临床平台部署,可以提高检测效率,降低人力成本,具有实际的应用价值。随着日后样本数的增多、血管造影技术的升级及模型结构的优化,其检测精度还有待进一步的提升。