一种基于生成对抗神经网络的图像去台标方法与流程

文档序号:17118150发布日期:2019-03-15 23:32阅读:286来源:国知局
一种基于生成对抗神经网络的图像去台标方法与流程

本发明涉及图像处理技术领域,尤其涉及一种基于生成对抗神经网络的图像去台标方法。



背景技术:

在广播电视领域大部分素材都带有台标,但是在某些应用场景下,会因为版权或者其他原因需要将台标遮盖或去掉。传统的去台标方法有分水岭算法、快速行进算法(又称ffm算法)等,虽然处理速度快,但是大多数情况下,尤其在背景细节比较多的场景下,处理后的图像会出现图像变形,还会留有明显的台标痕迹。



技术实现要素:

针对上述现有技术的不足,本发明提供了一种生成对抗神经网络的图像去台标方法,有效解决了现有技术中台标后后图像会出现变形、留下明显台标痕迹的技术问题。

为了实现上述目的,本发明通过以下技术方案实现:

一种基于生成对抗神经网络的图像去台标方法,包括:

s10构建训练数据集和测试数据集;

s20构建生成器网络,所述生成器网络用于根据输入的带台标的图像和台标蒙版图像生成不带台标的图像;

s30构建判别器网络,与生成器网络的输出端连接,所述判别器网络用于对真实的不带台标的图像和生成器网络输出的不带台标的图像进行真假判断;

s40根据训练数据集对生成器网络和判别器网络进行训练;

s50使用训练好的生成器网络对测试数据集进行去台标操作。

进一步优选地,在步骤s10中包括:

s11从数据集中随机抽取一图像,并从中随机截取预设大小的图像;

s12将截取的图像中的rgb数据进行归一化,得到一真实的不带台标的图像;

s13重复步骤s11~s12预设次数,得到预设数量的真实的不带台标的图像数据;

s14制作所述预设大小的透明台标图像,作为台标蒙版图像;

s15将真实的不带台标的图像与台标蒙版叠加得到所述预设数量的带台标的图像;

s16将带台标的图像中的rgb数据进行归一化,得到带台标的图像数据。

进一步优选地,在步骤s20,构建的生成器网络中依次包括:第一卷积层、relu激活层、密集连接块、第二卷积层、batchnormal归一化层、第三卷积层、第四卷积层及tanh激活层,所述生成器网络的输入由带台标的图像和台标蒙版图像的矩阵叠加而成。

进一步优选地,在所述第一卷积层中,卷积核为9×9,输出由64个特征形成的特征地图;

在所述第二卷积层中,卷积核为3×3,输出由64个特征形成的特征地图;

在所述第三卷积层中,卷积核为3×3,输出由256个特征形成的特征地图;

在所述第四卷积层中,卷积核为9×9,输出由3个特征形成的特征地图。

进一步优选地,密集连接块之间的方式为密集连接,每个密集连接块中依次包括:第五卷积层、batchnormal归一化层、relu激活层、第六卷积层及batchnormal归一化层;

在所述第五卷积层和第六卷积层中,卷积核为3×3,输出由64个特征形成的特征地图。

进一步优选地,在步骤s30,构建的判别器网络中依次包括:第七卷积层、lrelu激活层、第八卷积层、batchnormal归一化层、lrelu激活层、第九卷积层、batchnormal归一化层、lrelu激活层、第十卷积层、batchnormal归一化层、lrelu激活层、第十一卷积层、batchnormal归一化层、lrelu激活层、第十二卷积层、batchnormal归一化层、lrelu激活层、第十三卷积层、batchnormal归一化层、lrelu激活层、第十四卷积层、batchnormal归一化层、第十五卷积层、batchnormal归一化层、lrelu激活层、第十六卷积层、batchnormal归一化层、lrelu激活层、第十七卷积层、batchnormal归一化层、lrelu激活层、用于将一个多维向量经过reshape操作变成n维向量的展平层及输出一维向量的密集连接层。

进一步优选地,在所述第七卷积层中,卷积核为4×4,输出由64个特征形成的特征地图,且移动步长为(2,2);

在所述第八卷积层中,卷积核为4×4,输出由128个特征形成的特征地图,且移动步长为(2,2);

在所述第九卷积层中,卷积核为4×4,输出由256个特征形成的特征地图,且移动步长为(2,2);

在所述第十卷积层中,卷积核为4×4,输出由512个特征形成的特征地图,且移动步长为(2,2);

在所述第十一卷积层中,卷积核为4×4,输出由1024个特征形成的特征地图,且移动步长为(2,2);

在所述第十二卷积层中,卷积核为4×4,输出由2048个特征形成的特征地图,且移动步长为(2,2);

在所述第十三卷积层中,卷积核为1×1,输出由1024个特征形成的特征地图,且移动步长为(1,1);

在所述第十四卷积层中,卷积核为1×1,输出由512个特征形成的特征地图,且移动步长为(1,1);

在所述第十五卷积层中,卷积核为1×1,输出由128个特征形成的特征地图,且移动步长为(1,1);

在所述第十六卷积层中,卷积核为3×3,输出由128个特征形成的特征地图,且移动步长为(1,1);

在所述第十七卷积层中,卷积核为3×3,输出由512个特征形成的特征地图,且移动步长为(1,1)。

进一步优选地,在步骤s40,根据训练数据集对生成器网络和判别器网络进行训练中包括:

s41分别定义损失函数和优化函数;

s42基于定义的损失函数、优化函数及训练数据集对生成器网络和判别器网络进行训练。

进一步优选地,在步骤s41中,损失函数包括生成器损失和判别器损失,其中,

生成器损失中包括mse损失、纹理损失及gan损失,所述mse损失为真实的不带台标图像与生成器网络生成的不带台标图像之间的均方误差,所述纹理损失为真实的不带台标图像与生成器网络生成的不带台标图像的特征间的欧氏距离,所述gan损失表示生成让判别器无法区分的数据分布;

判别器损失表示判别器网络将生成器网络生成的不带台标的图像判定为真实图像的概率与将真实的不带台标的图像判定为真实图像的概率之差;

优化函数为rmsprop。

进一步优选地,在步骤s42,基于定义的损失函数、优化函数及训练数据集对生成器网络和判别器网络进行训练中包括:

s421从训练数据集中读取指定数量的样本图像;

s422根据定义的损失函数和优化函数对判别器网络的参数进行优化;

s423将判别器网络的参数截断在-0.01和0.01之间;

s424进一步优化生成器网络的参数,直到生成器损失和判别器损失均达到预设值,完成训练。

在本发明提供的生成对抗神经网络的图像去台标方法中,有益效果在于:基于对抗神经元网络构建生成器网络和判别器网络后,根据定义的损失函数和优化函数对其进行参数的优化,完成训练。训练得到的生成器网络去台标效果明显好于传统算法,在大部分场景下基本看不到台标残留的痕迹,图像修复程度好,在修复区域不容易出现图像变形。

附图说明

结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:

图1为本发明中基于生成对抗神经网络的图像去台标方法的流程示意图;

图2为本发明中生成器网络结构示意图;

图3为本发明中连接块结构示意图;

图4为本发明中判别器网络结构示意图。

具体实施方式

为使本发明的内容更加清楚易懂,以下结合说明书附图,对本发明的内容作进一步说明。当然本发明并不局限于该具体实施例,本领域内的技术人员所熟知的一般替换也涵盖在本发明的保护范围内。

如图1所示为本发明提供的基于生成对抗神经网络的图像去台标方法的流程示意图,从图中可以看出,在该图像去台标方法中包括:

s10构建训练数据集和测试数据集;

s20构建生成器网络,生成器网络用于根据输入的带台标的图像和台标蒙版图像生成不带台标的图像;

s30构建判别器网络,与生成器网络的输出端连接,判别器网络用于对真实的不带台标的图像和生成器网络输出的不带台标的图像进行真假判断;

s40根据训练数据集对生成器网络和判别器网络进行训练;

s50使用训练好的生成器网络对测试数据集进行去台标操作。

在构建训练数据集和测试数据集的过程中,首先从数据集中选取一定数量的图像作为训练数据集和测试数据集,如,在一实例中,从div2k数据集中选定800张高清图片作为训练数据集,选定100张高清图片作为测试数据集。

之后,从数据集中随机抽取一图像,并从中随机截取预设大小(如,152×152)的图像,并将其rgb数据进行归一化到[-1,1]之间,得到一真实的不带台标的图像;重复这一过程预设次数,得到预设数量的真实的不带台标的图像数据。如,在一实例中,重复这一过程60000次,得到60000张真实的不带台标的图像数据。这一过程中,处理的对象包括训练数据集和测试数据集。

之后,对于制作预设大小(如,152×152)的透明台标图像,作为台标蒙版图像;并将之前制备的同样大小的真实的不带台标的图像与该台标蒙版叠加得到预设数量的带台标的图像;最后将带台标的图像中的rgb数据进行归一化到[-1,1]之间,得到相应数量的带台标的图像数据,这里的相应数量具体指与前一步骤中得到的真实的不带台标的图像数量,若在前一步骤中生成60000张真实的不带台标的图像数据,则在该步骤中相应的得到60000张带台标的图像。这一过程中,处理的对象同样包括训练数据集和测试数据集,训练数据集处理后得到的真实的不带台标的图像数据和带台标的图像数据作为训练对象,测试数据集带台标的图像数据和台标蒙版图像作为训练对象。

如图2所示,构建的生成器网络中依次包括:第一卷积层、relu激活层、密集连接块、第二卷积层、batchnormal归一化层、第三卷积层、第四卷积层及tanh激活层,生成器网络的输入由带台标的图像和台标蒙版图像的矩阵叠加而成。具体,在第一卷积层(图示中conv2d9×9×64)中,卷积核为9×9,输出由64个特征形成的特征地图;在第二卷积层(图示中conv2d3×3×64)中,卷积核为3×3,输出由64个特征形成的特征地图;在第三卷积层(图示中conv2d3×3×256)中,卷积核为3×3,输出由256个特征形成的特征地图;在第四卷积层(图示中conv2d9×9×3)中,卷积核为9×9,输出由3个特征形成的特征地图。

密集连接块由多个连接块(图示中denseblock)组成,如图3所示,每个连接块中依次包括:第五卷积层、batchnormal归一化层、relu激活层、第六卷积层及batchnormal归一化层;其中,在第五卷积层和第六卷积层(图示中conv2d3×3×64)中,卷积核为3×3,输出由64个特征形成的特征地图。连接块之间采用密集连接的方式进行连接,即当前连接块的输入为前面所有连接块的输出之和,如式(1)所示:

其中,ci表示第i个连接块的输入,bj表示第j个连接块的输出。如图示,在该生成器网络中包括5个连接块。

以下对各层中使用到的函数作出说明:

对于卷积来说,先定义一个卷积核(滤波矩阵),对于图像中的每一个像素点,计算它的邻域像素和滤波矩阵的对应元素的乘积,然后加起来,作为该像素位置的值。在深度学习过程中,卷积核的值一开始是未知的,每个元素初始化为接近为0的值,在训练过程中不断调整这些元素的值,使得最终结果准确率越来越高。

relu激活函数可表示为f(x)=max(0,x),当x>0,f(x)=x;x≤0,f(x)=0,该函数一般作为深度学习中的激活函数,用于避免梯度消失。

batchnormal归一化函数归一化的目标在于将输入的批数据变成均值为0,方差为1的批数据,用于避免深度学习网络的过程中出现过拟合。

tanh激活函数也称双切正切函数,其取值范围为[-1,1],函数如式(2)所示:

在一实例中,训练数据集中的图像大小为152x152,则生成器网络输入的是152x152x7维向量(由带台标的rgb图像和台标蒙版rgba图像叠加而成,7表示rgb图像中的rgb三个通道,和rgba图像中的rgba四个通道),输出152x152x3维向量,即输出去除了台标蒙版的rgb图像。

构建的判别器网络中依次包括:第七卷积层、lrelu激活层、第八卷积层、batchnormal归一化层、lrelu激活层、第九卷积层、batchnormal归一化层、lrelu激活层、第十卷积层、batchnormal归一化层、lrelu激活层、第十一卷积层、batchnormal归一化层、lrelu激活层、第十二卷积层、batchnormal归一化层、lrelu激活层、第十三卷积层、batchnormal归一化层、lrelu激活层、第十四卷积层、batchnormal归一化层、第十五卷积层、batchnormal归一化层、lrelu激活层、第十六卷积层、batchnormal归一化层、lrelu激活层、第十七卷积层、batchnormal归一化层、lrelu激活层、用于将一个多维向量经过reshape操作变成n维向量的展平层及输出一维向量的密集连接层。其中,在第七卷积层(图示中conv2d4×4×64)中,卷积核为4×4,输出由64个特征形成的特征地图,且移动步长为(2,2);在第八卷积层(图示中conv2d4×4×128)中,卷积核为4×4,输出由128个特征形成的特征地图,且移动步长为(2,2);在第九卷积层(图示中conv2d4×4×256)中,卷积核为4×4,输出由256个特征形成的特征地图,且移动步长为(2,2);在第十卷积层(图示中conv2d4×4×512)中,卷积核为4×4,输出由512个特征形成的特征地图,且移动步长为(2,2);在第十一卷积层(图示中conv2d4×4×1024)中,卷积核为4×4,输出由1024个特征形成的特征地图,且移动步长为(2,2);在第十二卷积层(图示中conv2d4×4×2048)中,卷积核为4×4,输出由2048个特征形成的特征地图,且移动步长为(2,2);在第十三卷积层(图示中conv2d1×1×1024)中,卷积核为1×1,输出由1024个特征形成的特征地图,且移动步长为(1,1);在第十四卷积层(图示中conv2d1×1×512)中,卷积核为1×1,输出由512个特征形成的特征地图,且移动步长为(1,1);在第十五卷积层(图示中conv2d1×1×128)中,卷积核为1×1,输出由128个特征形成的特征地图,且移动步长为(1,1);在第十六卷积层(图示中conv2d3×3×128)中,卷积核为3×3,输出由128个特征形成的特征地图,且移动步长为(1,1);在第十七卷积层(图示中conv2d3×3×512)中,卷积核为3×3,输出由512个特征形成的特征地图,且移动步长为(1,1)。在密集连接层中,“o=1”表示输出为1维向量。对于lrelu(leakyrelu)激活函数,给所有负值赋予一个非零斜率,当xi>0,f(xi)=xi;xi≤0,f(xi)=aixi,其中,ai为固定的常数,i表示不同的通道。

如图示,在该判别器网络中,网络的输入为152x152x3大小的向量,输出为1维向量,取值0-1之间,可以看成是真假的概率,如输出为0时为假(生成器网络输出的不带台标的图像),输出为1时为真(真实的不带台标的图像)。

构建了生成器网络和判别器网络之后,分别定义损失函数和优化函数,进而基于定义的损失函数、优化函数及训练数据集对生成器网络和判别器网络进行训练。

具体,损失函数ltotal包括生成器损失lg和判别器损失ld,即ltotal=lg+ld,其中,生成器损失lg中包括mse损失lmse、纹理损失lvgg及gan损失lgan,即lg=lmse+lvgg+lgan。

mse损失lmse为真实的不带台标图像与生成器网络生成的不带台标图像之间的均方误差,如式(3):

其中,yi表示真实的不带台标图像的值,y′i表示生成器网络生成的不带台标图像的值,m表示训练的次数。

纹理损失lvgg表示以预训练19层vgg网络的relu激活层为基础的vggloss,真实的不带台标图像与生成器网络生成的不带台标图像的特征间的欧氏距离。具体,在已经训练好的vgg上提出某一层的特征地图(featuremap),将生成的不带台标图像的这一个featuremap和真实的不带台标图像这一个featuremap比较,如式(4):

其中cj表示第j个max_poll层的通道数,wj代表第j个max_poll层的宽度,hj代表第j个max_poll层的高度,φj(inologo)表示真实的不带台标的图像经过vggnet后第j个max_poll层的输出,φj(g(inologo))表示由生成器生成的不带台标的图像经过vggnet后第j个max_poll层的输出。

gan损失lgan表示生成让判别器无法区分是真实的不带台标图像还是生成器生成的不带台标图像的数据分布,如式(5):

其中,dn(g(ilogo))表示判别器网络将生成器网络生成的不带台标的图像判定为真的概率,n表示训练的批处理数。

判别器损失ld表示判别器网络将生成器网络生成的不带台标的图像判定为真实图像的概率与将真实的不带台标的图像判定为真实图像的概率之差,使用近似wasserstein距离表示,如式(6);

其中,dn(g(ilogo))表示判别器网络将生成器网络生成的不带台标的图像判定为真的概率,dn(inologo)表示判别器网络将真实的不带台标的图像判定为真的概率,n表示训练的批处理数。

采用rmsprop优化函数分别对生成器网络的参数和判别器网络的参数进行优化,优化的目标函数分别为min(lg)和min(ld)。rmsprop是geoffhinton提出的一种自适应学习率方法,其通过引入一个衰减系数r,让r每回合都衰减一定比例。优化的过程具体wie:输入全局学习速率ε、初始参数θ、数值稳定量δ及衰减速率ρ,中间变量梯度累积量r(初始化0);从训练数据集中随机抽取一批容量为m的训练样本{x1,x2,...,xm}及输出yi;计算梯度和误差,更新r和其他待优化参数。

基于此,在训练的过程中,从训练数据集中读取指定数量(如8个样本图像)的样本图像;根据定义的损失函数和优化函数对判别器网络的参数进行优化;将判别器网络的参数截断在-0.01和0.01之间(当判别器网络中某一参数在[-0.01,0.01]之外,将其设定在其中间);进一步优化生成器网络的参数,直到生成器损失和判别器损失均达到预设值,完成训练后,将将生成器网络参数和判别器网络参数保存在硬盘中。在实例中,对于生成的60000个训练样本,根据设定的步长进行训练,如每100个样本图像训练一次等,可根据实际情况进行设定。

完成了生成器网络和判别器网络的训练之后,进行评估时,先从硬盘加载已训练好的生成器网络参数并初始化生成器,然后从测试数据集中读取一个待处理样本(由带台标蒙版图像和台标蒙版图像组成),输入到生成器网络,得到去除台标的图像。

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