APP下载

融合位置尺度信息的胸部X光肺结节检测

2019-06-06焦庆磊陈宇彤

小型微型计算机系统 2019年6期
关键词:X光结节卷积

焦庆磊,陈宇彤,朱 明

1(中国科学技术大学 自动化系, 合肥 230027)2(南京医科大学 附属口腔医院, 南京 210000)

1 概 述

早期肺癌往往表现为肺结节的形式.肺结节作为肺部常见的病灶,可能是良性病变、转移瘤或者就是肺癌.肺癌确诊后5年存活率仅为15%,但如果在早期尚未扩散时被检测出来,这个比率能上升到49%[1].因此在日常体检中能够准确检测出肺结节,是治疗肺癌的关键所在.

准确地在日常检查中发现这些病灶,对医生来说也是很大的挑战,尤其在学生或者职工体检时,往往人数众多,医生的工作量很大,很难保证没有遗漏.肺结节检测的计算机辅助诊断(Computer Aided Diagnosis, CAD)系统能够从医学影像中找到疑似结节,给医生提供参考,一定程度上减轻他们的工作负担.

X光和CT是两种常见的医学影像,X光的肺结节检测对于医生来说难度较大,漏检率较高,漏检大多因为肋骨锁骨遮挡以及心脏等器官的重叠,导致X光片中的肺结节特征不明显,因此良好的X光片的肺结节检测系统能够提高肺结节的检出率.随着现代医学技术的发展,Computed Tomography(CT)逐渐成为肺癌检测的主要方法,CT不同于X光,为横断面图像,能够提供3维信息,对于小结节和一些隐蔽位置的结节具有更高的检出率.但是CT成本较高,放射剂量也较大,而且在一些欠发达的基层医院没有相关设备,X光片仍然在体检中占据着重要地位.

本文针对X光肺结节检测任务的特点,对CNN中的目标检测网络进行改进,得到了一个端到端的目标检测模型,相较于前人的研究,本文主要有以下贡献:

1)不同于当前X光主流的3步检测算法,本文使用目标检测网络来实现,包含较多的共享特征层,比提取候选区域然后再进行细分的方法有着更少的计算时间.

2)将肺结节检测结果的位置坐标信息,输入目标区域分类的子网络中,能够对结节位置进行一定约束,减少假阳性样本结果,表现超出了基础网络.

3)对于肺结节检测的回归框定义不严格的特点,使用对小误差更加不敏感的坐标回归的损失函数,最终在较低假阳性结果比例的情况下,取得了JSRT上的最佳结果.

专家共识推荐:建议视情况采用不同的切除方式,除TaG1/LG(低级别)肿瘤外,所有标本中都要求有逼尿肌组织。

CT中的肺结节都会存在于肺部可视范围内,不会有器官重叠的影响,所以在针对CT的研究中,肺部分割[9]是有必要的.然而不同于CT影像,如图1所示,由于隔膜等组织结构的重叠,导致有些结节不在分割得到的区域内,因此如果只检测分割出的肺部区域将会使一部分结节无法被检测到.

2 相关工作

2.1 X光肺结节检测

肺结节检测一直以来都是计算机辅助诊断技术的研究热点,但是大多数研究都是针对CT影像[2],前文也提到,CT影像相对而言容易得到比较令人满意的结果,X光片的肺结节检测任务相比CT有着更大的难度.但是胸部X线凭借着费用低廉,更低放射剂量的优势,在职工和学生体检中仍占有较高的比重,因此针对X光的肺结节研究依然有着重要意义.

目前的肺结节检测的CAD系统模型基本上都是图像处理算法和机器学习算法相结合,大多分为3个步骤[3, 4]:分割肺部可视区域;产生候选肺结节结果;减少假阳性结果.Wang C等[3]在肺部分割之前使用基于主成分分析(PCA)的方法降低肋骨遮挡对肺结节检测的影响,并使用扩展拉普拉斯高斯算子[5]提取候选区域;最后将人工特征和深度网络特征融合对候选区域进行分类.Li X等[4]提出的肺结节检测模型也用了基于PCA的方法在X光片中剔除肋骨[6],在最后的分类阶段,他们通过多特征融合并用支持向量机(SVM)来做最终的分类.采用这种流程的模型,每一个过程的性能都非常依赖于上一个步骤的结果,而且每一步都会一定程度上有几率降低模型敏感度.除此之外,这类方法相当于把候选区域单独取出,然后使用分类模型进行判断,会丢失一部分上下文信息,在锁骨手臂等部位容易出现假阳性结果,这也是采用这种流程的模型大都要做肺部区域分割的原因.

针对肋骨与肺结节重合的问题,除了前文中提到的无监督学习方法,Yang W[7]等人使用卷积神经网络CamsNet取得了更好的效果,有效降低了肋骨重合对检测结果的影响.

针对肺部区域分割问题,Dai W等[8]采用生成对抗网络的思想,用一个分割网络和一个判别网络对肺部区域和心脏区域进行分割,在有限的训练数据上取得了较好的效果.

图1 结节与肺实质分割区域Fig.1 Nodules and pulmonary segmented areas

本文第2部分阐述了相关研究工作.第3部分详细阐述本文提出的肺结节检测算法.第4部分为实验部分,首先将本文的方法与基本的目标检测网络进行对比,然后选出3个在JSRT上取得优异表现的研究成果与本文方法进行对比,然后进行讨论.第5部分总结全文并确定未来工作内容.

我们使用FROC曲线评价肺结节检测算法的有效性,曲线的横坐标是平均每张X光图像的假阳性结节数量(Mean False Positives),纵坐标为敏感度(Sensitivity),肺结节检测任务的目标是获得较高的敏感度,同时假阳性样本率也要保证较低,较多的假阳性样本会对医生产生误导,FROC曲线下的面积越大,说明模型性能越好.平均假阳性数和敏感度定义分别如公式(5)(6)所示:

2.2 目标检测网络

基于深度学习的目标检测算法目前分为两大类,分别为以Faster RCNN[12]为代表的两阶段检测器和Yolo[13]为代表的单阶段检测器.特征金字塔[14]结构提升了目标检测网络对小目标检测的性能,RetinaNet[15]通过Focal loss损失函数将单阶段检测器的准确率提升到了两阶段检测器的水平,同时保持了单阶段检测器的计算速度,由于其同样具有特征金字塔结构,使得对于小目标检测同样有着较优表现.

首尔君悦酒店为中国游客开通了通往明洞、梨泰院地区的免费班车。王子酒店在首尔站及机场大巴停车站提供免费接送的服务。首尔希尔顿酒店为中国游客开通了通往弘益大学的免费班车。

X光片的肺结节检测也属于对微小目标的检测,因此本文基于RetinaNet实现肺结节检测功能.因为肺结节只会存在肺部区域,而不会在手臂或者肩膀或者腹部,而且肺结节在胸部的每个位置并不是等概率出现的,因此针对这个特点,本文在分类子网络中融合矩形框的坐标和尺度信息辅助分类.实验结果表明融合结节位置和尺度相关信息对于肺结节检测有促进作用,性能超过了原网络.本文方法在公开数据集JSRT上平均每张图像4.5个假阳性结果时敏感度为92%,2个假阳性结果时敏感度为88%,在保证较低的假阳性率的情况下,获得了较高的敏感度,超出了前人的研究成果.

3 检测算法

3.1 图像预处理及算法流程

肺结节检测算法的输入图像是12位深的X光图像,因此在训练前不宜直接将其转化成JPEG格式的8位图片,那样会丢失数据的精度.

(1)

我们直接将原图用矩阵的形式读入,由于X光片的亮度集中在一个范围,为了增强图像对比度,对其按公式(1)的方式进行直方图均衡化,不但能够降低亮度变化的影响,而且将数据标准化到[0,1]范围内.其中L=4096,表示像素值范围,ni表示像素值为i的像素数量,n为像素总数,Ik就是像素值为k的像素经过均衡化后的结果.然后把图像矩阵变为3通道,存入磁盘中,供训练使用.

图2 算法流程图Fig.2 Algorithm flow chart

检测时,将DICOM格式的X光图像以矩阵的形式输入,经过数据预处理后,输入检测网络,输出为肺结节的预测结果,结果由外接矩形框(Bounding box,Bbox)和得分组成,同时对得分要事先设置一个阈值,当矩形框的得分大于阈值时输出,肺结节检测的流程如图2所示.

3.2 卷积神经网络

肺结节在胸片中呈现的是一个孤立的椭圆形高亮区域,因此具有较为明显的局部特征,但因为周围干扰以及尺寸和形态不一导致难以检测.卷积神经网络由于卷积核权重共享,而且每层都有多个卷积核提取图像特征,所以对于肺结节这种具有一定的共性特征的目标,经过训练能够使结节区域产生响应.检测任务在CNN的特征层上进行,由于CNN感受野的作用,使得输出层的一个像素对应着原图的较大一块区域,因此包含了上下文信息.肺结节检测虽然也是一个目标检测任务,但是有一定的区别,一般的检测目标本身具有一定的内部特征,例如人有躯干四肢等部位,而肺结节在X光影像中表现为孤立的近似为圆形的像素高亮区域,判断是否是肺结节依靠的是中心区域与周边区域的像素灰度对比,而且通过形状和周围纹理来区分出是否是肺结节,上下文信息尤为重要.CNN能够同时满足局部特征提取和保证上下文信息两个要求,因此CNN模型能够解决此问题.

由于肺结节相对于整幅图像来说尺寸较小,Faster RCNN[12]仅在卷积网络的最后一层上进行候选区域提取然后再分类,这种深层特征更加抽象,倾向于语义级的描述,因此会忽略一些微小结节.基于特征金字塔网络[14]的检测模型比较适用于小目标检测, 它将深层卷积层的特征图进行上采样,同时融合浅层卷积层特征,形成特征金字塔.金字塔顶端的特征图有着更大的感受野,更抽象的语义表示,底端的特征图有着更丰富的纹理等形态信息,能够表示更多细节.因此小目标在金字塔底部的特征图上进行预测,大的目标在金字塔顶部的特征图上预测,这样检测网络能够覆盖更大的尺度范围.因此在肺结节检测任务中,基于特征金字塔的网络能够对微小目标有着更敏感的响应.

针对同步交流发电机旋转整流器故障[11-12],拟考虑开路故障模式,即分为3大类:正常工作模式、单管开路故障模式和双管开路故障模式,具体见表1。

图3 卷积神经网络特征金字塔结构Fig.3 Feature pyramid structure of CNN

3.3 分类和Bbox回归子网络

目标检测网络中候选区域分类结果和矩形框回归都是独立进行预测的,虽然yolo系列[13, 17]的目标检测网络在输出层同时得到分类结果和位置信息,但是这两者之间并没有体现出因果关系.而肺结节检测和普通的目标检测任务有些区别,肺结节只会出现在一定的区域内,也就是说结节在图像中每个位置出现的概率是不相同的,而且结节的大小也会在一定的范围内,所以在分类子网络中加入位置和尺度信息能够对预测结果进行一定的限制,从而减少在不可能出现结节的位置如手臂或者肩膀上出现的假阳性结果.

传统外贸企业要想做好跨境电子商务,一方面需要国家的政策支持;另一方面需要企业自身的努力,方能在国际市场中取得成功。综述学者们的建议,主要有复合型跨境电商人才的培养、跨境物流的完善、跨境平台的选择、支付方式的选择、信用安全体系的完善等。

检测网络的结构如图4所示,此网络与特征金字塔的每一层对应,我们在判断当前区域是否为肺结节的时,加入矩形框的信息,其中一维的卷积操作都使用size=1,stride=1的卷积核.我们采用Faster RCNN[12]中的使用锚点(anchor)在原始图像上生成初步的候选区域,anchor的面积从162至2562像素大小,分别对应p3至p7的特征金字塔层.由于肺结节几乎都是圆形区域,因此设定anchor的长宽比为[0.8,1,1.25],为了使得尺度更加紧凑,每一个长宽比都有[20,21/5,22/5,23/5,24/5]不同的尺度,以较高的anchor密度,尽可能地覆盖所有的肺结节区域,每一个检测网络的anchor的数量为W*H*15,其中W,H分别为输入的特征图的宽和高.特征金字塔总共有5层,对应5个检测子网络,网络的输出为每个anchor对应的坐标大小以及得分.

坐标回归网络在训练时需要进行归一化,因为结节有大小之分,而且尺寸相差也比较悬殊,不能统一按照坐标差来衡量误差.因此,采用如下方法对检测网络的坐标输出进行变换:

珠江黄金水道的跨越式发展,首先得益于顶层设计的日臻完善。珠江航务管理局(以下简称“珠航局”)紧紧抓住部党组提出建设“第二条黄金水道”的历史机遇,围绕《若干意见》《规划纲要》以及《行动计划》三大顶层设计文件狠抓督办。截至目前,《行动计划》明确的62项重点任务中59项已正式启动,规划中的美好愿景正慢慢照进现实。

图4 检测网络结构Fig.4 Detection network structure

(2)

在科学技术部、住房和城乡建设部有关司局,中国BIM标委会、中国城市科学研究会BIM专委会的大力支持下,联盟开展机构和制度建设、标准研制、课题研究、行业交流、宣传推广等工作,创新运行机制,取得较好成效。

3.4 损失函数

训练检测网络的时候,所有的anchor中,有目标的仅占极小一部分,类别极度不平衡,因此采用focal loss损失函数:

鉴于RetinaNet在coco数据集和Pascal VOC数据集上的优秀表现以及其基于特征金字塔的特点,我们采用其作为本文基础网络结构,如图3所示,Conv1-Conv5分别为Resnet[16]的5个卷积层输出的特征图,p5由Conv5经过1*1的卷积得到,卷积核数目为256,p4由p5上采样并与Conv4经过1*1卷积后相加得到,p3与p4操作相同.而p6由p5经过3*3,步长为2的卷积核卷积所得,检测任务在特征金字塔每一层的特征图上进行.

其中(X1,Y1)为原图中矩形框的左上角坐标,(X2,Y2)为矩形框的右下角坐标,Wa和Ha为anchor的宽和高,数据集中的标签在网络训练时也同样按照公式(2)转化。

(3)

从表1中可以看出,在敏感度相同时,本文的方法能够带来更低的假阳性率.我们将候选区域得分的阈值设置为0.1,我们选择其中的一例样本,标注如图6所示.

我陡然意识到内心不安的另一个理由,我把跟叶霭玲的约会忘记了。她曾跟我说过,情人节去大华电影院看通宵电影,可是此时我却在这儿。虽然我清楚地知道今天是情人节,可是我装出一副忘记了的样子,所以我没有带来任何礼物,我说,你想要什么?

(4)

如前文所述,肺结节的矩形框并不是严格意义上的外接矩形,能够将肺结节区域包含进去,并且大小并没有差太多的都可以认为是正确的检测.在给anchor打标签的时候,我们也没有像普通的目标检测任务那样严格,因此坐标损失函数定义如公式(4).使用4阶SmoothL1损失函数可以使得损失值在矩形框坐标接近标签的时候更加平滑,使得整个网络更加专注于对anchor的分类结果.

酒店实行收支两条线,会计核算模块与现金收入模块存在着相互核对的作用,而成本控制对商品采购业务也起着监督作用。各业务流程中的各个岗位职责明确、资格要求清楚,对各个岗位日常工作范围作了十分详细的规定,使各岗位的工作制度化,不会因人员变动而影响,也有利于分清责任,便于对各个岗位工作进行考核和监督。

4 实 验

4.1 实验数据集

我们采用两个不同的数据集来验证算法的有效性.数据集A来自安徽省中医院的病例数据,数据集含有2954张带有肺结节的来自不同患者的胸部正面X光图片,尺寸在2048至3000之间,灰度深度为12位,每一个病例样本与由4位放射科专家标注的JPEG格式相同尺寸的标注图对应,每个病例样本中都至少有一个肺结节.

数据集B是公开的胸部正面X光数据集JSRT,此数据集是由CT影像诊断出的肺结节在X光图片中进行标注,包含257张X光图片,其中154张是带有结节的样本,而且每张图片仅有一个肺结节,尺寸都是2048*2048像素,灰度深度同样为12位.

4.2 评价指标

候选区域提取很难保证所有的结节区域都能够作为候选区域,Li C等[10]为了提高结节检测的敏感度,使用了较为传统的方法:多尺度滑动窗口,不仅保证了在这一步尽可能不丢失任何结节,同时多尺度也保证上下文信息.然后使用集成学习的方法,将候选区域变换成3种尺寸,输入3个不同的CNN模型,最后将3个模型的结果进行投票得到最终结果.这种集成学习的方法能够提升算法的效果.因此在公开数据集JSRT[11]上,取得了最高的敏感度94%.但是多尺寸滑动窗口的方法有些暴力,其中有过多的冗余计算.而且为了提高性能使用了3个CNN模型,导致计算量异常大.

(5)

(6)

但在训练的时候我们使用目标检测中常用的评估指标mAP(Mean Average Precision)来判断模型的性能,能够更加简单有效地评估实验结果.

4.3 数据扩充

两个数据集加起来只有3000多例样本,对于深度学习来说样本量并不充足,因此我们在原有样本的基础上进行了数据扩充.

在原图上,我们对图片进行了随机的水平镜像、小角度旋转,以及缩放等操作.除此之外,对于样本标签,我们也对其采用了0.1比例的随机平移和缩放,保证结节在bbox内部,而且尺度上又没有相差很大.这两种方式相结合,解决了数据样本不足的问题,同时也能够提高模型的泛化能力.

4.4 实验结果及分析

首先验证本文提出方法的有效性.我们以原始的RetinaNet作为比较对象,在数据集A上对比这两个模型的性能.两个网络模型的卷积层都使用ResNet152[16],图像预处理和数据扩充都与前文所述一致,而且两个网络所用的anchor参数与本文第3.3节一致.

训练时我们令公式(3)中的α=0.5,γ=2,公式(4)中的σ=4,使用Adam优化器,初始学习率=1e-4,batch size=2。每当mAP 4轮训练都不再提升时,将学习率衰减0.1,经过50个训练周期,取其中最优的模型。

我们随机从数据集A中抽取了148张有结节的样本作为测试集,其余2806个样本图片作为训练集,分别训练上述2个模型.最终得到两个模型的FROC曲线如图5所示.

图5中LSFNet(Location and Scale Information Fusion Network)是本文提出的融合位置尺度信息的卷积神经网络.我们从结果中可以看出,本文针对肺结节检测任务,提出的算法是有效的,优于RetinaNet,从曲线中我们选取敏感度为0.9和0.95的两个点进行具体比较,如表1所示.

其中,y是当前anchor的标签,p为神经网络的预测值,这个损失函数相当于对每个样本依据预测结果加了一个自适应权重,对于与目标相差较大的,损失权重较大,也就是说这个损失函数,能够让模型更加重视一些困难样本.

图5 数据集A上FROC曲线比较Fig.5 FROC courve compar i son on data set A

表1 RetinaNet与本文方法性能对比
Table 1 Performance comparison between
RetinaNet and our method

模型mAPFP per imageSens=0.9Sens=0.95RetinaNet0.79031.793.77LSFNet0.81991.623.28

图7为两个模型在同一分数阈值下的检测结果对比.我们的方法能够巧妙地避开肩膀上的假阳性样本,模型更加具有“大局观”,兼顾上下文信息,降低了假阳性样本数量.

2017年采集保山市昌宁县植烟区域土壤样品共230个,其中珠街彝族乡72个、柯街镇18个、耈街彝族苗族乡40个、翁堵乡14个、鸡飞乡21个、温泉乡7个、卡斯镇18个、更戛乡24个、大田坝乡16个。

图6 训练样本标注Fig.6 Training label

我们随机将数据集B中带有结节的154例样本划分为15份,进行交叉验证.使用数据集A上的训练模型进行参数初始化,然后将初始学习率设置为1e-5,学习率衰减机制同上,本文方法在数据集B上的FROC曲线如图8所示.

那段时间,日子是灰色的。钱海燕觉得自己的整个世界都坍塌了。婚后这一年,周启明将她宠得像个孩子,现在他倒下了,她只能扛起所有的事。

2.2.4 健康宣教 ①告诉患者和家属保持个人卫生,在治疗期间禁止性生活,不互穿内衣裤,不使用公共浴盆、浴巾。每天做好座便器的消毒,防止疾病传播和预防。②贵重物品交与家属管理,不随意打开约束器具、安全房门。③当患者有无理要求时,不要轻易答应,如出去买报纸、买彩票、要5元钱等,都会导致患者逃离病区不能按时接受治疗,而使疗程中断。

课题二:设计一台两级轴流式涡轮,设计点给定参数:进口流量53.69 kg/s,进口总压:1.72×106 Pa,进口总温:1 330 K,涡轮出口静压:4.54×105 Pa,出口总压5.11×105 Pa,滞止效率0.865,转速1.26×104 r/min,燃气绝热指数:1.33,燃气气体常数287.3。

图7 检测结果对比Fig.7 Comparison of detection results

下面我们在公开数据集JSRT上将本文方法与先前的研究进行对比,详细数据指标如表2所示.

到达阵地后,夏国忠指挥士兵们抓紧时间抢修工事。他让战士们利用地势地形,构筑起一条环山掩体,每隔几米挖一个防空洞,以防鬼子飞机大炮的轰炸。

图8 模型在JSRT上的FROC曲线Fig.8 FROC curve of model on JSRT

在前文中提到,通过肺实质分割来减少假阳性样本数量的方法对于器官重叠区域的结节无效,在JSRT中有154个有结节的病例,其中有14个结节在器官重叠位置,因此他们在最后检测的时候剔除了这14个样本,本文的方法就没有这个限制.

表2 方法性能对比
Table 2 Performance comparison of methods

方法敏感度mFP 数据集JSRTWang C[3]0.691.2140 of 154Li X[4]0.782.0140 of 1540.904.0140 of 154Li C[10]0.842.0All 0.944.6AllLSFNet(本文方法)0.820.91540.872.01540.914.01540.882.0All0.924.5All

Li C[10]的方法虽然在JSRT上敏感度最高可以达到0.94,但是本文的方法在较低假阳性样本率时的敏感度更高,据医生反馈,当每张X光片假阳性结果数目超过3个时,在实际应用中会给医生带来更多的困扰.而且他们基于滑动窗口生成候选区域,使用3个卷积神经网络来进行投票,计算量很大,相比之下我们的算法前面的卷积层在计算每个候选区域时是共享的,能够节省大量的时间.经我们实测,本文的方法在配置英伟达GTX-1080Ti的计算机上平均一张X光片的检测时长仅为0.17秒,时间优势非常明显.

从两个实验中能够看出,模型在数据集A上的效果要优于数据集B,这是因为数据集A由4位影像科专家手工标注的,而数据集B是经过CT诊断后,重新对应到X光图片中,由此看来,基于X光的肺结节检测,只适用于疾病的初筛,在日常体检中发现疑似问题,然后还是要经过CT进一步确认,毕竟在准确方面CT有着更大的优势.

5 总结与展望

本文针对X光肺结节检测任务的特点,基于目标检测网络RetinaNet进行了改进,在判断时融合了结节检测的位置和尺度信息,不需要事先对输入图片进行肺实质分割,既简化了算法流程,又起到了降低假阳性结果比例的效果.实验证明,融合的特征对于检测结果有帮助,而且本文方法在保证较高敏感度的同时,极大地降低了假阳性结果的比例,而且在器官重叠区域也能保证检测效果.本文算法与那些先取候选区域,再用CNN分类的方法相比,具有更好的时间复杂度.我们的方法在较低假阳性结果比例的情况下,在JSRT上获得了比之前研究更高的敏感度.

经过我们对未检出样本的复核,发现肋骨阴影会对检测结果产生负面影响.我们接下来将会重点研究肋骨剔除的算法,将其加入现有方法中,实现一个效果更优的X光肺结节检测系统.

猜你喜欢

X光结节卷积
记忆X光机(下)
记忆X光机(上)
体检发现的结节,离癌症有多远?
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
肺结节,不纠结
发现肺结节需要做PET/CT吗?
肺结节≠肺癌,发现肺结节如何复查?
仿生武器大揭秘
从滤波器理解卷积