当前位置:首页 期刊杂志

结合深度残差网络的SSD肺部结节检测方法①

时间:2024-07-29

汪 洋, 李建锋

(吉首大学信息科学与工程学院,湖南 吉首 416000)

0 引 言

肺部结节的诊断是肺癌早期临床指征的重要指标[1],传统方法的肺部结节诊断方式主要是通过医生的临床经验对患者每一张肺部CT影像进行甄别来判断肺部结节的大小和有无,但是一般情况下,患者完整的CT图像数量较多,工作量较大,而且肺部结节所占区域较小,医生排查的难度较大,极易造成漏诊和误诊[2],所以基于计算机辅助技术的医疗诊断影像十分必要。目前,基于计算机诊断技术肺部CT图像病症的诊断大体步骤为肺部分割、结节检测、结节分割、结节分类,随着卷积神经网络的提出,基于深度学习方法的肺部CT影像计算机诊断技术得到了进一步的发展[4],如何通过计算机信息辅助技术提高患者肺部影像病症的精度和效率成为众多科研人员关注的热点问题。在two-stage目标检测方法中RCNN(Region CNN:RCNN)[3]打开了目标检测的大门后,文献[6、7]在RCNN基础上分别提出 Fast RCNN、Faster RCNN改进了RCNN算法,对肺部结节的检测提升了一定的准确率,但检测速度方面有待提升[8];随着one-stage目标检测方法的发展, YOLO[9]算法提升了目标检测的速度,但是对目标比较密集的区域,容易出现漏检以及检测错误的情况。文献[11]提出传统SSD(Single Shot MultiBox Detector:SSD)算法在小目标检测上的准确度不理想,实际应用中对于直径在5mm-30mm之间的肺部结节小目标,检测更加困难。针对肺部CT影像肺部结节的检测问题,结合前人的工作基础,提出结合深度残差网络的SSD算法,改进传统SDD算法在检测精度方面的性能。

1 方法介绍

1.1 卷积神经网络

卷积神经网络(Convolutional Neural Network,CNN)最先是由学者Hubel和Wiesel提出的,其主要结构有卷积层(convolutional layer)和池化层(pooling layer)[10]。学者 K.Fukushima提出的新识别机实现了该网络,随后,许多的研究人员对于神经网络进行了不断地改进,其中最具代表性是"改进认知机"的提出。该网络对二维图像的特征提取非常有效,目前广泛用在图像处理的领域[15]。如图1所示含有一个隐藏层的卷积神经网络单元:

图1 含有一个隐藏层的卷积神经网络单元

根据上图的网络单元可以得到:

(1)

(2)

(3)

(4)

其中:a为隐藏层的输出,f为激活函数,W为权重参数,x为网络单元的输入,b为输出的偏置,h为网络单元的输出,一个完整的卷积神经网络模型是由多个图一所示的网络单元构成的。这样使得网络的规模可以通过实际的问题来决定,增加了网络的灵活性。

1.2 目标检测算法

目前为止,在目标检测中运用深度学习的算法主要有以下两种:

1one-stage:均匀的在图片上的不同位置进行密集的采样,然后使用不同的尺度与宽高比对目标进行标记,最后利用卷积神经网络提取相应的特征后直接进行分类与回归,这类算法在检测速度上非常快,具体算法流程如图2所示:

图2 one-stage目标检测算法流程

(2) two-stage:采用启发式的方法产生许多大小不同稀疏性的候选框,然后对于这一系列候选框进行分类与回归。具体算法流程如图3所示:

图3 two-stage目标检测算法流程

1.3 SSD目标检测算法

SSD[11]是Wei Liu在ECCV 2016上提出来的目标检测算法,它是基于一种端到端的思想,SSD不但结合了上下文的信息,而且采用不同大小的特征图进行位置回归和Softmax分类。使得目标检测不容易漏检,提高了模型的准确性。

SSD先验框的设置是借鉴了Faster RCNN中的anchor机制,在每一个单元生成的先验框上,都会得出一系列的检测值。对于每一个边界框,都会得到两个信息,首先是每个类别的置信度,其中SSD算法是将背景也当做一个类别。其次可得到边界框的位置,其中包含边界框所在的中心坐标以及它的宽高。SSD设置的默认框的尺寸是按照特征图的大小线性递增的,具体计算公式如式(5):

(5)

其中表示Smin最底层的尺寸为0.2,Smax表示最高层的尺寸为0.9。至于默认框的宽高比SSD提供了5种不同的比例:

ar={1,2,3,1/2,1/3}

(6)

所以每个默认框的宽高尺寸计算公式分别为:

(7)

(8)

(9)

因此,在每一个特征图上都会出现6种不同的默认框,比例都是不相同的,这样模型的检测就可以涵盖更多的不同大小的物体,对于图片中待检目标密度较大时也有较好的效果。

SSD的损失函数主要是由物体类别的置信度误差和位置误差的加权和组成的,其表达式如下:

(10)

式中:x表示是否含有目标,c表示置信度,l表示预测框,g表示真实框,Lconf表示置信度损失,Lloc表示定位损失,N为匹配的默认框的数目,α为权重参数。

SSD算法在VOC数据集上表现出较好的检测性能,但是对于图片中的小目标的检测就会存在漏检的情况,主要的问题是由于待检的小目标浅层特征分辨率更高,相关特征更容易表达,因此得到的特征信息更加完全,然而SSD算法是检测和分类同时进行,在这个过程中会把一些IOU较小的过滤掉,所以检测的精度表现不佳。

2 融合深度残差网络的SSD目标检测算法

2.1 问题描述

引入了一种迁移学习的方法改进传统的SSD方法,解决传统SSD方法在肺部CT影像细小肺部结节检测效果不好的问题。迁移学习[14]实质就是在源域中找到与目标域相似的数据,通过把这些数据的权值进行适当的调整,使得调整后的新的数据与目标域的数据能够进行匹配,然后进行训练学习,得到适用于目标域的模型。使得模型在微调之前具有更高的起点,在训练过程中模型的收敛性更强。

通过迁移学习初步确定了网络的超参数的权值之后,然后改进SSD算法的主干网络,最初的SSD的主干网络采用的是VGG16[12],但是对小目标检测网络层数还是太浅,算法提取目标特征不够充分,但是盲目的增加网络的层数会使模型产生梯度弥散和梯度爆炸,这里引入一种参数训练较好的ResNet152[13]模型,解决VGG16网络层数不够的问题,更好的提取较小的肺部结节的信息,并消除梯度弥散和梯度爆炸的问题。

2.2 算法基本框架介绍

残差网络[12]的思想最早是由Kaiming He在2016的CVPR会议上提出来的,它的基本思路就是存在一个名为M的模型,它的最优网络是N层,那么就可以构造一个更加深的网络模型,在其最后几层的网络的输出相当于模型M的第N层的输出的恒等映射(Identity Mapping),就可以取得几乎一致的结果。然而,相对于较为浅层的网络,更深的网络有着更好的效果,ResNet152模型就是深层网络,所以需要引入残差网络易于训练。

ResNet152主要是由许多的残差单元构成的,如图4所示。假设该残差单为第l层,其的映射结果为:

图4 残差单元

H(xl,wl)=F(xl,wl)+xl

(11)

其中:xl为第l层的输入,Wl是第l层的参数。

那么,第l+1层的输入为:

xl+1=H(xl,wl)

(12)

所以可以得到:xl+1=F(xl,wl)+xl,通过不断地的代入该式子:

xl+2=xl+1+F(xl+1,wl+1)=xl+F(xl,wl)+F(xl+1,wl+1)

(13)

最终可以得到通项式:

(14)

同样,在反向传播过程中,假设网络的为ε,利用链式求导法则可以得出:

(15)

通过改进SSD算法中的主干网络,引入ResNet152网络构成一种新的网络模型,其模型结构如图5所示。通过主干网络中的一系列的卷积层和池化层,不断的提取肺部切片上的肺结节特征生成预测框,最终生成的预测框就达到8732个,通过非极大值抑制可以删除高度冗余的预测框,使得保留下来的预测框逼近真实的目标。因为该模型的网络较深,对于较小的肺部结节的信息得到更好的学习,使得检测的结果能够更加的准确。

图5 融合深度残差网络的SSD目标检测算法模型结构

3 数据的预处理

使用的是数据集是LUNA16,其中包含了大量的由多个轴向切片构成的肺部CT影像,其中每个CT影像的轴向切片数量会有所不同,这与扫描机器的种类,扫描设置的厚度以及患者的不同有关。整个CT影像是一个三维图像,它是由多个数量不同的二维图像堆叠而成的。其中的一个二维切片如图6所示。

图6 肺部切片

为了使得模型得到更好的数据,加快训练的速度以及检测的精确度,需要对数据进行预处理处理操作,避免某一组数据的特殊性对实验结果造成干扰。所以在肺部CT切片中需要得到带有肺结节的肺实质。在这个预处理过程有标准化像素值,确定肺部的实际边界,取出最大的连通区域,进行腐蚀、膨胀等操作,最后得到肺实质,结果如图7所示,具体的操作过程为:

1图中a为原始的肺部切片,首先对其进行二值化处理,用于区分肺部区域与其他区域,以便于所设的阈值能够明显的区分肺部和其他组织,得到图7(b)。

2据每一个区域的边界框的大小来确定肺部的边界,将图7(b)的白色区域以及噪声区提取出来,对于图像边缘位置的噪声产生的黑色区域通过将其值设置为0来消除,保留最大的两块连通区域,如图7(c)所示。

3对于图7(c)的肺部图像中会有许多的空洞气孔,可以通过腐蚀与膨胀来进行消除,可以得到肺部掩码,然后提取出肺实质,如图7(d)所示,最终得到的肺部图片如图7(e)所示。

图7 数据的预处理

4 实验结果与分析

本文主要从算法敏感度、假阳性率等方面进行分析

使用的数据集为公开的LUNA16数据集,其中包含的肺部CT有888例,总共的肺部结节有1186个。对于该模型输出的每一个候选肺结节,计算出出肺部结节的距离,通过与标注文件进行比较,当该距离小于标准结节半径时该肺结节视为真阳性(true positive,TP),反之视为假阳性(false positive,FP)。当参考标准中有肺结节被漏检时该结节被视为假阴性(false negative,FN)。敏感度(sensitivity)是指在判断阳性的样本中,其真实值为阳性的概率。计算公式如式(16):

(16)

表1比较了两种网络模型进行检测的敏感度与假阳性率。实验数据结果表明本方法无论在敏感度和假阳性率上都要优于VGG16。本方法加深了网络的深度,在肺部结节的细节特征提出上更加全面,所以在检测的过程中有较好的表现。

表1 本方法与其他检测算法的比较

5 结 论

将残差网络与传统的SSD算法结合,并且加大了网络的深度,通过对数据集中的CT图像进行预处理操作,从而得到肺部的实质,运用迁移学习的方法,快速的得到检测的结果,使得模型对于肺结节有较高的检出率。也进一步说明了基于深度学习的目标检测在肺部结节上的有效性和实用性。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!