基于改进U-Net网络的图像分割模型及训练方法与流程

文档序号:22738858发布日期:2020-10-31 09:20阅读:1063来源:国知局
基于改进U-Net网络的图像分割模型及训练方法与流程

本发明涉及视觉图像处理,具体涉及一种基于改进u-net网络的图像分割模型及训练方法。



背景技术:

图像分割是视觉图像处理的重要分支,在各领域中具有广阔的应用前景。由于人工分割的复杂性,目前已有大量用于图像分割的算法,如基于阈值的方法、马尔可夫随机场模型、聚类算法等。然而,上述传统算法仅针对特定图像形式,大多存在人为偏差。

与传统算法不同的是,深度学习可以从多层网络结构中学习目标特征,其网络中的卷积神经网络(convolutionalneuralnetwork,cnn)在各种图像处理问题上都有不错的表现。基于cnn基础上的全卷积网络(fullyconvolutionalnetwork,fcn)及在fcn基础上演变出的其他变体网络(如segnet、deeplab和u-net网络)在图像分割任务中都能获得了更好的效果。其中,segnet和deeplab网络架构必须要有大量的训练数据,否则很容易出现过拟合的现象,训练效果好,测试效果却不理想。对于图像数据集不丰富的领域(如医学领域),难以得到较好的分割结果。

现有的u-net网络可以充分利用图像的全局和局部细节,在数据集较小的情况下获得不错的分割效果,从而减少依赖大量的训练数据。u-net也是基于卷积层来构建的。如图1所示,u-net网络结构是具有对称结构的编译码网络。编码部分和译码部分的基本单元如图2所示,由两个3×3的卷积层连接。编码部分有四个相似的操作,每个操作都有两个3×3的卷积层和一个最大池化层,池化大小为2×2,步长为2。在每个最大池化之后,卷积层的深度将增加一倍。译码部分的主要作用是增大特征图的分辨率,以保证输出图像的大小与输入图像的大小相等。解码器也有四次操作,每个操作由一个2×2反卷积层和两个3×3的卷积层组成。在每个反卷积层之后,反卷积层的特征图将与编码部分具有相同分辨率的特征图进行拼接。最后,使用1×1的卷积层进行降维,生成最终的分割结果。u-net中所有3×3个卷积层都使用整流线性单元(relu)作为激活函数,最后1×1个卷积层使用sigmoid激活函数。但在分割目标大小不固定,目标与背景差异过大时,现有的上述u-net网络结构的分割效果难以满足需求。



技术实现要素:

发明目的:本申请的目的在于提供一种基于改进u-net网络的图像分割模型及训练方法,以解决传统u-net网络对于分割目标大小不固定以及目标与背景差异过大时分割效果不理想的缺陷。

技术方案:本发明提供了一种基于改进u-net网络的图像分割模型,模型采用编解码结构,包括:编码模块、解码模块、编解码连接层和多特征融合模块;

编码模块包括多个串接的编码单元,每个编码单元包括编码紧密块和下采样块;每个编码紧密块对当前编码单元的输入进行特征提取,得到对应的输出。该输出下采样后得到当前编码单元的输出,并将其作为下一编码单元的输入;

解码模块包括多个与编码单元一一对应的解码单元,每个解码单元包括上采样块和解码紧密块;每个解码单元的输入包括第一输入和第二输入,第一输入经上采样块进行上采样后与第二输入拼接后输入到当前解码紧密块,作为当前解码紧密块的输入;

编解码连接层用于连接编码模块与解码模块,对最后一编码单元的输出进行特征提取后,得到编解码连接层的输出,并将其输入至第一解码单元;

多特征融合模块包括上采样层和加性融合层;上采样层对各解码紧密块的输出进行对应的上采样后输入至加性融合层进行叠加,得到图像分割结果。

进一步地,第一解码单元的第一输入为编解码连接层的输出,第二输入为第一解码单元对应的编码单元中编码紧密块的输出;

其他解码单元的第一输入为上一解码单元的输出,第二输入为当前解码单元对应的编码单元中编码紧密块的输出。

进一步地,多特征融合模块的上采样层包括与各解码紧密块的输出分别对应的上采样块,用于将各解码紧密块的输出恢复至输入图像的大小,以供加性融合层进行叠加。

进一步地,编码紧密块与解码紧密块的结构相同,均采用紧密块;紧密块包括卷积块、过渡块,卷积块与过渡块跳跃连接;

卷积块包括多个卷积核相同的标准卷积层,用于对紧密块的输入进行逐层提取;每个卷积层的输入都与前面所有层的输出有关,在后卷积层的输入是在前所有卷积层的输入和前一卷积层的输出的拼接;

过渡块用于将卷积块中所有卷积层逐层提取的输出以及紧密块的输入合并。

进一步地,过渡块采用卷积核为1×1的标准卷积。

进一步地,采用紧密块作为编解码连接层。

本申请还公开了一种用于上述图像分割模型的训练方法,包括:

(1)将图像样本数据集按照预设的比例划分训练集、验证集和测试集;

(2)对模型权重进行初始化,利用训练集对初始化后的模型进行迭代训练,不断更新模型的权重,得到最新权重的模型;

(3)利用验证集对最新权重的模型进行验证,继续更新模型的权重,对已训练的权重进行调整,直至模型收敛,将此时的模型参数作为最终的模型参数用于图像分割。

进一步地,在上述方法中,采用he正态分布初始化方法来进行初始化网络的权重,初始权重满足均值为0,标准差为的正态分布产生,其中x指权重矩阵中元素的数量。

进一步地,训练方法的损失函数ln表示为:

ln=λlbce+(1-λ)(1-ldi)

其中,λ(0≤λ≤1)为ln的参数,lbce为交叉熵损失函数,ldi为骰子损失函数,其表达式分别为:

其中,n为图像像素点的个数,gi为正确分割图像的像素值,ti指训练出的图像的像素值。此处训练使用了训练集和验证集,整个训练过程,先在训练集中训练,再将训练得来的权重在验证集中调整,以避免训练过程中过拟合的现象。

进一步地,权重更新规律表示为:

其中,表示现在第k层的权重,表示上一次训练时的第k层权重,η表示学习率,表示损失函数对第k层权重求偏导。

有益效果:与现有技术相比,一方面,本申请公开的模型可通过紧密块提高特征提取的能力,同时多特征融合模块能够提高特征提取的准确性。另一方面,本申请还提供可以处理目标与背景不平衡的损失函数,提高模型的适用范围和图像分割效果。

附图说明

图1为现有u-net网络模型的整体结构示意图;

图2为现有u-net网络模型的基本单元结构示意图;

图3为本申请的图像分割模型的整体结构示意图;

图4为本申请的图像分割模型中紧密块的结构示意图;

图5为本申请的图像分割模型中多特征融合模块的结构示意图;

图6为isbi-2012的原始图片、正确分割效果图和三种算法的分割效果图;

图7为drive的原始图片、正确分割效果图和三种算法的分割效果图;

图8为isic-2018的原始图片、正确分割效果图和三种算法的分割效果图。

具体实施方式

下面结合附图和实施例对本发明做进一步描述:

本申请提供了一种基于改进u-net网络的图像分割模型,如图3所示,模型采用编解码结构,包括:编码模块、解码模块、编解码连接层和多特征融合模块;

在本实施例中,编码模块包括4个串接的编码单元,每个编码单元包括编码紧密块和下采样块;每个编码紧密块对当前编码单元的输入进行特征提取,得到对应的编码稠密输出;编码稠密输出经过下采样块进行下采样后得到当前编码单元的输出,并将其作为下一编码单元的输入。

解码模块包括4个与编码单元一一对应的解码单元,本申请中第i编码单元与第n+1-i解码单元一一对应,其中,n表示编码单元(解码单元)各自的数量。本实施例中,编码单元与解码单元的数量均为4个,其中,第一解码单元与第四编码单元对应;第二解码单元与第三编码单元对应;第三解码单元与第二编码单元对应;第四解码单元与第一编码单元对应。

编解码连接层连接第四编码单元与第一解码模块,对第四编码单元的输出进行特征提取后,得到编解码连接层的输出,并将其输入至第一解码单元;

每个解码单元包括上采样块和解码紧密块;每个解码单元的输入包括第一输入和第二输入,第一输入经上采样块进行上采样后与第二输入拼接(concatanate)后输入到当前解码紧密块,作为当前解码紧密块的输入。具体地,对于第一解码单元而言,第一输入为编解码连接层的输出,第二输入为第一解码单元对应的编码单元中编码紧密块的输出;对其他解码单元而言,第一输入为上一解码单元的输出,第二输入为当前解码单元对应的编码单元中编码紧密块的输出。

在本实施例中,编码紧密块、解码紧密块与编解码连接层的结构相同,均采用紧密块(denseblock),如图4所示,紧密块包括卷积块、过渡块,卷积块和过渡块跳跃连接;

卷积块包括多个卷积核相同的标准卷积层,用于对紧密块的输入进行逐层提取;每个卷积层的输入都与前面所有层的输出有关,在后卷积层的输入是在前所有卷积层的输入和前一卷积层的输出的拼接。本实施例中将标准卷积层的数量设置为3个,卷积核的大小设为3×3,将网络性能调整至优选状态。

为避免过多的特征图影响网络的训练速度,在紧密块中加入一个过渡块来减少特征图的数量,采用1×1的标准卷积和丢弃层作为过渡块,将在前的所有特征合并。将卷积块中所有卷积层逐层提取的输出以及紧密块的输入拼接后输入过渡块,将通过过渡块中1×1的标准卷积后的输出作为紧密块的输出。丢弃层的引入,在完成前面的所有卷积和拼接操作后,随机丢弃学习到的一部分,作防止过拟合。

本实施例中,紧密块中所有卷积层的激活函数都是整流的线性单元(relu)激活函数。然而,为了区分明显的目标和背景,在输出层使用了sigmoid激活函数。与传统的两层3×3卷积的u-net相比,紧密块更容易获得更多的特征,并且不需要使网络变得更深,解决了小训练数据集过拟合的问题,促进了网络内信息的传播,加快了收敛速度。

多特征融合模块(multi-scalefeaturesfusionmodule)如图5所示,包括上采样层和加性融合层;上采样层包括与各解码紧密块的输出分别对应的上采样块,用于将各解码紧密块的输出恢复至输入图像的大小,以供加性融合层进行叠加(add),得到图像分割结果。本实施例中,第四紧密块的输出与输入图像大小一致,而将第三、第二、第一解码紧密块的输出分别需经过一个、两个、三个相同的上采样块才能恢复至与输入图像大小一致。通过多特征融合模块的叠加,将低层紧密块得到的包含更多位置和细节信息的特征图与高层紧密块得到的包含更多语义信息的特征图叠加,提高学习的准确性。

本申请还公开了一种用于上述图像分割模型的训练方法,包括:

(1)将图像样本数据集按照预设的比例划分训练集、验证集和测试集。具体地,将图像样本数据集进行五等分,随机选取一份作为测试集,用于后续对模型进行测试;将剩余的数据集以4:1的比例划分为训练集和验证集。

(2)对模型权重进行初始化,利用训练集对初始化后的模型进行迭代训练,不断更新模型的权重,得到最新权重的模型。具体地,采用he正态分布初始化方法来进行初始化网络的权重,初始权重满足均值为0,标准差为的正态分布产生,其中x指权重矩阵中元素的数量。

(3)利用验证集对最新权重的模型进行验证,继续更新模型的权重,对已训练的权重进行更新,直至模型收敛,将此时的模型参数作为最终的模型参数用于图像分割。

常用的交叉熵损失函数(crossentropylossfunction)优点是收敛速度快,因为最后一层权重的梯度与激活函数的导数无关,只与输出结果与真实结果的差值有关。此外,由于反向传播是相乘的,所以整个权重矩阵的更新将会更快。但是,每个梯度损失函数的返回对每个类别的关注是相同的,因此很容易受到类别不平衡的影响。也就是在目标和背景相差较大的情况下,交叉熵可能无法分割出目标。但是,在这个情况下,骰子损失函数(dicelossfunction)仍然可以执行训练损失函数,但是骰子的梯度是不稳定,可能导致训练曲线不可靠。因而,为了兼顾训练过程的稳定性和解决类别不平衡的问题,本申请结合了交叉熵损失函数和骰子损失函数的优势提出一个新的损失函数ln,其表达式如下:

ln=λlbce+(1-λ)(1-ldi)

其中,λ(0≤λ≤1)为ln的参数,通过大量的实验,设置λ=0.1,lbce为交叉熵损失函数,ldi为骰子损失函数,其表达式分别为:

其中,n为图像像素点的个数,gi为正确分割图像的像素值,ti指训练出的图像的像素值。此处训练使用了训练集和验证集,整个训练过程,先在训练集中训练,再将训练得来的权重在验证集中调整,以避免训练过程中过拟合的现象。

权重更新规律表示为:

其中,表示现在第k层的权重,表示上一次训练时的第k层权重,η表示学习率,表示损失函数对第k层权重求偏导。

仿真验证:

为验证本申请模型的有效性,本申请采用医学图像数据集进行图像分割仿真实验,并对比本申请的模型(denseunet)与现有其他图像分割模型(u-net、multiresunet)的分割结果来说明本申请模型的有效性。首先介绍实验中使用的数据集。与非医学图像数据集相比,医学图像数据集的获取面临着诸多挑战,如昂贵的图像采集设备、复杂的图像获取方法、耗时的专家注释和隐私问题等。这些都增加了医学影像数据集开发的难度。因此,目前只有少数公开的医学图像数据集。而且每个数据集只包含少量的图像。此外,每个数据集都有其独特的挑战,因为它们的分割对象不同。为了评估本申请模型的有效性,我们选择了来自不同科研机构的三个医学图像数据集进行了实验。

第一个数据集是电子显微镜图像数据集isbi-2012。该数据集是果蝇一龄幼虫的腹神经束的图片的连续切片(sstem)。它只包含30张图片,大小为512×512。这个数据集的难点是很容易出现过度分割图像的现象,因为要分割的目标遍布整个图像。

第二个数据集是一个视网膜图像数据集。该数据集包含40张大小为565×584的图像,是具有45度视场(fov)的佳能cr5非散光的3ccd相机所拍摄的。所有的分叶脉管由经验丰富的眼科医生标注。该数据集的难点在于目标形状复杂,微细毛细血管对比度低。

第三个数据集是皮肤镜图像数据集。该数据集包含2594张不同程度皮肤损伤的图像,是由isic-2017数据集和ham10000数据集组合而成。每个原始医学图像分割的正确效果图都由专业专家进行了标注的。该数据集中的图像分辨率不同,为了方便训练,我们统一将尺寸调整为256×192。通过对该数据集的分析,我们发现皮肤镜图像中存在大量干扰,如毛发、血管等。其次,病变区域与周围皮肤的对比度较低。最后,黑素瘤通常有不同的大小、形状和颜色,这取决于皮肤状况,这对网络模型的稳健性是一个很大的考验。

使用python3编程语言和keras框架得到本申请的图像分割模型,实验所用的设备是一台装有ubuntu16.04.3系统的linux服务器,该服务器配备了intelxeone5-2695cpu、220gb内存和nvidiateslam40(12gb)gpu。

在模型训练过程中,选择adam优化器作为denseunet的优化器,并将最高训练次数设置为150。将模型的初始学习率设置为0.001,并动态地将其降低0.1倍。

图6~图8中(a)(b)(c)(d)(e)分别表示原始图像、标准分割效果以及u-net、multiresunet、denseunet三种模型针对三个医学图像数据集的分割结果,从图6~7可以看出,u-net的分割效果尚可。然而,由于u-net学习了太多的冗余特征,噪声点总是很明显。multiresunet在分割边界上也有很好的分割效果,但是它过于关注边界,因此忽略了分割目标的整体特征。虽然denseunet不能得到一个完美的分割结果,但是分割图像的边缘相对清晰,分割结果与真实分割效果图基本重合。从图8中可以清楚地看到,denseunet的边缘更加清晰,并且与标准分割效果情况非常吻合。与其他两种网络架构相比,可以看出denseunet比其他架构保留了更多的细节。

为了定量分析denseunet的性能,在本发明中,我们使用了两个常用的评价指标交并比(jaccardindex,ja)和骰子系数(dicecoefficient,di)。ja和di的表达式如下:

其中,tp表示正确效果图与训练的效果图的像素值一致的个数,fp与tn的和是指正确效果图与训练的效果图的像素值不一致的个数。

denseunet、multiresunet和u-net网络训练三种医学图像数据集所得的性能指标如表1所示。从表1可以看出,对于ja指标而言,denseunet的表现明显优于其他两个网络。对于电子显微镜图像,denseunet相对于multiresunet有7.4719%的提升,相对于u-net有10.8212%的提升。对于皮肤镜图像,denseunet也比multiresunet和u-net有更好的性能,分别提高了5.8599%和12.2715%。对于视网膜图像,仍分别取得了8.9279%和12.8947%的相对提升。对于di评价指标,denseunet也优于其他网络架构。对于电子显微镜图像,我们可以看到denseunet比multiresunet和u-net都有更好的性能,分别有10.5486%和8.8393%的相对提升。视网膜图像的相对提升分别为3.6037%和6.0528%。对于皮肤镜图像,u-net与denseunet处于同一水平,但在这种情况下,denseunet的性能稍好一些(相对提升了1.6656%)。但denseunet还是比multiresunet提高了11.7016%。综上所述,本文提出的denseunet在两个评价指标上都达到了最好的效果。

表1

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1