APP下载

基于代价敏感Faster R-CNN 的脑CT 影像出血诊断方法

2022-08-13祝小惟张道强

数据采集与处理 2022年4期
关键词:代价脑出血阳性

祝小惟,万 鹏,张道强,程 乐,王 毅

(1.南京航空航天大学计算机科学与技术学院,南京 211106;2.南京鼓楼医院医学影像科,南京 210008;3.南京鼓楼医院神经外科,南京 210008)

引 言

脑出血是一种发生在颅内的原发性脑实质内出血,发生后1 个月内死亡率可达40%[1],所以尽早有效治疗至关重要。门急诊中主要基于非造影剂增强的头部CT 扫描成像进行脑出血的诊断工作,且依赖放射科医生的阅片过程,这一重复且重要的步骤要求医生具有相当程度的专业知识、丰富的经验以及一定的速度和效率。因此随着计算机技术和人工智能方法的不断发展,希望能将机器学习和深度学习方法应用于医学影像上,对医生的诊疗工作进行辅助,对病症快速准确地识别以便尽快开始治疗。

值得注意的是,人工智能在临床医学中的应用存在许多问题。首先患者脑CT 影像中亮度不同程度衰减的现象[2]和脑出血多种类型的存在,为脑出血的自动化识别带来了挑战[3]。另外,智能诊断的方法不同于医生的诊断,作为黑箱模型存在可信度的局限,因此考虑到实际应用,需要提高模型的可解释性,为诊断结果提供依据,同时方便医生对结果的正确性进行检查。更重要的是,临床上漏检的脑出血将可能带来加重病情贻误治疗时机等严重的后果,也就是说,对于计算机辅助得到的结果,假阴性将产生比假阳性的结果更大的危害,这种代价的不平衡也是医学问题中一大特点。因此实际应用时除了一般地要求模型方法具有一定程度的准确性,尤其更要尽可能减少漏检的发生,也即更加注重提升模型的敏感性。目前,许多前沿方法已被越来越多地应用在脑出血疾病中,基于CT 图像的脑出血智能筛检的方式和途径主要包括直接给出有无出血或出血类型诊断结果,以及对出血区域提取和分割等。

在进行直接诊断的方法中,Dawud 等[4]基于卷积神经网络(Convolutional neural network,CNN)、AlexNet、AlexNet-SVM 三种深度学习模型将含有多种类型脑出血的CT 图像分为正常和出血两类,并证明了在迁移学习中从自然图像到医学图像分类的知识转移是可行的;Togacar 等[5]通过自动编码器从原始数据集生成新的数据集,热力图处理并扩充后利用AlexNet 和SVM 分类器区分出包含出血的图像;Grewal 等[6]分析了三维的扫描级脑CT 图像数据,在断层图像中关注有出血潜力的区域后,利用长短时记忆整合相邻图像中的上下文信息得到诊断结果;而Arbabshirani 等[7]基于大型的头部CT 研究临床数据库开发了一个三维CNN 模型,分析扫描级的CT 影像数据来识别脑出血,在临床中对放射学工作列表进行排序,显著减少了门诊脑出血的平均诊断时间,优化了放射科的工作流程;Menon 等[8]基于Inception V3 和DenseNet 模型诊断脑出血的发生,并设计特殊的窗口技术对相对较小的出血进行关注,取得了良好的效果。在识别多出血类型方面,Hu 等[9]提出一种植入灰度共生矩阵(Gray level co-occurrence matrix,GLCM)的CNN 模型,从感兴趣区域生成固定大小的GLCM 图像,与原始图像共同通过CNN 模型提取特征,增加网络对重要病变区域的关注;而Le 等[10]则先对原始的DICOM 数据设置特定的窗口,对生成的图像进行边界框标记,并分别训练Faster R-CNN 和R-FCN 两种模型来检测4种类型的脑出血;Mushtaq 等[11]在研究中利用CNN 对脑出血分类任务进行研究,并构建了CNN+LSTM 和CNN+GRU 混合模型,关注小的不平衡数据集,使模型在现实应用场景中能够更好地识别多种脑出血的发生。

在对出血的具体区域进行识别分割的工作中,Singh 等[12]利用传统方法进行颅内出血区域的分割工作,改进距离正则化水平集进化算法,采用FCM 聚类初始化水平集函数,获得了较好的效果。Chang等[13]提出了一种二维与三维混合的DCNN 模型,基于Mask R-CNN 关注每个出血区域的分割和分类,并利用图像周围上下文信息,对不同类型的脑出血进行了检测和量化。Hidayatullah 等[14]提出了一种快速自动分割CT 图像的方法,通过图像预处理消除图像中的噪声,使用传统的分割方法将颅骨和脑组织分离,进一步分割出血区域,计算脑出血体积。Zhao 等[15]则利用了在生物医学成像分割任务中表现良好的nnU-Net 建立分割网络架构,通过分割出血边界从而帮助进行脑出血及其亚型的识别和诊断。

目前已有工作考虑多种计算机辅助情形下的脑出血诊断问题,然而也存在着一些局限性。首先,对具体出血区域进行分割的方法往往意味着更大的数据标注工作量,为了得到更优良的模型以及验证模型分割是否精准,逐像素的边界标注是十分消耗时间和精力的。对于相比之下更加便捷的直接分类方法来说,则不需要大量的复杂标记,但同时多数方法的诊断结果不如分割那么直观,并且由于模型方法的黑箱特点,模型得到结果的过程和依据并不可视。而实际临床应用中模型对结果的解释能力往往有很大的意义,增加结果的可信性,能够为医生基于诊断结果的进一步复核和细检有所帮助。除此之外,目前关于脑出血疾病的工作普遍忽略了模型方法在疾病方面应用中的代价敏感问题,这使得模型并不能够很好地符合医学场景。

考虑到综上临床应用的特定需求,本文主要基于头部CT 扫描得到的影像数据进行个体的脑部状况判断,利用目标检测的方法对影像中的脑出血区域进行识别和提取,识别包含出血的断层图像。这样可以直观地在图像中定位到有观察价值的特定区域,帮助医生快速锁定CT 扫描中的关键图像,并且提高医生的效率,同时便于直接地进一步观察到出血的范围、形态和纹理等,方便医生发现更细致的问题。同时模型方法得到有无脑出血发生的诊断结果下,显示具体出血能为诊断结果提供解释,使得结果更有依据和可信度。最终提出的代价敏感Faster R-CNN 方法,通过引入锚的前景背景比例自动化调节机制和带有超参数的代价敏感损失函数,使模型用于脑出血诊断时能够更加警惕漏诊情况的发生。为了提升模型的效果,在实验中对原始数据集进行了处理,并针对检测模型中锚的设计,采用一种聚类的方式来得到适当的初始尺寸大小。在基于多个网络结构和超参数进行实验的基础上,得到最终的应用模型。在检测和诊断多方面的指标考察下,该方法能够从代价敏感的角度提升脑出血检测效果,给出直观可视的诊断依据和较为准确的诊断结果。

1 深度学习目标检测技术

Faster R-CNN 模型[16]在基于自然图像的检测问题中被提出,用于解决自然场景下的实物目标检测和识别问题,主要通过CNN、候选区域建议网络(Region proposal network,RPN)、感兴趣区域(Region of interest,ROI)池化层、以及框分类和回归几个部分共同实现。

CNN 对输入图像卷积以提取特征,生成的特征图提供给RPN 部分,特征图与原图像存在映射关系。在输入图像每个位置生成9 个大小、形状不同的锚,计算每个锚对应包含目标的概率,再利用框回归修正得到建议框。通过非极大值抑制算法(Non-maximum suppression,NMS)根据分类的得分对这些建议框进行排序,得分较高的建议框作为ROI 输出。将每个ROI 分块最大池化以统一区域特征的大小,通过全连接层后由Softmax 层计算每个目标建议框识别为目标的概率;同时利用边界框回归对目标建议框进行精确微调,输出检测结果。

一方面,Faster R-CNN 模型作为基于CNN 的目标检测方法,在提出区域建议的思想下利用RPN的设计大大提高了模型的效率,尤其在医学领域的应用中有着实用意义。另一方面,自然场景下的模型方法也常应用于医学图像以诊断各类疾病,说明医学图像中的特征能够通过模型进行较为充分的提取。综上,本文采取Faster R-CNN 检测模型作为诊断方法的基础。

2 代价敏感Faster R-CNN 方法及其脑出血诊断

2.1 代价敏感Faster R-CNN 基本结构

本节设计代价敏感的Faster R-CNN 方法,说明其中改进方法细节处理,以及如何基于此方法实现对脑出血的智能诊断,图1 展示了模型的结构。

图1 用于脑出血检测的代价敏感Faster R-CNN 模型结构Fig.1 Architecture of cost-sensitive Faster R-CNN for the detection of ICH

2.2 锚的生成

在模型的RPN 层中锚的设计是检测的基础。以一个点为中心,基于3 种不同的长宽比和3 种不同的尺度,共有9 种组合方式对应生成9 个尺寸的锚,而长宽比和缩放尺度的适当选取,将对检测效果和框定区域准确度的提高有所帮助。

考虑到实际CT 图像中的脑出血区域形态各异,长宽比上有很大的不同,尺度上也有较大差异,因此在训练集上提取所有标注框的长宽比和面积值,分别对这两个方面进行聚类,通过K-means 方法在每个方面分别得到3 个聚类中心,即最终通过3 种长宽比和3 个面积值形成针对脑出血区域尺寸特点的9 种锚。

2.3 锚训练样本比例调节

训练RPN 网络时,通过锚生成机制得到的多个锚将与真实图像中的标记框做交并比(Intersection-over-union,IoU)计算,如果IoU>0.7 则认为当前锚为前景样本,即RPN 网络训练中的阳性样本,如果IoU<0.3 则认为当前锚为背景样本,即阴性样本,对初筛出的样本进行NMS 算法筛选,得到实际训练需要的N个样本。初始两类样本比例设为1∶1,即在一张图像中随机抽取的阳性样本和阴性样本数量相同。

考虑到问题的代价敏感性,更多的阳性样本有利于训练模型识别目标出血区域并减少漏检的能力。因此在训练集中考虑适当提高阳性样本的比例,并且希望根据模型当前检测能力自动在一定区间范围内调整比例。设当前图像阳性样本数Nif和阴性样本数Nib表达式分别为

式中:i为当前图像索引;ki为此图像中阳性样本与阴性样本的比值,且1 ≤ki≤R,R≥1;N为一张图像中总样本数。其中ki的更新策略为

式中:j为当前图像中所有锚样本的索引;pij表示锚预测为目标的概率;表示实际标签,当样本为阳性样本时取1,否则为0。通过自动化更新锚样本比例的策略,使得模型在训练时能够根据在阳性样本上的训练情况选择接下来是否提高阳性样本的占比。

2.4 代价敏感损失

代价敏感问题希望尽可能减少图形中的漏检情况,因此考虑在模型的损失函数中设计代价敏感损失,以增加对于模型未识别出阳性样本情况的惩罚。

Faster R-CNN 模型整体包括两大类损失,分别是RPN 部分产生的RPN 损失和分类回归部分产生的损失称为RCNN 损失,这两个损失中又分别包括分类损失和回归损失。分类损失由交叉熵来实现,表达式为

式中:tij表示锚预测的框偏移量;表示锚实际的偏移量。

RPN 层的分类损失是针对样本是否是目标产生的,而RCNN 损失中的分类损失是考虑检测到的目标属于哪一类,因此考虑对前者损失函数进行改进。通过引入超参数α,提高模型对阳性样本的关注,增加阳性样本漏检带来的损失,改进后的RPN 层分类损失函数为,表达式为

选取不同的超参数α的值,通过最小化相应的具有代价敏感设计的损失函数,训练针对医学图像检测模型,考察模型在预留出来的验证集上的结果,进行网格搜索选取合适的α值,得到最终的代价敏感Faster R-CNN 模型,后续在此α值上进行进一步的出血诊断。

2.5 脑出血诊断

利用有真实框标记的脑出血数据集训练代价敏感的Faster R-CNN 检测模型,降低模型的损失使其收敛以提高模型性能。输入颅脑CT 图像,识别其中是否存在出血区域,检测框可以定位到可能的出血,并给出其概率。选择一个接受阈值θ,若检测框的概率高于阈值,则决定认为框识别到了出血,在一张图像中最终确定了一个或多个标记框,即模型识别到了一处或多处出血,则此CT 图像分为阳性的一类,否则为正常即阴性的一类,因此该CT 图像诊断结果Ytest表达式为

式中:yl代表图像检测结果中第l个检测框概率;θ为接受阈值水平。

在模型给出诊断结果时,可以了解出血的具体位置和形态,同时对于在不平衡代价下更关注漏检情况的模型,给出模型的感兴趣区域能够快速识别其中的假阳性。

3 实验与结果

3.1 实验环境

本节使用代价敏感的Faster R-CNN 模型,在实际采集的含有脑出血的CT 影像数据集上进行实验,相关的实验环境为Ubuntu16.04LTS 操作系统,GPU 型号为NVIDIA GeForce GTX Titan X,使用深度学习框架Tensorflow1.10.0。

3.2 数据集处理

本文CT 图像数据来自南京鼓楼医院医学影像科,使用的CT 扫描仪厂商是飞利浦,扫描得到的图像大小为512 像素×512 像素,层厚6 mm,层距6 mm。收集了100 个脑出血病人的颅脑非增强CT 断层图像进行研究,每个病例由高年资专科医师筛选出较有意义的16 张图像。对于每张图像首先使用MicroDicom 软件[17]读取DICOM 格式,根据相关研究[18]以及专家经验和建议选取窗位WL为50,窗宽WW为100,在这个水平下将DICOM 转换为日常通用的PNG 图像格式以便后续处理。然后由专家对此1 600 张图像做数据标注,通过LabelImg 软件[19]对图像中的脑出血区域添加标记框,根据PASCAL VOC数据集格式写成XML 文件。关于数据集的制作,将全部1 600 张图像随机抽取50%作为训练集,20%作为验证集以及30%作为测试集,具体如表1 所示。由于样本量相对较小,因此对训练集的部分进行数据扩充,通过平移和放缩的方式将样本扩充至原来的4 倍。

表1 数据集划分Table 1 Partition of dataset

3.3 模型训练

对于本文使用的模型来说,数据集的规模较小,因此考虑应用预训练模型,加快收敛速度并有效提高性能。对于自然场景下的Faster R-CNN 模型来说,大型数据集ImageNet 已经被用于模型的预训练,同时Dawud 等[4]通过研究和对比试验说明了自然图像到医学图像的知识转移是可能且有用的,故预训练后的模型也可以应用于本文问题的研究。实验中分别选取VGG16、ResNet50、Inception V3 三种特征提取网络,以选取在本问题中更为合适的网络。在RPN 中,每张图像选取中选取共256 个锚样本用于训练,初始选取相同数量的前景和背景样本分别作为检测过程中的阳性样本和阴性样本。学习率预先设置为0.000 5,迭代次数为30 000,其中15 000 次迭代后,学习率降为0.000 1,使用随机梯度下降的动量方法进行训练,动量值为0.9。

3.4 实验结果

本文基于VGG16、ResNet50、Inception V3 三种特征提取网络进行实验,并对比了有无数据扩充和基于聚类的锚生成机制对检测结果的影响,多次实验的mAP 平均水平统计情况如图2 所示。通过对比可以发现,针对本检测问题表现效果更好的是ResNet50 网络,后续实验基于此网络结构进行。同时结果表明,进行了数据扩充处理和基于聚类方法生成锚后,在3 种网络结构上均表现出了mAP 水平提升,说明两种方法处理的有效性。

图2 不同网络下的Faster R-CNN 不同方法处理的mAP 检测指标结果Fig.2 Results of mAP with different methods of Faster R-CNN under different networks

通过实验固定了特征提取的网络结构后,考察代价敏感Faster R-CNN 方法的检测效果,其中为特定损失中的超参数α取不同的值,其对应的mAP 指标变化以及与非代价敏感设计方法的结果对比如图3 所示。从图中可以发现,随着α取值的不同,代价敏感方法的检测效果也不同,并且整体水平要高于原模型。其中在α=100 时验证集上表现最好。整体表现说明代价敏感设计使得整体模型能够在识别脑出血区域时更关注漏检,通过对出血区域更敏感的角度提高检测能力。

图3 不同超参数α 下代价敏感模型与原模型在mAP 指标上的结果对比Fig.3 Performance comparison between cost-sensitive method and baseline on mAP based on different α

选择超参α为100 在测试集上进行出血区域的识别,进而依据检测的结果给出基于图像级别的出血诊断,与原始Faster R-CNN 以及其他依赖于深度学习的诊断方法结果进行比较。Phong 等[20]在研究中对比了LeNet、GoogLeNet 和Inception ResNet 三种深度学习架构在脑出血诊断的效果,证明了LeNet 在精度和时间上都要优于后两者。同时Dawud 等[4]和Togacar等[5]在关于脑出血诊断的研究中均使用了AlexNet,并取得了很好的结果。Menon 等[8]针对脑出血检测任务中利用DenseNet 模型进行研究,并对相对较小的出血进行关注,取得良好的效果。而Mushtaq 等[11]在研究中利用CNN 构建了BHCNet 模型,基于CT 扫描对脑出血进行分类,通过关注小的不平衡数据集,使模型具有良好的识别能力。因此本文选用LeNet、AlexNet、DenseNet 和BHCNet 与基于原Faster R-CNN的诊断方法进行对比实验,在准确率、召回率和精度这3 种分类指标下的结果如图4 所示。

图4 不同检测框概率阈值下不同模型与代价敏感方法的脑出血诊断结果对比Fig.4 Comparison of ICH diagnosis results between different models and cost sensitive method with different probability thresholds of bounding box

对于依据检测框的诊断来说,当阈值选择越大,被判定为出血区域越严格,而当阈值选择越小,概率相对来说较低的区域容易被判定为出血,因此阈值的选择会对最终的结果有影响。从图4 中可以发现,整体上代价敏感的方法效果优于以普通Faster R-CNN 实现的诊断模型、AlexNet 模型、LeNet 模型以及DenseNet 模型。在分类精度方面,可以发现BHCNet 模型与本文提出方法均有很好的表现。而从阈值对改进前后的模型在结果上的影响来看,通过更多关注漏检的情况,本文提出方法可以在更小的牺牲准确率的同时达到更高的召回率。可见在选取合适的阈值水平下,代价敏感的Faster R-CNN 方法具有召回率方面的优势。实验中,本文提出的模型在阈值选取为0.85 时表现最好,阳性病例分类的准确率为0.90,召回率为0.91,分类精度为0.92。

图5 显示了实验中具体实例的出血区域检测结果,以及基于0.85 的检测框概率阈值的脑出血情况诊断。其中阳性样本为1、2、7、8,阴性样本为3、4、5、6,从图中可以看出,在0.85 的阈值下,1 和2 分别以1.000 和0.995 的检测框概率得到真阳性(TP)的诊断结果,3 和4 分别以0.224 和0.000 的检测框概率得到假阳性(FP)的诊断结果,5 和6 分别以1.000 和0.856 的检测框概率得到真阴性(TN)的诊断结果,7 和8 分别以0.778 和0.820 的检测框概率得到假阴性(FN)的诊断结果。

图5 阈值0.85 水平下检测和诊断结果示例Fig.5 Examples of detection and diagnosis results at the threshold level of 0.85

4 结束语

为了使医学图像的智能诊断在临床上实现更好的应用,需要考虑疾病漏检情况的严重性并尽量减少漏检情况的发生,同时关心基于深度学习的模型方法所得结果的可信度和可视化问题。为此本文提出了基于脑CT 影像识别和诊断脑出血疾病的代价敏感Faster R-CNN 模型,该方法能够在脑出血诊断中快速定位到图像中的出血区域,能够更好地使诊断的依据一目了然,更方便医生进行基于此结果的细节检查,提高医生的工作效率。实验结果表明,相较于原本的检测模型和CNN 直接用于分类的方法,代价敏感的Faster R-CNN 可以取得更好的效果,降低漏检的可能,具有一定的研究价值和现实意义。

猜你喜欢

代价脑出血阳性
脑出血联合慢性不可预知温和刺激抑郁模型大鼠的行为学相关性分析
食品核酸阳性情况为何突然变多
中西医结合治疗脑出血的疗效观察
人-人嵌合抗丙肝抗体检测阳性对照品的研制及应用
扩大翼点入路改良手术治疗基底节区脑出血并脑疝疗效观察
高血压脑出血外科治疗进展
抛开“阳性之笔”:《怕飞》身体叙事评析
爱的代价
幸灾乐祸的代价
代价