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

一种基于交叉卷积神经网络的本质图像分解方法及系统

文献发布时间:2023-06-19 11:35:49


一种基于交叉卷积神经网络的本质图像分解方法及系统

技术领域

本发明属于图像处理技术领域,特别涉及一种基于交叉卷积神经网络的本质图像分解方法及系统。

背景技术

本质图像分解最早由Barrow和Tenenbaum在1978年提出,本质图像求解问题就是从图像出发,恢复所有像素点对应的场景中的亮度和反射率信息,分别形成光照图和反射图。本质图像分解按照算法类型主要分为两类,第一种是基于Retinex理论的本质图像分解,第二种是基于深度学习的本质图像分解。传统的本质图像分解方法Retinex假设图像中较大的梯度是由物体反射率造成,而较小的梯度属于光照变化。由于Retinex方法完全基于梯度,因此Retinex方法建立的是局部约束。

目前另一个常用的约束是自然图像包含的颜色种数较少,且颜色分布呈现结构型,称为全局颜色稀疏性,即要求反射率层的图像只包含若干种颜色。由于基于梯度的方法只能建立局部的约束,因此得到的反射率层图像可能出现全局不一致的现象,即两个相距较远的同种材质的两个像素的反射率不一致,而增加同一场景下的多张图像对本质图像方法的输入提出了严格的要求。当反射率和亮度图像的梯度值被估计出来后,借助Weiss的方法,对梯度图像进行积分,来求解出反射图和光照图。但是这种方法需要用大量样本来训练分类器,所以非常耗时,而且求得的本质图像在边缘处有很大的误差,最终获得的本质图像在边缘处会比较模糊,由于其需要样本训练分类器,因此可能产生对样本的过拟合现象。

基于深度学习的本质图像分解方法对上述问题有了一定的改善,但也存在不少的缺陷,如Narihira等由于网络设计的缺陷,将图像降采样到过小的尺度导致恢复后大量信息的丢失,输出结果较为模糊;Fan等人在网络中集成了一个滤波器从而使得反射层扁平化,去除残余的噪声和几何形状信息,却忽略了对图像细节的保护导致生成了锯齿状的边缘。

发明内容

本发明的目的在于提供一种基于交叉卷积神经网络的本质图像分解方法及系统,以解决上述存在的一个或多个技术问题。本发明中,本质图像分解的结果图像在相同物体的反射率上保持一致,在对边缘信息的保护和对噪声的去除方面表现较好,图像质量较高,无论是细节还是清晰度方面都与真值图像更为接近。

为达到上述目的,本发明采用以下技术方案:

本发明公开的一种基于交叉卷积神经网络的本质图像分解方法,包括以下步骤:

将待分解的原始图像输入训练好的GoogLeNet-VGG19交叉卷积神经网络模型中,获得原始图像分解得到的光照图和反射图;

其中,所述GoogLeNet-VGG19交叉卷积神经网络模型由光照图生成网络与反射图生成网络进行交叉融合构成;所述光照图生成网络基于GoogLeNet卷积神经网络构造,所述反射图生成网络基于VGG19卷积神经网络构造;

所述训练好的GoogLeNet-VGG19交叉卷积神经网络模型的获取步骤包括,采用Adam优化方法对光照图生成网络与反射图生成网络进行训练。

本发明的进一步改进在于,光照图生成网络基于GoogLeNet卷积神经网络构造的步骤具体包括:

在GoogLeNet卷积神经网络inception 3a第二层4个卷积操作后分别添加1个ReLU激活函数,4个ReLU激活函数共同输出到inception 3a的DepthConcat层;

在GoogLeNet卷积神经网络inception 3b第二层4个卷积操作后分别添加1个ReLU激活函数,4个ReLU激活函数共同输出到inception 3b的DepthConcat层;

在GoogLeNet卷积神经网络inception 4a中,第一层2个卷积操作和第二层2个卷积操作相连,形成2个连接通道;在2个连接通道上分别添加1个ReLU激活函数与MaxPool操作组合,ReLU激活函数在前,MaxPool操作在后;

在GoogLeNet卷积神经网络inception 4b中,第一层2个卷积操作和第二层2个卷积操作相连,形成2个连接通道;在2个连接通道上分别添加1个ReLU激活函数与MaxPool操作组合,ReLU激活函数在前,MaxPool操作在后;

将GoogLeNet卷积神经网络inception 4b的DepthConcat层输出跳跃连接到inception 4d的DepthConcat层;将GoogLeNet卷积神经网络inception 4e第一层的AveragePool操作后面的卷积操作输出直接连接到inception 4e的DepthConcat层;将GoogLeNet卷积神经网络inception 4e的DepthConcat层输出跳跃连接到inception 5b的DepthConcat层;

在GoogLeNet卷积神经网络inception 5a第三层4个卷积操作后分别添加1个ReLU激活函数,4个ReLU激活函数共同输出到inception 5a的DepthConcat层;

在GoogLeNet卷积神经网络inception5b第二层4个卷积操作后分别添加1个ReLU激活函数,4个ReLU激活函数共同输出到inception 3b的DepthConcat层;

在GoogLeNet卷积神经网络的FC层后增加一个FC层。

本发明的进一步改进在于,反射图生成网络基于VGG19卷积神经网络构造的步骤具体包括:

将VGG19卷积神经网络第一个MaxPool输出结果与第二个MaxPool输出结果进行Concat操作,得到的结果输入到VGG19卷积神经网络第五层;

将VGG19卷积神经网络第三个MaxPool输出结果与第四个MaxPool输出结果进行Concat操作,得到的结果输入到VGG19卷积神经网络第十三层;

删除VGG19卷积神经网络第十七层和第十八层;在VGG19卷积神经网络第十六层后增加两个结构与第十六层完全相同的层,构成修改后的VGG19卷积神经网络第十七层和第十八层。

本发明的进一步改进在于,光照图生成网络与反射图生成网络进行交叉融合的步骤具体包括:

将GoogLeNet卷积神经网络inception4e的DepthConcat层输出连接到VGG19卷积神经网络的第十三层;

将VGG19卷积神经网络的第四个MaxPool输出连接到GoogLeNet卷积神经网络inception5a的第二层的卷积操作。

本发明的进一步改进在于,光照图生成网络的损失函数Loss1的表达式为:

式中,X为输入图像,

本发明的进一步改进在于,反射图生成网络的损失函数Loss2的表达式为:

式中,Y表示输入图像,

本发明的进一步改进在于,采用Adam优化方法对光照图生成网络与反射图生成网络进行训练的步骤具体包括:

以预构建的训练图像样本库中的图像作为样本,采用Adam优化方法同时对光照图生成网络和反射图生成网络进行训练;

在训练过程中,将光照图生成网络输出的光照图输入识别网络,识别网络输出光照图与训练样本标签图像一致的概率,对光照图生成网络的网络参数进行反向更新;将反射图生成网络输出的反射图输入识别网络,识别网络输出反射图与训练样本标签图像一致的概率,对反射图生成网络的网络参数进行反向更新;

当损失函数Loss1达到最小时,停止对光照图生成网络的训练,得到最终的光照图生成网络;当损失函数Loss2达到最小时,停止对反射图生成网络的训练,得到最终的反射图生成网络;

所述识别网络为多层卷积神经网络,包含相同的六层;每一层都依次为卷积操作、Sigmoid激活函数和MaxPool。

本发明的进一步改进在于,Adam优化参数beta设置为(0.9,0.999),学习率为0.005,权重衰减为0.0001,epoch=100,batchsize=20。

本发明公开的一种基于交叉卷积神经网络的本质图像分解系统,包括:

分解模块,用于将待分解的原始图像输入训练好的GoogLeNet-VGG19交叉卷积神经网络模型中,获得原始图像分解得到的光照图和反射图;

其中,所述GoogLeNet-VGG19交叉卷积神经网络模型由光照图生成网络与反射图生成网络进行交叉融合构成;所述光照图生成网络基于GoogLeNet卷积神经网络构造,所述反射图生成网络基于VGG19卷积神经网络构造;

所述训练好的GoogLeNet-VGG19交叉卷积神经网络模型的获取步骤包括,采用Adam优化方法对光照图生成网络与反射图生成网络进行训练。

本发明的进一步改进在于,

所述光照图生成网络基于GoogLeNet卷积神经网络构造的步骤具体包括:

在GoogLeNet卷积神经网络inception 3a第二层4个卷积操作后分别添加1个ReLU激活函数,4个ReLU激活函数共同输出到inception 3a的DepthConcat层;

在GoogLeNet卷积神经网络inception 3b第二层4个卷积操作后分别添加1个ReLU激活函数,4个ReLU激活函数共同输出到inception 3b的DepthConcat层;

在GoogLeNet卷积神经网络inception 4a中,第一层2个卷积操作和第二层2个卷积操作相连,形成2个连接通道;在2个连接通道上分别添加1个ReLU激活函数与MaxPool操作组合,ReLU激活函数在前,MaxPool操作在后;

在GoogLeNet卷积神经网络inception 4b中,第一层2个卷积操作和第二层2个卷积操作相连,形成2个连接通道;在2个连接通道上分别添加1个ReLU激活函数与MaxPool操作组合,ReLU激活函数在前,MaxPool操作在后;

将GoogLeNet卷积神经网络inception 4b的DepthConcat层输出跳跃连接到inception 4d的DepthConcat层;将GoogLeNet卷积神经网络inception 4e第一层的AveragePool操作后面的卷积操作输出直接连接到inception 4e的DepthConcat层;将GoogLeNet卷积神经网络inception 4e的DepthConcat层输出跳跃连接到inception 5b的DepthConcat层;

在GoogLeNet卷积神经网络inception 5a第三层4个卷积操作后分别添加1个ReLU激活函数,4个ReLU激活函数共同输出到inception 5a的DepthConcat层;

在GoogLeNet卷积神经网络inception5b第二层4个卷积操作后分别添加1个ReLU激活函数,4个ReLU激活函数共同输出到inception 3b的DepthConcat层;

在GoogLeNet卷积神经网络的FC层后增加一个FC层;

所述反射图生成网络基于VGG19卷积神经网络构造的步骤具体包括:

将VGG19卷积神经网络第一个MaxPool输出结果与第二个MaxPool输出结果进行Concat操作,得到的结果输入到VGG19卷积神经网络第五层;

将VGG19卷积神经网络第三个MaxPool输出结果与第四个MaxPool输出结果进行Concat操作,得到的结果输入到VGG19卷积神经网络第十三层;

删除VGG19卷积神经网络第十七层和第十八层;在VGG19卷积神经网络第十六层后增加两个结构与第十六层完全相同的层,构成修改后的VGG19卷积神经网络第十七层和第十八层;

所述光照图生成网络与反射图生成网络进行交叉融合的步骤具体包括:

将GoogLeNet卷积神经网络inception4e的DepthConcat层输出连接到VGG19卷积神经网络的第十三层;

将VGG19卷积神经网络的第四个MaxPool输出连接到GoogLeNet卷积神经网络inception5a的第二层的卷积操作。

与现有技术相比,本发明具有以下有益效果:

本发明提供了一种基于改进GoogLeNet-VGG19交叉卷积神经网络的本质图像分解方法,其首先构建训练图像样本库,然后基于传统GoogLeNet卷积神经网络进行改进构造光照图生成网络,基于传统VGG19卷积神经网络进行改进构造反射图生成网络,光照图生成网络与反射图生成网络进行交叉融合;接下来构造识别网络;最后采用Adam优化方法对光照图生成网络与反射图生成网络进行训练,得到最终的光照图生成网络与反射图生成网络。本发明本质图像分解的结果图像在相同物体的反射率上保持一致,在对边缘信息的保护和对噪声的去除方面表现较好,图像质量较高,无论是细节还是清晰度方面都与真值图像更为接近。

本发明系统用于本质图像分解,相比现有方法分解后的图像存在许多噪声,且图像边缘较为模糊的问题,本发明方法输出图像在相同物体的反射率上保持一致,在对边缘信息的保护和对噪声的去除方面表现较好,图像质量较高;生成的结果无论是细节还是清晰度方面都与真值图像更为接近。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面对实施例或现有技术描述中所需要使用的附图做简单的介绍;显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例的一种基于改进GoogLeNet-VGG19交叉卷积神经网络的本质图像分解方法的流程示意图;

图2是本发明实施例中,本质图像分解结果的示意图;其中,图2中的(a)为原始图像示意图,图2中的(b)为分解后得到的光照图示意图,图2中的(c)为分解后得到的反射图示意图。

具体实施方式

为使本发明实施例的目的、技术效果及技术方案更加清楚,下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述;显然,所描述的实施例是本发明一部分实施例。基于本发明公开的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的其它实施例,都应属于本发明保护的范围。

请参阅图1,本发明实施例的一种基于改进GoogLeNet-VGG19交叉卷积神经网络的本质图像分解方法,包括以下步骤:

步骤1:构建训练图像样本库;

采用公开本质图像数据库,在本质图像数据库中取出P幅图像以及对应的光照图和反射图;然后对这P幅图像进行随机裁剪,裁剪出多幅指定大小的图像块;再将这些图像块进行图像处理,即随机进行水平翻转、竖直翻转、旋转和镜像,用以扩展数据库;经过图像处理后的图像块和图像块对应的光照图和反射图构成了训练图像样本库;

步骤2:采用改进GoogLeNet卷积神经网络构造光照图生成网络,具体如下:

步骤2-1:在GoogLeNet卷积神经网络inception 3a第二层4个卷积操作后面分别添加1个ReLU激活函数,共有4个ReLU激活函数,这4个ReLU激活函数共同输出到inception3a的DepthConcat层;

步骤2-2:在GoogLeNet卷积神经网络inception 3b第二层4个卷积操作后面分别添加1个ReLU激活函数,共有4个ReLU激活函数,这4个ReLU激活函数共同输出到inception3b的DepthConcat层;

步骤2-3:在GoogLeNet卷积神经网络inception 4a中,第一层2个卷积操作和第二层2个卷积操作相连,形成2个连接通道;在这2个连接通道上分别添加1个ReLU激活函数与MaxPool操作组合,共2个ReLU激活函数与MaxPool操作组合;ReLU激活函数在前,MaxPool操作在后;

步骤2-4:在GoogLeNet卷积神经网络inception 4b中,第一层2个卷积操作和第二层2个卷积操作相连,形成2个连接通道;在这2个连接通道上分别添加1个ReLU激活函数与MaxPool操作组合,共2个ReLU激活函数与MaxPool操作组合;ReLU激活函数在前,MaxPool操作在后;

步骤2-5:将GoogLeNet卷积神经网络inception 4b的DepthConcat层输出跳跃连接到inception 4d的DepthConcat层;

步骤2-6:将GoogLeNet卷积神经网络inception 4e第一层的AveragePool操作后面的卷积操作输出直接连接到inception 4e的DepthConcat层;

步骤2-7:将GoogLeNet卷积神经网络inception 4e的DepthConcat层输出跳跃连接到inception 5b的DepthConcat层;

步骤2-8:在GoogLeNet卷积神经网络inception 5a第三层4个卷积操作后面分别添加1个ReLU激活函数,共有4个ReLU激活函数,这4个ReLU激活函数共同输出到inception5a的DepthConcat层;

步骤2-9:在GoogLeNet卷积神经网络inception5b第二层4个卷积操作后面分别添加1个ReLU激活函数,共有4个ReLU激活函数,这4个ReLU激活函数共同输出到inception 3b的DepthConcat层;

步骤2-10:在GoogLeNet卷积神经网络的FC层后面再增加一个新FC层;

步骤2-11:通过步骤2-1到步骤2-10的操作构成改进GoogLeNet卷积神经网络;

步骤3:采用改进VGG19卷积神经网络构造反射图生成网络,具体如下:

步骤3-1:将VGG19卷积神经网络第一个MaxPool输出结果与第二个MaxPool输出结果进行Concat操作,得到的结果输入到VGG19卷积神经网络第五层;

步骤3-2:将VGG19卷积神经网络第三个MaxPool输出结果与第四个MaxPool输出结果进行Concat操作,得到的结果输入到VGG19卷积神经网络第十三层;

步骤3-3:删除VGG19卷积神经网络第十七层和第十八层;

步骤3-4:在VGG19卷积神经网络第十六层后增加两个相同的层,构成新的第十七层和第十八层;新的第十七层和第十八层的结构和第十六层完全相同;

步骤3-5:通过步骤3-1到步骤3-4的操作构成改进VGG19卷积神经网络;

步骤4:光照图生成网络和反射图生成网络交叉融合;

步骤4-1:将GoogLeNet卷积神经网络inception4e的DepthConcat层输出连接到VGG19卷积神经网络的第十三层;

步骤4-2:将VGG19卷积神经网络的第四个MaxPool输出连接到GoogLeNet卷积神经网络inception5a的第二层的卷积操作;

步骤5:构造识别网络;

识别网络为多层卷积神经网络,共包含相同的六层;每一层都依次为卷积操作、Sigmoid激活函数和MaxPool;

步骤6:定义损失函数;

步骤6-1:定义光照图生成网络损失函数Loss1:

其中,X为输入图像,

步骤6-2:定义反射图生成网络损失函数Loss2:

其中,Y表示输入图像,

步骤7:网络训练;

以步骤1构建的训练图像样本库中的图像作为样本,采用Adam优化方法同时对光照图生成网络和反射图生成网络进行训练;

在训练过程中,将光照图生成网络输出的光照图输入识别网络,识别网络输出光照图与训练样本标签图像一致的概率,对光照图生成网络的网络参数进行反向更新;将反射图生成网络输出的反射图输入识别网络,识别网络输出反射图与训练样本标签图像一致的概率,对反射图生成网络的网络参数进行反向更新;

当损失函数Loss1达到最小时,停止对光照图生成网络的训练,得到最终的光照图生成网络;当损失函数Loss2达到最小时,停止对反射图生成网络的训练,得到最终的反射图生成网络;

步骤8:将待分解的原始图像分别输入步骤7得到的最终的光照图生成网络和反射图生成网络中,输出图像为原始图像分解得到的光照图和反射图。

本发明实施例中,所述步骤1中指定大小的图像块的尺寸为224*224。

本发明实施例中,所述步骤7中对网络进行训练时设置的参数如下:Adam优化参数beta设置为(0.9,0.999),学习率为0.005,权重衰减为0.0001,epoch=100,batchsize=20。

相比现有方法分解后的图像存在许多噪声,且图像边缘较为模糊的问题,本发明实施例的方法输出图像在相同物体的反射率上保持一致,在对边缘信息的保护和对噪声的去除方面表现较好,图像质量较高;本发明方法生成的结果无论是细节还是清晰度方面都与真值图像更为接近。

本发明实施例的一种基于交叉卷积神经网络的本质图像分解系统,包括:

分解模块,用于将待分解的原始图像输入训练好的GoogLeNet-VGG19交叉卷积神经网络模型中,获得原始图像分解得到的光照图和反射图;

其中,所述GoogLeNet-VGG19交叉卷积神经网络模型由光照图生成网络与反射图生成网络进行交叉融合构成;所述光照图生成网络基于GoogLeNet卷积神经网络构造,所述反射图生成网络基于VGG19卷积神经网络构造;

所述训练好的GoogLeNet-VGG19交叉卷积神经网络模型的获取步骤包括,采用Adam优化方法对光照图生成网络与反射图生成网络进行训练。

请参阅图1和图2,本发明实施例的一种基于改进GoogLeNet-VGG19交叉卷积神经网络的本质图像分解方法,包括以下步骤:

(1)构建训练图像样本库

采用MPCal本质图像数据集,从中取出1000幅图像,在每一幅图像中随机裁剪50个224*224的图像块,然后将这些图像块随机进行水平翻转、垂直翻转、旋转和镜像后,50个图像块变为200个图像块。此时,总的图像块数量为20万个。同时,在1000幅图像对应的光照图和反射图中,找到这20万个图像块对应的光照图块和反射图块。由图像块和对应的光照图块及反射图块构成了训练图像样本库。

(2)使用训练图像样本库对本发明方法构建的光照图生成网络和反射图生成网络同时进行训练,采用Adam优化方法,Adam优化参数beta设置为(0.9,0.999),学习率为0.005,权重衰减为0.0001,epoch=100,batchsize=20。当两个生成网络的损失函数最小时,停止训练,得到最终的光照图生成网络和反射图生成网络。在训练过程中,将光照图生成网络输出的光照图输入识别网络,识别网络输出光照图与训练样本标签图像一致的概率,对光照图生成网络的网络参数进行反向更新;将反射图生成网络输出的反射图输入识别网络,识别网络输出反射图与训练样本标签图像一致的概率,对反射图生成网络的网络参数进行反向更新;生成网络和识别网络采用TTUR训练方法,识别网络的训练次数与生成网络的训练次数比为3比1。

(3)如图2所示,将待处理的原始图像(图2中的(a)所示)分别输入最终的光照图生成网络和反射图生成网络中,输出图像就是原始图像分解得到的光照图和反射图(图2中的(b)和(c)所示)。从分解结果可以看出,本发明方法的本质图像分解结果噪声少,图像边缘清晰,图像整体的清晰度和质量都达到了比较高的水平,充分说明了本发明方法的有效性和实用性。

综上所述,本发明实施例提供一种基于改进GoogLeNet-VGG19交叉卷积神经网络的本质图像分解方法,首先构建训练图像样本库,然后基于传统GoogLeNet卷积神经网络进行改进构造光照图生成网络,基于传统VGG19卷积神经网络进行改进构造反射图生成网络,光照图生成网络与反射图生成网络进行交叉融合;接下来构造识别网络;最后采用Adam优化方法对光照图生成网络与反射图生成网络进行训练,得到最终的光照图生成网络与反射图生成网络。本发明本质图像分解的结果图像在相同物体的反射率上保持一致,在对边缘信息的保护和对噪声的去除方面表现较好,图像质量较高,无论是细节还是清晰度方面都与真值图像更为接近。

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

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

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

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

以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员依然可以对本发明的具体实施方式进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。

相关技术
  • 一种基于交叉卷积神经网络的本质图像分解方法及系统
  • 一种基于卷积神经网络的低剂量CT图像分解方法
技术分类

06120112984376