掌桥专利:专业的专利平台
掌桥专利
首页

一种面向稀疏性目标的弱监督图像分割方法

文献发布时间:2024-04-18 20:01:55


一种面向稀疏性目标的弱监督图像分割方法

技术领域

本发明涉及机器视觉技术领域,具体为一种面向稀疏性目标的弱监督图像分割方法。

背景技术

随着人工智能在各行各业的应用,科技将我们的生活变得越来越方便。机器视觉系统,作为机器与真实世界进行交互的媒介,在人工智能的发展中越来越受到研究人员的重视。随着计算机显卡等硬件系统的发展,深度学习在计算能力提高的情况下迅速发展。基于深度学习的算法在计算机视觉的分类、检测、分割等很多领域都获得了很好的效果,推进了智能时代的步伐。目前,较为成熟的深度学习算法大多数都是监督式的,监督式的深度学习算法依赖于标注数据集,然而数据集的标注是非常耗时、成本较高的,并且在一些真实场景下是难以做到的。因此,弱监督和无监督的深度学习方法越来越受到关注。

弱监督的图像分割算法由于不需要大量的人工标定成本,越来越受到研究人员的重视。但也正是缺少了标记,弱监督的分割算法能够获得的真实信息也更少。为了能够给弱监督分割方法输入更多的信息,很多情况下会人工生成带有标记的训练数据,或使用先验信息指导算法的训练。这种利用数据本身特性的弱监督图像分割算法获得的信息更多,引起了很多相关研究人员的关注。

实际场景中,如图1所示为MVTecAD中的部分工业场景下图像分割示例。目标区域具有未知性和稀有性的特征。稀有性体现真实场景中无法大量获得带有标记的样本,未知性则体现在训练数据集无法包含所有情况的数据。也正是这两个特性,使得监督式算法模型使用较为困难,需要大量数据作为支撑。虽然目标区域具体的先验难以获得,但是一般化的先验信息也可以用于指导模型训练。

稀疏性的目标区域广泛存在于工业领域中,工业场景下背景区域一般较为固定,可以将背景区域作为训练的标签,基于此,基于生成模型的弱监督图像分割非常适合,即在训练阶段学习背景区域的分布,通过对背景图片进行重建,完成图像分割。基于生成模型的弱监督图像分割方案为了提高模型的重构特性,会人工生成目标区域,合成带有标记的训练样本。但是人工生成的目标区域和真实的目标区域本身具有差异,因此训练出的模型会产生过拟合现象,过拟合会导致目标区域也被重构,无法分辨目标区域和背景区域。在这样的背景下使用生成模型完成弱监督图像分割是值得研究的问题。

发明内容

针对上述问题,本发明的目的在于提供一种面向稀疏性目标的弱监督图像分割方法,通过判别子网络衡量目标区域与背景区域的距离,增强模型的鲁棒性,减少过拟合现象;同时针对目标区域的稀疏性先验,设计了稀疏性损失函数作为正则项,进一步减少模型训练过程中的过拟合现象。技术方案如下:

一种面向稀疏性目标的弱监督图像分割方法,采用基于生成模型的稀疏区域分割算法,所述算法包括生成子网络和判别子网络;

生成子网络采用GAN的架构,用于完成图像重构;通过生成损失函数描述生成子网络在训练过程中的优化目标,生成损失函数包括生成器损失函数和判别器损失函数;

判别子网络与生成子网络一起训练,为生成子网络提供判别信息的同时,通过对比重构图像与原始图像的特征,完成对目标区域的像素级分割;通过判别损失函数描述判别子网络在训练过程中的优化目标,判别损失函数分包含稀疏性损失函数和分割损失函数;

处理步骤如下:

步骤1:样本合成

采用模拟目标区域的方式,生成偏离背景分布的目标区域,人工合成带有标签的样本,从而获得带有标签的训练样本;

步骤2:图像重构和判别输出

图形重构:完成对输入图片的重构,对背景区域的学习;

判别输出:通过对比重构图片和输入图片的特征信息,学习重构空间与原始空间之间的差异,完成输出目标区域像素级分割结果。

进一步的,所述步骤1具体包括:

步骤1.1:以背景图片和随机图片集为样本合成的基础,将随机图片中的区域看作偏离背景区域的目标区域;

步骤1.2:使用柏林噪声发生器生成各种类型的目标区域,构建目标区域掩码图;

步骤1.3:从随机图片集中选择一张图片,分离出对应掩码图的区域,作为合成样本的目标区域I;

步骤1.4:将人工生成的目标区域与背景图片进行融合,得到带有标签的训练样本I

I

其中,β为融合中的不透明参数,⊙为元素乘操作,I

步骤1.5:对背景图片进行数据集增强,得到背景图片、合成图片和目标区域掩码图一一对应的训练数据集。

更进一步的,所述生成子网络采用的skip-GAN的生成器采用编码解码器的结构,首先使用编码器对输入进行特征提取,将特征映射到隐藏空间中,得到隐变量z;随后解码器使用转置卷积的操作对隐变量进行上采样,最终输出与输入大小相同的重构图片;且生成子网络只将编码器的最后一层与解码器进行特征融合;

所述判别子网络使用深度残差网络ResNet对输入进行下采样,提取输入图片特征;对底层特征进行上采样,在不断上采样的过程中进行特征融合,通过分析不同尺度的特征信息,完成对目标区域的分割。

更进一步的,所述深度残差网络ResNet包括一个卷积单元和四个残差单元;每个下采样模块都是由多个卷积层和残差模块组合而成,用于提取输入图像的高级特征;每经过一个残差单元,特征图的分辨率缩小2倍,根据输入图片尺寸,最后一层输出特征图尺寸为2x2upsample,包括了一个通道叠加的卷积操作和一个转置卷积上采样操作。

更进一步的,所述生成损失函数具体包括:

1)生成器损失函数

生成器优化的主目标为生成与输入图像类似的图像,次目标为与判别器形成对抗,在对抗的过程中提高生成性能;具体如下:

用均方误差损失来衡量两个图像的相似程度,均方误差损失函数为:

其中,p

用图像质量损失函数SSIM衡量重建图像和原始图像相似性,SSIM损失函数为:

其中,μ

则重建误差损失函数为:

其中,X为输入图像,

用均方误差描述隐空间变量的误差损失函数L

其中,z为原始图像对应的隐变量,

用对抗损失函数L

所示:

其中,f(X)为原始图像在判别器最后一层输出的特征向量,

则生成器总体的损失函数L

L

其中,λ

2)判别器损失函数

用二分类交叉熵损失函数定义判别器损失函数,如下式所示:

其中,t为输入图片的真实标签,

更进一步的,所述判别损失函数具体包括:

1)稀疏性损失函数

稀疏性损失函数利用目标区域的稀疏性先验作为优化目标,指导判别子网络的学习;判别子网络的输出掩码图,对图像中所有的像素点进行分类,属于目标区域的像素值会被赋值为1,背景区域的像素值会被赋值为0,并将输出中属于目标区域的像素点视为激活状态,反之视为抑制状态;根据目标区域的稀疏性先验特征,将输出掩码图的平均激活度

其中,m

则稀疏性损失函数L

其中,M为判别子网络输出的掩码图;

2)分割损失函数

分割损失函数用于描述判别子网络的分割性能,优化输出掩码图与真值图之间的差距;引入焦点损失函数:

其中,y为预测值,

则分割损失函数的定义为:

其中,

结合稀疏性损失函数L

L

其中,λ

更进一步的,模型训练时依次轮流训练生成器和判别器,即固定判别器,训练生成器;固定生成器,训练判别器;

训练流程为:

S1:使用柏林噪声和随机图像集人工合成带有标记的训练样本,即重建图像

S2:初始化生成子网络和判别子网络的网络参数,设定迭代总次数U,设定当前迭代次数u=0;

S3:若u

S4:将人工合成的样本

S5:将重构图像和原始图片送入判别器D中,计算D的损失函数L

S6:使用ADAM优化器更新判别器D参数;

S7:将人工合成的样本

S8:将重构图像与原始图片进行通道叠加,送入判别子网络;

S9:根据子模块的输出,分别计算重建误差损失函数L

S10:使用ADAM优化器更新生成器G和判别子网络参数;

S11:直至达到迭代总次数,结束训练。

本发明的有益效果是:

1)本发明的SSBG算法结构上采用GAN和AE结合的方式,包括生成子网路和判别子网络两个部分,在训练阶段生成子网络学习背景图片的分布,将输入图像进行重构,判别子网络学习对比重构图片和输入图片的特征,从中分割出目标区域。在测试阶段,目标区域不会被生成模型重构,判别子网络会将重构图片和输入图片差别较大的区域认为是目标区域。并使用SSIM损失函数,提高重建子网络的重建性能。

2)本发明的SSBG算法使用柏林噪声生成稀疏性目标区域,通过图片融合构成训练数据集,不需要进行人工标定即可获得像素级标签。

3)本发明在损失函数方面,针对稀疏性特性设计了基于KL散度的稀疏性损失函数,作为正则项,限制了分割输出的掩码图激活度,限制了目标区域的面积,为模型提供了目标区域的先验信息,减少了模型的过拟合,提升了模型的泛化性和分割精度。

附图说明

图1(a)为MVTecAD中瓶子的图像分割示例。

图1(b)为MVTecAD中木板的图像分割示例。

图1(c)为MVTecAD中毛皮的图像分割示例。

图2为本发明SSBG算法流程示例。

图3为本发明样本合成过程流程图。

图4为本发明SSBG整体结构图。

图5为生成子网络结构图。

图6(a)为判别器损失曲线图:地毯。

图6(b)为判别器损失曲线图:木板。

图6(c)为判别器损失曲线图:瓷砖。

图6(d)为判别器损失曲线图:瓷砖。

图7(a)为重建损失曲线图:地毯。

图7(b)为重建损失曲线图:木板。

图7(c)为重建损失曲线图:瓷砖。

图7(d)为重建损失曲线图:瓷砖。

图8(a)为分割损失曲线图:地毯。

图8(b)为分割损失曲线图:木板。

图8(c)为分割损失曲线图:瓷砖。

图8(d)为分割损失曲线图:瓷砖。

图9为SSBG部分实验效果图,第一列为输入图像,第二列为重构图像,第三列为分割真值图,第四列为分割输出图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步详细说明。

本发明提出了一种基于生成模型的稀疏区域分割算法(SSBG,Sparsity regionsegmentation algorithm based on generative model),基于目标区域的特性,该算法采用基于生成模型的弱监督图像分割架构。即训练阶段使用人工合成的带标签的样本数据,学习背景区域的分布,分割阶段将输入图片进行重构,目标区域无法被很好重构,由此完成分割任务。通俗来讲,SSBG可以将背景区域进行重构,目标区域也会被重构为背景区域,通过对比重构图片与输入图片,差异较大的区域被认为是目标区域。但是,由于训练阶段使用的是人工合成的样本,与真实样本还是有差距,所以传统的基于生成模型的方法也会对与背景区域相似的目标区域进行重构,导致无法完成分割任务。这主要是因为传统的算法只是对输入图片进行重构,使用阈值进行分割,并没有获取目标区域与背景区域的差异信息,而人工合成的样本与真实样本又有差距,从而导致了这个现象的产生。

SSBG除了生成子网络之外,还包含了目标区域判别子网络,判别子网络会衡量目标目标区域与背景区域的距离,增强模型的鲁棒性,减少过拟合现象。同时,针对目标区域的稀疏性先验,设计了稀疏性损失函数作为正则项,进一步减少模型训练过程中的过拟合现象。具体地,SSBG的生成子网络采用GAN的架构,虽然VAE也可以完成重构任务,但是VAE由于限制了隐藏空间变量的分布,重构的输出质量不高,比较模糊,这会增加对判别子网络的干扰,GAN重构图片质量高,对判别子网络干扰小,因此生成子网络采用GAN的架构。

除此之外,SSBG针对目标区域的稀疏性先验设计了基于分布的损失函数,该损失函数给模型传递稀疏性信息,指导模型的训练。具体地,SSBG采用KL散度(Kullback-Leibler divergence)作为描述稀疏性先验的损失函数。稀疏性目标区域也可以理解为目标区域在整个区域中所占的比例较小。KL散度可以衡量两个分布之间的差异,差异越大,KL散度的值也越大。并且KL散度本身可微,作为损失函数可以传递梯度信息,指导模型训练,因此用来表达稀疏性先验较为合适。SSBG使用生成模型完成图像分割,并且训练过程使用人工合成的样本,是一种基于生成模型的弱监督图像分割算法。

1、算法整体框架

如图2所示,本发明提出算法(SSBG)的整体框架采用生成子网络和判别子网络相结合的形式。其中生成子网络完成图像重构,判别子网络为生成子网络提供判别信息的同时完成图像分割。整体流程可以分为样本合成、图像重构和判别输出三个阶段。

(1)样本合成

SSBG的训练数据集并不需要真实的带有标签的样本,而是采用模拟目标区域的方式,生成偏离背景分布的目标区域,人工合成带有标签的样本,从而获得带有标签的训练样本。样本合成的过程如图3所示,背景图片和随机图片集是样本合成的基础。随机图片集中的图片和背景图片无关,因此随机图片中的区域可以看作偏离背景区域的目标区域。首先,由于目标区域只具有稀疏性先验,其他特征不定,使用柏林噪声发生器可以生成各种类型的目标区域,构建目标区域掩码图。之后,从随机图片集中选择一张图片,分离出对应掩码图的区域,作为合成样本的目标区域I。将人工生成的目标区域与背景图片进行融合,即可得到带有标签的训练样本I

I

其中,其中,β为融合中的不透明参数,实际使用中取0.1;⊙为元素乘操作,I

SSBG还对背景图片做了旋转、尺度变换等操作,进行数据集增强。通过人工样本合成,最终可以得到背景图片、合成图片和目标区域掩码图一一对应的训练数据集。

(2)图像重构和判别输出

这两个阶段是完成图像分割任务的主要阶段。图形重构是完成对输入图片的重构,通过对背景区域的学习。理想情况下GAN输出的重构图片会极大削弱目标区域,甚至将目标区域重构为背景区域。判别输出通过对比重构图片和输入图片的特征信息,学习重构空间与原始空间之间的差异,完成输出目标区域像素级分割结果。由于这两个阶段是一个整体的过程,在模型训练时要一起进行,一起进行梯度反向传播。

2、网络结构设计

本发明所提的算法SSBG的整体结构图如图4所示,主要包含生成子网络和判别子网络两个部分,下面将分别介绍生成子网络与判别子网络的具体设计细节。

(1)生成子网络

生成子网络可以采用目前已经被证实重构效果较好的网络结构,也就是GAN和VAE。由于生成子网络的特性,对重构图片的质量要求比较高,因此采用生成图片质量更高的GAN作为基本架构。为了提高GAN的重构特性,本发明生成子网络采用skip-GAN作为backbone。但是通过实验发现,skip-GAN的跳跃连接结构会将目标区域的特征也进行融合,导致目标区域也被重建,因此针对原始skip-GAN的结构做了减少跳跃连接的修改,作为生成子网络的结构,如图5所示。

从图5中可以看出,skip-GAN的生成器采用编码解码器的结构,设计的主要思路是首先使用编码器对输入进行特征提取,将特征映射到隐藏空间中,得到隐变量z。随后解码器使用转置卷积的操作对隐变量进行上采样,最终输出与输入大小相同的重构图片。但是实验过程发现,如果编码器的每一层输出都与解码器做特征融合,会使得目标区域特征与背景区域特征融合,导致目标区域也被重构。而SSBG算法的生成子网络只将编码器的最后一层与解码器进行特征融合,有效的避免了这个问题。判别器采用传统的二分类网络结构,卷积操作提取特征之后,使用全连接层输出分类概率,即判断输入图片是真实图片还是重构图片。

(2)判别子网络

判别子网络本质上完成目标区域分割的任务,学习重构图像和原始图像的距离信息,与生成子网络一起训练。因此采用目前效果较好的特征融合结构,如图4所示。设计的思路受FPN的启发,首先,由于特征融合结构需要提取不同尺度的特征,这会使得网络结构比较深,因此使用深度残差网络ResNet对输入进行下采样,提取输入图片特征。ResNet由于采用了多个残差模块级联的方式,即使网络结构比较深也不容易发生梯度消失的情况,使得深层网络训练比较容易,模型不会收敛困难。随后,对底层特征进行上采样,在不断上采样的过程中进行特征融合,通过分析不同尺度的特征信息,完成对目标区域的分割。

本发明使用深度残差网络ResNet-50作为特征提取网络,ResNet-50的结构如表1所示。从表中可以看出,ResNet-50由5个子单元组成,分别是一个卷积单元(conv1)和四个残差单元。每个下采样模块都是由多个卷积层和残差模块组合而成,用于提取输入图像的高级特征。每经过一个残差单元,特征图的分辨率缩小2倍。根据输入图片尺寸,最后一层输出特征图尺寸为2x2upsample,包括了一个通道叠加的卷积操作和一个转置卷积上采样操作,使用通道叠加的方式进行特征融合,可以减少特征融合过程中的信息损失,使用转置卷积而不是插值操作进行上采样可以在训练的过程中学习上采样的参数,提高上采样效果。

表1RestNet-50结构

3、损失函数设计

本发明提出的SSBG算法的损失函数包含生成损失函数和判别损失函数两部分。

(1)生成损失函数

生成损失函数主要描述生成子网络在训练过程中的优化目标,生成子网络基于GAN结构,损失函数也包含生成器损失函数和判别器损失函数两部分。

1)生成器损失函数

生成器优化的主要目标是生成与输入图像类似的图像,次要目标是要与判别器形成对抗,在对抗的过程中提高生成性能。均方误差损失(MSE,Mean Squared Error)通常被用于衡量两个图像的相似程度,该损失函数定义如下:

其中,其中,p

但是在均方误差损失只是从像素上衡量了两个图像的整体差异,没有从更加细节的角度衡量生成图像质量,只使用均方误差损失会导致生成图像较为模糊。为了进一步提高生成图像的质量,除了使用均方误差损失,本发明还使用了专门用于衡量重建图像和原始图像相似性的图像质量损失函数SSIM(Structural Similarity Index Measure结构相似性)。SSIM从人类视觉系统出发,分别从亮度、对比度和结构三个方面研究两幅图像的相似度。

a)亮度相似度

亮度相似度从平均亮度出发,平均亮度定义为:

其中,μ

两幅图像x和图像y的亮度相似度定义为:

其中,μ

b)对比度相似度

对比度相似性描述图像明暗变化的剧烈程度,整体定义与亮度相似度类似,由于描述变化程度,因此从像素值的标准差出发。则图像x中像素值的标准差计算公式为:

两幅图像x和图像y的对比度相似性定义为:

其中,σ

c)结构相似度

结构相似度与亮度和对比度不同,结构无法使用一个标量表示,为了排除两幅图像像素值的差异,结构相似度研究归一化的两个向量的余弦相似度:

化简可得:

其中,σ

则SSIM损失函数的计算公式为:

由此,重建误差损失函数为:

其中,X为输入图像,

除了重建损失L

其中,z为原始图像对应的隐变量,

最后,为了和判别器形成对抗,生成器损失函数还包含了对抗损失函数L

其中,f(X)为原始图像在判别器最后一层输出的特征向量,

生成器总体的损失函数L

L

其中,λ

2)判别器损失函数:

判别器主要是与生成器形成对抗,辅助提升生成器的重构性能。本质上判别器是完成二分类任务,判断输入图像是重构图像还是原始图像,因此判别器的损失函数L

其中,t为输入图片的真实标签,

(2)判别损失函数

判别损失函数主要是描述判别子网络在训练过程中的优化目标,判别子网络通过对比重构图像与原始图像的特征,完成对目标区域的像素级分割。基于判别子网络的任务,判别损失函数分为两个部分:稀疏性损失函数和分割损失函数。

1)稀疏性损失函数

稀疏性损失函数主要是利用目标区域的稀疏性先验,作为优化目标,指导判别子网络的学习。判别子网络的输出是一个掩码图,实际上是对图像中所有的像素点进行分类,判断是属于背景区域还是目标区域,最终属于目标区域的像素值会被赋值为1,背景区域的像素值会被赋值为0。实际上,可以将输出中属于目标区域的像素点视为激活状态,反之可以视为抑制状态,输出掩码图的平均激活度

其中,m

相对的,稀疏性先验可以认为是输出掩码图的平均激活度比较小,即

SSBG算法稀疏性损失函数L

其中,M为判别子网络输出的掩码图。

2)分割损失函数

分割损失函数主要描述判别子网络的分割性能,优化输出掩码图与真值图之间的差距。由于输出掩码图实际代表对图像中每个像素点的二分类结果,二分类任务中,二分类交叉熵损失函数是常用的损失函数。但是,由于目标区域的稀疏性先验,导致属于目标区域的像素点较少,属于背景区域的像素点较多,出现了样本不均衡问题。二分类交叉熵损失函数在训练中会倾向于样本多的类别,这也就意味着目标区域像素点的分类会性能比较差,这是违背算法思想的,因此为了解决样本不均衡问题,分割损失函数采用焦点损失函数(Focal Loss),该损失函数定义为:

其中,y为分类真值,

从上式可以看出,焦点损失函数会指引模型更加关注数量少、难分类的样本,非常适合作为分割损失函数,因此分割损失函数的定义为:

其中,

结合稀疏性损失函数L

L

其中,λ

4、数据集与模型训练

由于本发明主要关注于稀疏性目标区域,稀疏性目标区域广泛出现于工业领域中,因此实验的数据集使用工业领域具有挑战性的MVTecAD。该数据集包含多种工业产品,分割目标差异较大,目标本身没有独特的特征,并且训练集只包含了背景图像,适合进行弱监督或无监督方法的测试。本发明主要在MVTecAD上完成稀疏性图像分割任务,测试本发明提出算法的有效性。

模型训练中,由于生成子网络和判别子网络相辅相成,因此在模型训练阶段需要一起进行训练。SSBG算法的训练流程与GAN类似,依次轮流训练生成器和判别器,即固定判别器,训练生成器;固定生成器,训练判别器。同时由于判别子网络会给生成器提供判别信息,因此生成器会和判别子网络一起进行训练。SSBG算法的训练流程如下所示,首先训练判别器,之后再将判别器固定,优化更新生成器和判别子网络的参数。

S1:使用柏林噪声和随机图像集人工合成带有标记的训练样本,即重建图像

/>

S2:初始化生成子网络和判别子网络的网络参数,设定迭代总次数U,设定当前迭代次数u=0;

S3:若u

S4:将人工合成的样本

S5:将重构图像和原始图片送入判别器D中,计算D的损失函数L

S6:使用ADAM优化器更新判别器D参数;

S7:将人工合成的样本

S8:将重构图像与原始图片进行通道叠加,送入判别子网络;

S9:根据子模块的输出,分别计算重建误差损失函数L

S10:使用ADAM优化器更新生成器G和判别子网络参数;

S11:直至达到迭代总次数,结束训练。

5、实验与分析

本实施例在MVTecAD上进行稀疏性区域图像分割实验,本发明提出的算法会输出像素级的分割结果,实际上是针对每个像素点完成了二分类的任务,因此采用AUROC和AP作为模型的评价指标。

图6-8分别展示了本发明提出算法SSBG在MVTecAD的4个类别(地毯、木板、瓷砖、网格)上训练过程中的判别器损失、重建损失和分割损失曲线图。从图7(a)-(d)和图8(a)-(d)中可以看出,重建损失和分割损失最终都趋于稳定,并且接近于0,这代表SSBG算法模型最终收敛,并且针对输入图片的重建效果和分割效果都不错。判别器损失最终虽然也稳定,但是并没有接近于0,这是因为判别器和生成器形成对抗,生成器的重构效果足够好,重构的图片可以欺骗判别器,因此图6(a)-(d)中判别器的损失并不会降到接近0,这也从侧面体现了生成器的重构效果比较好。

图9展示了本发明算法SSBG在MVTecAD测试集上的实验效果。从图9中可以看出,生成子网络针对背景区域的重建效果比较好,可以还原大部分背景区域的特征。重建图像中,目标区域会被削弱,对于某些和背景差异很大的目标区域可以做到清除。判别子网络输出的分割图中,目标区域很突出,可以做到较为准确的分割。

综上,本发明提出的SSBG算法,结构上采用GAN和AE结合的方式,并使用SSIM损失函数,提高重建子网络的重建性能。为了解决基于生成模型的图像分割方法的过拟合现象,SSBG添加判别子网络提供分割信息。同时,使用目标区域稀疏性先验设计了基于KL散度的稀疏性正则项,限制了目标区域的面积,为模型提供了目标区域的先验信息,增强了模型的泛化性。本发明还在MVTecAD上进行了实验,验证了SSBG模型的有效性,证明了SSBG模型的优越性。

技术分类

06120116571727