基于多阶段变分自编码器的低照度还原方法与流程

文档序号:18512234发布日期:2019-08-24 09:12阅读:351来源:国知局
基于多阶段变分自编码器的低照度还原方法与流程

本发明涉及深度学习、图像增强技术领域,尤其涉及一种基于多阶段变分自编码器的低照度还原方法。



背景技术:

由于受到物体接收的入射辐射不足,在低光环境下拍摄的图像易于从低能见度中获得,例如对比度降低,颜色模糊,场景细节模糊。另外,在低光环境下拍摄的图像通常会受到低动态范围和噪声的影响,丢失许多细节信息,从而降低图像的质量。如何能在低光环境下拍摄的图像不受到低动态范围和噪声的影响并仍得到接近于正常照度下的图像一直是深度学习、图像增强技术领域研究的方向。

变分自编码器(vae)作为深度生成模型的一种形式,是由kingma等人于2014年提出的基于变分贝叶斯(variationalbayes,vb)推断的生成式网络结构。vae利用两个神经网络建立两个概率密度分布模型:一个用于原始输入数据的变分推断,生成隐变量的变分概率分布,称为推断网络;另一个根据生成的隐变量变分概率分布,还原生成原始数据的近似概率分布,称为生成网络。vae近年在数据生成方面有较多的应用,尤其是在图像生成方面,其结构如图1所示。

u-net是由olafronneberger等人在2015提出的一种分割网络,能够适应很小的训练集,其网络的主体结构和自编码器类似,主要包括两部分:编码结构和解码结构。编码结构类似于特征提取器,通过一系列的卷积和下采样操作捕获输入图像的特征信息;解码结构是在与编码结构对称的基础上扩展的,以编码结构提取的特征为基础,通过一系列的转置卷积和上采样操作逐步生成新的图像。u-net解码结构的特点是将对应编码结构层的输出结果作为解码层输入的一部分,这个操作能够有效的克服编码过程中信息丢失的问题,提高了生成图像的质量。由于编码、解码的网络结构呈“u”型,所以取名为“u-net”,其网络结构如图2所示。

卷积网络(convolutionalneuralnetworks,cnn),是由lecun于1989年提出的特殊神经网络,也叫卷积神经网络,主要用于处理具有类似网络结构的数据的神经网了,如时间序列数据(可看成是在时间轴上有规律地采样形成地一维网格)、图像数据(可看成是二维的像素网格)等,cnn中的“卷积”是一种特殊的线性运算。cnn近年来被广泛的用于深度学习的各项领域,如图像处理、语音处理和自然语言处理等。

在上述理论基础上,本发明提出了利用变分自编码器,结合u-net网络结构,并引入多阶段训练的方法对低照度图像进行照度还原。



技术实现要素:

针对现有技术的不足,本发明所解决的技术问题是如何能在低光环境下拍摄的图像不受到低动态范围和噪声的影响并仍得到接近于正常照度下的图像。

为解决上述技术问题,本发明采用的技术方案是一种基于多阶段变分自编码器的低照度还原方法,一方面增强低照度图像去噪能力、提高低照度图像细节还原效果,另一方面简化了网络结构并加快了网络训练速度,具体步骤如下:

(一)采集数据源,制作数据集:根据光照强度分别采集正常光照条件下的图像数据集与低照度条件下的图像数据集,所述低照度为:0.04~0.004lux,将图像数据按照度分为2个大数据集,分别为:

正常光照下的可见光图像集包含训练样本标签集、交叉验证样本标签集;

低照度下的弱可见光图像集包含训练数据集、交叉验证数据集、测试数据集;

其中,正常光照下的可见光图像集作为网络的训练标签低照度下的弱可见光图像集的训练数据集作为网络的训练样本,弱可见光图像集的交叉验证数据集作为网络的finetuning样本,弱可见光图像集的测试数据集作为网络的测试样本;

采集数据源,制作数据集具体过程如下:

1)正常光照下的可见光图像集采集

采集的是正常照度条件下的图像数据,采集后,以6∶2∶2的图像数量比例分成训练样本标签集、交叉验证样本标签集和备用三个数据集;

2)低照度下的弱可见光图像集采集

在采集正常照度条件下图像数据后,保持相机角度不变,依照调节照度的原则获取低照度图像数据。

低照度下的弱可见光图像集采集完成后,以6∶2∶2的图像数量比例,分别组成训练数据集、交叉验证数据集、测试数据集三个子数据集;

3)图像尺寸归一化操作

对所有图像数据进行尺寸归一化处理,通过裁切将所有图像大小固定为wxh大小;

4)图像像素值归一化操作

对所有图像数据进行像素值归一化处理,将像素值映射到[0,1]的范围内;像素值归一化计算表达式如公式(1)所示。

其中,x为原始的像素值,min为像素值的最小值,max为像素值的最大值,x*为归一化后的像素值。

(二)进行muvae网络第一阶段训练:将正常光照下的可见光图像集、低照度下的弱可见光图像集分别作为网络训练的图像标签和训练样本送入muvae网络进行训练;muvae对训练样本进行编码、解码操作后输出重构的图像,计算重构图像与其标签之间的误差,通过优化器不断最小化误差,在最小化误差过程中逐步调整muvae网络第一阶段网络结构的权重、偏移项参数;其具体过程如下:

1)输入:低照度下的弱可见光图像集的训练数据集的低照度图像;

2)输出:经过muvae第一阶段重新生成的图像;

3)建立muvae第一阶段模型结构;

muvae第一阶段模型主要包含三部分:编码、重采样和解码;

a)编码,通过一系列的卷积和下采样逐步计算出样本的均值、方差,编码部分由4层构成,每层由卷积核为3x3、步长为2的卷积实现,卷积的计算表达式如公式4所示。

conv=kernel*input(4)

其中,conv为卷积输出,kernek为卷积核,input为卷积输入,*为卷积操作。

b)重采样,利用编码阶段求出的均值、方差计算出样本的高斯分布,并从高斯分布中采样,得到复合高斯分布的隐变量;

c)解码,将重采样后的隐变量通过上采样逐步映射成新的图像,解码部分由4层构成,每层由卷积核3x3、步长为2的转置卷积实现,转置卷积的计算表达式如公式5所示;

input=kernelt*conv(5)

其中,input为转置卷积输出即卷积的输入,kernelt为卷积核的转置,conv为转置卷积输入即卷积的输出,*为卷积操作;

u-net跳跃结构能够将编码层的输入送到对应编码层,通过concat的方法将其作为编码层输入的一部分,u-net跳跃操作能够有效减少vae编码过程特征信息的丢失量,保留更多的细节信息,有助于生成更清晰的图像,同时能够有效减缓随着网络深度增加而产生的梯度消失问题;

4)计算muvae第一阶段训练的损失函数

muvae第一阶段训练主要包括两个损失函数,分别是k-l散度损失、均方误差损失;

a)k-l散度损失

k-l散度用来描述两个概率分布p、q差别的非对称的度量,p表述数据的真实分布,q表示数据的近似分布;k-l值越小,p、q概率分布越接近;使用到的k-l散度计算表达式如公式(6)所示。

b)mse

mse是指参数估计值与参数真值之差的平方,mse值越小,说明预测数据越接近实际数据;mse具有函数连续可导,便于使用梯度下降算法;mse值减小的同时,梯度也在减小,这样的变化有利于加快函数收敛速度;用于图像生成时,能够获得很高的峰值信噪比;其计算表达式如公式(7)所示。

其中,n为样本总数,y(i)为第i个实际样本值,y′(t)为第i个预测样本值。

(三)进行muvae网络第二阶段训练:输出低照度图像初步还原的图像,并将该图像作为muvae第二阶段训练的输入,进行二次还原,此还原侧重于优化图像细节、去除环境噪声以及调整色差,通过最小化输出图像与图像标签之间的误差,不断地优化整个网络结构的参数,逐步将网络训练至最优结构,其具体过程如下:

1)输入:muvar第一阶段的输出;

2)输出:低照度还原后的图像;

3)建立muvae第二阶段模型结构;

a)共使用5个残差块,每个残差块由两个卷积核为3x3、步长为1的卷积层构成,使用3x3的卷积核一方面能够减小计算量,另一方面能够增强对细节特征的还原;

b)卷积的输出与残差块的输入通过“元素级别相加”的方法进行组合后,送入relu激活函数中,进行非线性的映射。“元素级别相加”的计算表达式如公式(8)所示;

y=h(x)+x(8)

其中h(x)为残差块中的卷积输出,x为残差块的输入,y为残差块最终输出,‘+’表示元素级别相加;

c)5个残差块后,添加了两个卷积,分别是卷积核3x3,步长为1,该层卷积主要用于对残差块处理后的特征进行整合;卷积核1x1,步长为1,该层用于整合特征图通道之间的特征,并调整通道数;

4)计算muvae第二阶段的损失函数

muvae第二阶段的损失函数为平均绝对值损失,其计算表达式如公式(9)所示。

其中,n为样本总数,y(i)为第i个实际样本值,y′(i)为第i个预测样本值。

(四)进行finetuning操作:muvae网络的训练阶段主要以低照度下的弱可见光图像集的训练数据集中的图像作为训练样本,对低照度下的弱可见光图像集的训练数据集中的图像以外的低照度图像还原的性能不够好即泛化性可能较差,鲁棒性较弱;为了增强muvae网络的泛化性和鲁棒性,使用低照度下的弱可见光图像集的交叉验证数据集对训练好的muvae网络finetuing操作,其具体过程如下:

1)导入训练好的网络模型和网络参数;

2)使用低照度下的弱可见光图像集的交叉验证数据集对网络进行训练,

即finetuning;

3)将funetuning后的muvae网络结构及参数作为最终用于低照度还原的结构及参数。

(五)进行低照度图像还原:将低照度下的弱可见光图像集的测试数据集送入finetuning之后的muvae网络中,得到照度还原后的可见光图像,完成对低照度图像的还原操作,其具体过程如下:

通过计算低照度图像还原结果与正常照度图像的峰值信噪比psnr、结构相似度ssim和均方误差mse三个评价标准,衡量还原效果,其计算表达式分别如公式(10)、(11)、(9)所示:

其中,公式(10)中,maxi表示图像点颜色的最大数值,如果每个采样点用8位表示,那么就是255;

ssim(x,y)=[l(x,y)]α[c(x,y)]β[s(x,y)]γ(11)

其中,l(x,y)比较x和y的亮度,c(x,y)比较x和y的对比度,s(x,y)比较x和y的结构structure,α>0,β>0,γ>0,为调整l(x,y)、c(x,y)、s(x,y)相对重要性的参数,μx及μy、σx及σy分别为x和y的平均值和标准差,σxy为x和y的协方差,c1、c2、c3皆为常数,用以维持l(x,y)、c(x,y)、s(x,y)的稳定;结构相似性指标的值越大,代表两个信号的相似性越高;

mse为均方误差,如公式(9)所示,mse值越小,低照度还原图像越接近于正常照度下的图像。

与现有技术相比,本发明在低光环境下拍摄的图像不受到低动态范围和噪声的影响并仍得到接近于正常照度下的图。

附图说明

图1为变分自编码器结构示意图;

图2为u-net网络结构示意图;

图3为muvae网络结构图;

图4为本发明流程图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步的说明,但不是对本发明的限定。

本发明方法采用图3所示的网络结构及图4所示的训练流程。

首先,组织人员采取各个类别的图像数据,制作数据集;其次,分别对muvae网络进行第一阶段、第二阶段的训练;然后,对训练好的muvae网络进行finetuning操作;最后,将低照度图像数据送入muvae网络,完成对低照度图像还原的操作。

本方法提出的muvae网络结构主要有两阶段构成,分别是由变分自编码器(vae)和u-net结构构成的第一阶段和由5个残差块、2个卷积层构成的第二阶段构成。

第一阶段的结构:变分自编码器通过编码过程提取低照度图像特征,并利用提取的特征重新生成图像,用于第二阶段的输入;由于vae编码是一个下采样的过程,而u-net结构主要作用是通过将编码阶段下采样之前的卷积输出跳跃连接到相应的解码层,作为解码层输入的一部分,能够有效减少vae编码过程特征信息的丢失量,保留更多的细节信息,有助于生成更清晰的图像。第一阶段网络结构细节如表3所示。

第二阶段的结构:因为第一阶段生成的图像是比较粗糙的,细节生成的不够好,所以第二阶段的训练相当于一个提高分辨率的过程,侧重于优化图像细节、去除环境噪声以及调整色差等,在第一阶段训练的基础上进行的更细粒度的处理,以达到更好的还原效果。第二阶段网络结构细节如表4所示。

图4示出了本发明具体实施步骤:

(一)采集数据源,制作数据集:

按照光照条件的不同,需要成对的采集正常光照条件的图像数据和低照度光照条件的图像数据。初步采集图像后,将图像数据按照度分为2个大数据集(或按训练需求分为5个小数据集),分别为:

正常光照下的可见光图像集(nor_dataset),nor_dataset包含训练样本标签集(normalligthtrainingdataset,nor_dataset_train)、交叉验证样本标签集(normalligthvalidationdataset,nor_dataset_valid);

低照度下的弱可见光图像集(ll_dataset),ll_dataset包含训练数据集(ll_dataset_train)、交叉验证数据集(ll_dataset_valid)、测试数据集(ll_dataset_test)。

采集数据源,制作数据集具体过程如下:

采集图像数据时调节照度的原则是:通过调节快门速度和光圈大小的数值获取不同的曝光,其中优先调整快门速度,当快门速度至最快时仍无法满足照度条件,调节光圈大小。在某个点采集图像数据时,需要使用三脚架固定相机,确保以同一角度采集图像。

采集数据设备及参数设置,如表1所示。

表1采集数据的设备及参数设置

1)nor_dataset数据集采集

此数据集是作为muvae网络训练的样本标签,所以采集的是正常照度条件下的图像数据。采集后,以6∶2∶2的图像数量比例分成nor_dataset_train、nor_dataset_valid和备用三个数据集。

2)ll_dataset数据集采集

此数据集包含了三个子数据集,分别是训练数据集(ll_dataset_train)、交叉验证数据集(ll_dataset_valid)、测试数据集(ll_dataset_test)。在采集正常照度条件下图像数据后,保持相机角度不变,依照调节照度的原则获取低照度图像数据。

ll_dataset采集完成后,以6∶2∶2的图像数量比例,分别组成ll_dataset_train、ll_dataset_valid和ll_dataset_test三个子数据集。

3)图像尺寸归一化操作

对所有图像数据进行尺寸归一化处理,通过裁切(或放大缩小图像大小)的方式将所有图像大小固定为wxh大小(w、h可根据实际训练需求设置)。有利于提高muvae的训练效率、速度。

4)图像像素值归一化操作

对所有图像数据进行像素值归一化处理,将像素值映射到[0,1]的范围内。有助于提高muvae网络的收敛速度与精度、避免过拟合问题。像素值归一化计算表达式如公式(1)所示:

其中,x为原始的像素值,min为像素值的最小值,max为像素值的最大值,x*为归一化后的像素值。

所有数据集的基本信息如表2所示。

表2数据集的基本信息

(二)进行muvae网络第一阶段训练

第一阶段训练的主要作用是初步生成比较大的特征,比如环境特征、亮度特征以及比较显著的图像内容特征等。将nor_dataset、ll_dataset_train分别作为网络训练的图像标签,和训练样本送入muvae网络进行训练。muvae对训练样本进行编码、解码操作后输出重构的图像,计算重构图像与其标签之间的误差,通过优化器不断最小化误差,在最小化误差过程中逐步调整muvae网络第一阶段网络结构的权重、偏移项等参数。

muvae第一阶段训练的输入、输出及模型结构具体如下,示意图如图3所示。

1)输入:ll_dataset_train数据集中的低照度图像;

2)输出:经过muvae第一阶段重新生成的图像;

3)muvae第一阶段模型结构:

变分自编码器(vae)构成了模型的主体,在vae的基础上,添加u-net网络结构,将编码阶段的输出传送到相应的解码阶段,其中变分自编码器的特点如下:

a)vae基本原理

vae的目的是构建一个由隐变量z生成目标数据x的模型,假设输入z是符合某种分布的,通过训练某个模型x=g(z),这个模型能够将z的分布映射成到x的概率分布。

根据x得到其的分布p(x),这样就能够直接在p(x)上进行采样,但是直接得到是比较困难的,所以通过条件概率公式间接的求出p(x),假设z是符合标准正态分布的,则从标准正态分布中采样得到z,根据z求出x。如公式(2)所示:

但是存在的问题:从p(z)中重新采样得到的zk,是否对应着xk,这时候求的x、x′之间误差是不对的。所有假设存在xk专属的p(z|xk),且符合正态分布,因为从中采样z,然后生成x,这样能确保x与x′是一一对应的,避免从p(z)采样的zk重构的x′与原始的x不是对应关系。利用卷积网络算出p(z|xk)的均值、方差。如公式(3)所示。

logqφ(z|x(i))=logn(z;μ(i),σ2(i)i)(3)

b)分布标准化

向量zk是通过采样构造而来的,不是直接由encoder算出来的,所以重构x的过程会有噪声。然而噪声(方差)是通过神经网络学习到的,为了使x与x′的误差更小,训练会使得噪声逐渐变小(方差=0),但是这样丢失了随机性,导致模型逐渐退化成普通的自编码模型,噪声不再起作用。

通过将p(z|x)都向标准正态分布看齐。能够避免噪声消失,保持模型的生成能力,因为使得p(z)~n(0,1),满足了先验假设。

c)重参数技巧

将从n(μ,σ2)采样变成了从n(0,1)中采样,然后通过参数变换得到从n(μ,σ2)中采样的结果。即从n(μ,σ2)中采样一个z,相当于从n(0,1)中采样一个ε,根据μ、ε求出z。如公式(4-1)、(4-2)所示。

z=μ+ε*σ(4-2)

muvae第一阶段模型主要包含三部分:编码、重采样和解码。

a)编码过程通过一系列的卷积和下采样逐步计算出样本的均值、方差,本方法中编码部分由4层构成,每层由卷积核为3x3、步长为2的卷积实现,3x3大小的卷积核能够确保对细节信息的提取,使用步长为2的目的为了替代池化进行下采样。卷积的计算表达式如公式4所示:

conv=kernel*input(4)

其中,conv为卷积输出,kemek为卷积核,input为卷积输入,*为卷积操作。

b)重采样部分利用编码阶段求出的均值、方差计算出样本的高斯分布,并从高斯分布中采样,得到复合高斯分布的隐变量,这个隐变量本质上是样本特征编码后的变量,其包含了样本的许多高维特征。

c)解码部分将重采样后的隐变量通过上采样逐步映射成新的图像,本方法中解码部分由4层构成,每层由卷积核3x3、步长为2的转置卷积实现,参数是参考编码部分设置的,以确保上采样后的图像大小与原始样本大小相等。转置卷积的计算表达式如公式5所示:

input=kernelt*conv(5)

其中,input为转置卷积输出(卷积的输入),kernelt为卷积核的转置,conv为转置卷积输入(卷积的输出),*为卷积操作。

d)u-net跳跃结构能够将编码层的输入送到对应编码层,通过concat的方法将其作为编码层输入的一部分。由于编码是一个逐步下采样的过程,所以会导致输入样本部分信息的丢失,进而影响解码的质量。u-net跳跃操作能够有效减少vae编码过程特征信息的丢失量,保留更多的细节信息,有助于生成更清晰的图像,同时能够有效减缓随着网络深度增加而产生的梯度消失问题。

4)muvae第一阶段训练的损失函数

muvae第一阶段训练主要包括两个损失函数,分别是k-l(kullback-leiblerdivergence,kld)散度损失、均方误差损失(meansquareerror,mse)。

a)k-l散度损失

k-l散度用来描述两个概率分布p、q差别的非对称的度量。p表述数据的真实分布,q表示数据的近似分布。k-l值越小,p、q概率分布越接近。本方法中使用到的k-l散度计算表达式如公式(6)所示:

b)mse

mse是指参数估计值与参数真值之差的平方,mse值越小,说明预测数据越接近实际数据。mse具有函数连续可导,便于使用梯度下降算法;mse值减小的同时,梯度也在减小,这样的变化有利于加快函数收敛速度;用于图像生成时,能够获得很高的峰值信噪比等优点。其计算表达式如公式(7)所示:

其中,n为样本总数,y(i)为第i个实际样本值,y′(i)为第i个预测样本值。

muvae第一阶段结构模型细节如表3所示:

表3muvae第一阶段结构参数设置

(三)进行muvae网络第二阶段训练

在muvae第一阶段训练后,输出低照度图像初步还原的图像,并将该图像作为muvae第二阶段训练的输入,进行二次还原。此阶段还原侧重于优化图像细节、去除环境噪声以及调整色差等,在第一阶段训练的基础上进行的更细粒度的处理,以达到更好的还原效果。通过最小化输出图像与图像标签之间的误差,不断地优化整个网络结构的参数,逐步将网络参数训练至最优。

1)输入:muvar第一阶段的输出;

2)输出:低照度还原后的图像;

3)muvae第二阶段模型结构;

muvae第二阶段模型结构特点是使用残差块,有效减缓卷积过程中的信息丢失,避免训练过程的梯度消失、梯度爆炸等问题。

a)共使用5个残差块,每个残差块由两个卷积核为3x3、步长为1的卷积层构成,使用3x3的卷积核一方面能够减小计算量,另一方面能够增强对细节特征的还原。

b)卷积的输出与残差块的输入通过“元素级别相加”的方法进行组合后,送入relu激活函数中,进行非线性的映射。“元素级别相加”的计算表达式如公式(8)所示:

y=h(x)+x(8)

其中h(x)为残差块中的卷积输出,x为残差块的输入,y为残差块最终输出。‘+’表示元素级别相加。

c)5个残差块后,添加了两个卷积,分别是卷积核3x3,步长为1,该层卷积主要用于对残差块处理后的特征进行整合;卷积核1x1,步长为1,该层用于整合特征图通道之间的特征,并调整通道数。

4)muvae第二阶段的损失函数

muvae第二阶段的损失函数为平均绝对值损失(meanabsoluteerro,mae),mae克服了mse的缺点,受偏离正常范围的离群样本的影响小,能够保持高频细节,比mse具备更好的鲁棒性。其计算表达式如公式(9)所示:

其中,n为样本总数,y(i)为第i个实际样本值,y′(i)为第i个预测样本值。

muvae第二阶段结构细节设置如表4所示。

表4muvae网络第二阶段结构细节设置

(四)进行finetuning操作

muvae网络的训练阶段主要以ll_dataset_train中的图像作为训练样本,所以muvae网络参数的调整主要是根据ll_dataset_train中的图像特征进行优化的,对ll_dataset_train中的图像以外的低照度图像还原的性能泛化性较差,鲁棒性较弱。为了增强muvae网络的泛化性和鲁棒性,在网络结构保持不变的、使用训练阶段获得的超参数基础上,改变网络输入样本集,即使用ll_dataset_valid图像数据,对训练好的muvae网络进行finetuning。

1)导入训练好的网络模型和网络参数;

2)使用ll_dataset_valid样本集对网络进行训练,即finetuning;

3)将funetuning后的muvae网络结构及参数作为最终用于低照度还原的结构及参数。

(五)进行低照度图像还原

将ll_dataset_test图像数据送入finetuning操作之后的muvae网络中,得到照度还原后的可见光图像,完成对低照度图像的还原操作。

通过计算低照度图像还原结果与正常照度图像的峰值信噪比(psnr)、结构相似度(ssim)和均方误差(mse)三个评价标准,衡量还原效果。其计算表达式分别如公式(10)、(11)、(9)所示:

其中,公式(10)中,maxi表示图像点颜色的最大数值,如果每个采样点用8位表示,那么就是255。

ssim(x,y)=[l(x,y)]α[c(x,y)]β[s(x,y)]γ(11)

其中,l(x,y)比较x和y的亮度,c(x,y)比较x和y的对比度,s(x,y)比较x和y的结构(structure),α>0,β>0,γ>0,为调整l(x,y)、c(x,y)、s(x,y)相对重要性的参数,μx及μy、σx及σy分别为x和y的平均值和标准差,σxy为x和y的协方差,c1、c2、c3皆为常数,用以维持l(x,y)、c(x,y)、s(x,y)的稳定。结构相似性指标的值越大,代表两个信号的相似性越高。

mse为均方误差,如公式(9)所示。mse值越小,低照度还原图像越接近于正常照度下的图像。

以上结合附图对本发明的实施方式做出了详细说明,但本发明不局限于所描述的实施方式。对于本领域技术人员而言,在不脱离本发明的原理和精神的情况下,对这些实施方式进行各种变化、修改、替换和变型仍落入本发明的保护范围内。

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