一种基于神经网络的单个图像重新着色方法与流程

文档序号:18512769发布日期:2019-08-24 09:14阅读:363来源:国知局
一种基于神经网络的单个图像重新着色方法与流程
本发明涉及一种彩色图像重新着色方法,尤其是一种基于神经网络的单个图像重新着色方法。
背景技术
:图像重新着色(recoloring)是指修改和调整图像颜色外观的处理过程。传统的重新着色技术是通过纯手工或者在计算机软件辅助下完成的,这项工作需要人工消耗大量的时间。因此近几年国内外许多科研人员不断探索新的方法来改善重新着色技术的效率和效果。虽然目前国内外在重新着色技术已经取得了很大进展,但是目前还需要进一步进行改善,问题主要体现在处理的效果和效率上。在效果方面,现有的图像重新着色方法经常会出现色彩渗透现象,图像重新着色的目标是使用尽可能少的用户交互,产生符合要求的高质量图像重新着色效果。在效率方面,当图像尺寸达到一定规模,求解非常耗时,而且由于计算机内存限制,图像尺寸进一步增加,有些重新着色方法甚至将无法获得重新着色结果。图像重新着色方法通常分为基于色彩迁移技术和基于着色线条传播技术。基于色彩迁移技术利用待重新着色图像和参考图像之间的映射关系来改变图像的颜色,这种方法的效果严重依赖于参考图像的选取,而寻找具有相似外观的参考图像是一项艰巨的工作,从而限制了该方法的应用。参见:e.reinhard,m.ashikhmin,b.gooch,andp.shirley.colortransferbetweenimages.ieeecomput.graph.appl.,2001,21(5):34–41。由于参考图像选取十分困难,有些方法直接采用调整调色板来编辑图像颜色。参见:q.zhang,c.xiao,h.sunandf.tang.palette-basedimagerecoloringusingcolordecompositionoptimization.ieeetransactionsonimageprocessing.2017,26(4):1952-1964,。huanghz等人提出了一种数据驱动的方法,从数据库中自动寻找匹配的参考图像,用于自动对照片进行重新着色,以增强照片的外观或改变观众对照片的情绪反应,对于一个新的输入图像,该方法可以生成多个重新着色的结果供用户选择,但是该方法需要和数据库中的图片逐一进行特征匹配,需要消耗大量的时间。参考huanghz,zhangsh,martinrr,etal.learningnaturalcolorsforimagerecoloring[j].computergraphicsforum,2014,33(7):299-308。相对来说基于着色线条传播技术允许用户交互式的输入着色线条,这种方法能更好的体现用户的交互性,获得高质量的重新着色效果。最近几年很多学者开始研究采用卷积神经网络训练来解决参考图像选取的问题,卷积神经网络能够有效的提取图像中的信息,这类方法通常利用现有的大规模场景分类数据库来训练卷积神经网络模型,当卷积神经网络模型训练完后,输入的待重新着色图像只需要进行一次前向传播,就能快速的获得重新着色效果。这种方法很好的解决了基于色彩迁移技术中参考图像选取的问题,但是正是这种方法能全自动的对图像进行重新着色,不需要用户的交互,因此获得的重新着色效果往往不是用户想要的结果。参见:satoshiiizuka,edgarsimo-serra,andhiroshiishikawa.lettherebecolor!:jointend-to-endlearningofglobalandlocalimagepriorsforautomaticimagecolorizationwithsimultaneousclassification.acmtransactionsongraphics(tog),2016,35(4):110。为了解决用户交互性的问题,richardzhang等人提出了一种基于用户引导的图像重新着色的深度学习方法。该方法直接将图像以及稀疏的本地用户“提示”映射到使用卷积神经网络(cnn)的输出。卷积神经网络从大规模数据中获得的低级提示和高级语义信息来传播用户编辑,为了指导用户进行有效的输入选择,该方法根据输入图像和当前用户输入推荐可能的颜色,着色是在一次前馈过程中执行的,可以实时使用。参见:richardzhang,jun-yanzhu,phillipisola,xinyanggeng,angelaslin,tianheyu,andalexeiaefros.real-timeuser-guidedimagecolorizationwithlearneddeeppriors.2017,arxivpreprintarxiv:1705.02999。但是这些方法都是建立在图像级的训练样本,通常训练一个深度学习神经网络需要有足够量的训练图像,而且需要几天甚至几个月来训练深度学习神经网络。在像素级的图像重新着色方法中,卷积神经网络通常采用图像补丁作为特征向量,产生的重新着色结果在边缘区域会出现色彩渗透,严重影响了图像重新着色的效果。因此这类方法后期需要采用边缘保持的图像滤波器来提高进一步改进图像重新着色的效果。目前,图像重新着色方法主要存在两大问题:第一,基本上绝大部分的图像分割方法非常耗时,而且由于计算机内存限制,图像尺寸进一步增加,有些重新着色方法甚至无法获得重新着色结果;第二,主流的基于深度学习神经网络的图像分割方法都是建立在图像级的训练样本,通常训练一个深度学习神经网络需要有足够量的训练图像,而且需要几天甚至几个月来训练深度学习神经网络。而且这些方法无法很好的和用户进行交互。技术实现要素:本发明的目的是为了克服现有技术存在的缺点和不足,而提供一种基于神经网络的单个图像重新着色方法,该方法利用深度学习神经网络,将图像重新着色作为一个像素级的多值分类问题,采用归一化的rgb颜色值作为特征向量来训练深度学习神经网络。为实现上述目的,本发明的技术方案是包括以下步骤:(1)输入待处理彩色图像,然后用户在待处理彩色图像进行线条着色,获得着色图像;(2)提取着色线条所在区域的像素特征值和相应的着色线条分类为数据集,并随机采样数据集中的数据作为训练神经网络的训练数据;(3)构建图像重新着色分类神经网络,并训练该神经网络;(4)训练完神经网络后,将待重新着色图像中逐个像素的特征值作为神经网络的输入,获得每个像素属于着色线条的似然概率;(5)根据神经网络输出的每个像素属于着色线条的似然概率,计算最终的图像重新着色结果。进一步设置是步骤(1)具体为:用户选取相应颜色的画笔,用户在待处理彩色图像上进行线条着色,着色线条的颜色值表示被画笔覆盖的区域图像重新着色后的颜色值,其中白色着色线条为特殊着色线条,当着色线条的颜色值为白色时,表示被画笔覆盖的区域图像重新着色后的颜色值保持不变。进一步设置是所述步骤具体为:提取着色线条所在区域的像素特征值和相应的涂色线条分类为数据集,为了减少神经网络的训练时间,对数据集进行随机采样;采样后数据作为训练神经网络的训练数据其中:i为索引值;zi为第i个训练样本的对应的着色线条分类向量,向量中目标分类的值等于1,其他分类的值等于0;ci为第i个训练样本的输入:ci=[(r,g,b)]i,(r,g,b)表示彩色图像的归一化rgb向量;m1为训练样本的数量,m1=ceil(βm),采样率β设置为0.1,ceil表示向上取整操作,m为被着色线条覆盖的像素个数。进一步设置是所述步骤(3)中构建图像重新着色分类神经网络具体为:图像重新着色分类神经网络由3组全连接层+relu激活函数,最后加1组全连接层+softmax激活函数组成,整个神经网络的连接顺序为:fc1-relu-fc2-relu-fc3-relu-fc4-softmax;其中fc1层、fc2层、fc3层和fc4为全连接层,fc1层输入神经元个数为3,输出神经元个数为64;fc2层输入神经元个数为64,输出神经元个数为128;fc3层输入神经元个数为128,输出神经元个数为128,fc4层为输入神经元个数为128,输出神经元个数为k,其中k为着色线条的种类数量;relu为非线性激活函数,relu(x)=max(0,x);整个神经网络具体操作如下:j(c)=fsoftmax(ffc4(frelu(ffc3(frelu(ffc2(frelu(ffc1(c))))))))其中:c=(r,g,b)是训练集中像素的归一化rgb向量;frelu对应relu激活函数;fsoftmax对应softmax激活函数;ffc1-ffc4对应全连接层。进一步设置是所述步骤(3)中训练神经网络包括有:训练样本经过全连接深度学习神经网络的输出和真实的训练样本输出之间的损失函数如下:其中:i,k为索引值;m1为训练样本的数量;k为着色线条的种类数量;l为交叉熵损失函数;ai为第i个训练样本在softmax层的未激活的输出;zi为训练集中第i个训练样本的分类向量,向量中目标分类zik等于1,其他分类zik等于0;pik为softmax的输出,计算了第i个训练样本预测为属于分类k的似然概率;对损失函数e进行优化求最小化的极值,可以获得深度学习神经网络的参数,本方法采用mini-batchadam优化算法来训练深度学习神经网络。进一步设置是所述步骤(4)包括有:图像重新着色分类神经网络训练完以后,将待处理彩色图像中逐个像素的特征值作为神经网络的输入,其中n为整个图像像素的个数;ci=[(r,g,b)]i,训练后的神经网络作为一个多值分类器产生每个像素属于着色线条的似然概率。进一步设置是所述步骤(5)包括有:神经网络的softmax层输出了每个样本属于着色线条的似然概率,最终的图像重新着色结果计算如下:其中:i为像素索引值;k为着色线条的种类数量;pik为第i个样本预测为属于分类k的似然概率;sk为第k种着色线条的颜色值;当着色线条为特殊白色着色线条时,sk的值为着色线条覆盖像素下图像原来的颜色值;y为最终的图像重新着色结果。本发明仅需要用户在待重新着色图像上输入少量的着色线条,然后提取着色线条所在区域的像素特征值和相应的着色线条分类为数据集,避免了神经网络在训练阶段需要大规模的训练样本的弊端,从而使得本方法能够达到近实时的交互性能,同时用户只需要输入少量的用户着色线条,就能获得高质量的图像重新着色效果。本发明的有益效果是:1.本发明仅需要用户在待重新着色图像上输入少量的着色线条,然后提取着色线条所在区域的像素特征值和相应的着色线条分类为数据集,避免了神经网络在训练阶段需要大规模的训练样本的弊端。2.本方法能够达到近实时的交互性能,使用尽可能少的用户交互,同时获得高质量的图像重新着色效果。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,根据这些附图获得其他的附图仍属于本发明的范畴。图1是本发明的流程图;图2是本发明神经网络模型;图3比较采样率β和迭代次数t对图像重新着色效果的影响;图4是本发明与目前主流的图像重新着色效果对比图;图5是本发明对多组图像重新着色的结果图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。本实施例所描述的一种基于全连接深度学习神经网络的单个图像分割方法,包括以下五个步骤,参见图1:s1:输入待处理彩色图像,然后用户在待处理彩色图像进行线条着色,获得着色图像;用户选取相应颜色的画笔,用户在待处理彩色图像上进行线条着色,着色线条的颜色值表示被画笔覆盖的区域图像重新着色后的颜色值,其中白色着色线条为特殊着色线条,当着色线条的颜色值为白色时,表示被画笔覆盖的区域图像重新着色后的颜色值保持不变。s2:提取着色线条所在区域的像素特征值和相应的着色线条分类为数据集,并随机采样数据集中的数据作为训练神经网络的训练数据;提取着色线条所在区域的像素特征值和相应的涂色线条分类为数据集,为了减少神经网络的训练时间,对数据集进行随机采样;采样后数据作为训练神经网络的训练数据其中:i为索引值;zi为第i个训练样本的对应的着色线条分类向量,向量中目标分类的值等于1,其他分类的值等于0;ci为第i个训练样本的输入:ci=[(r,g,b)]i,(r,g,b)表示彩色图像的归一化rgb向量;m1为训练样本的数量,m1=ceil(βm),采样率β设置为0.1,ceil表示向上取整操作,m为被着色线条覆盖的像素个数。s3:构建图像重新着色分类神经网络,并训练该神经网络;本发明的一种基于神经网络的单个图像重新着色方法,该神经网络模型架构见图2;神经网络每个全连接层的输入和输出神经元个数见表1,fc1-fc3每个全连接层后接一个relu激活函数,最后一个全连接层fc4后接softmax激活函数表1本方法神经网络每个全连接层的输入和输出神经元个数类型fc1fc2fc3fc4输入神经元个数364128128输出神经元个数64128128k图像重新着色分类神经网络由3组全连接层+relu激活函数,最后加1组全连接层+softmax激活函数组成,整个神经网络的连接顺序为:fc1-relu-fc2-relu-fc3-relu-fc4-softmax;其中fc1层、fc2层、fc3层和fc4为全连接层,fc1层输入神经元个数为3,输出神经元个数为64;fc2层输入神经元个数为64,输出神经元个数为128;fc3层输入神经元个数为128,输出神经元个数为128,fc4层为输入神经元个数为128,输出神经元个数为k,其中k为着色线条的种类数量;relu为非线性激活函数,relu(x)=max(0,x);整个神经网络具体操作如下:j(c)=fsoftmax(ffc4(frelu(ffc3(frelu(ffc2(frelu(ffc1(c))))))))其中:c=(r,g,b)是训练集中像素的归一化rgb向量;frelu对应relu激活函数;fsoftmax对应softmax激活函数;ffc1-ffc4对应全连接层。训练样本经过全连接深度学习神经网络的输出和真实的训练样本输出之间的损失函数如下:其中:i,k为索引值;m1为训练样本的数量;k为着色线条的种类数量;l为交叉熵损失函数;ai为第i个训练样本在softmax层的未激活的输出;zi为训练集中第i个训练样本的分类向量,向量中目标分类zik等于1,其他分类zik等于0;pik为softmax的输出,计算了第i个训练样本预测为属于分类k的似然概率;对损失函数e进行优化求最小化的极值,可以获得深度学习神经网络的参数,本方法采用mini-batchadam优化算法来训练深度学习神经网络。s4:训练完神经网络后,将待重新着色图像中逐个像素的特征值作为神经网络的输入,获得每个像素属于着色线条的似然概率;图像重新着色分类神经网络训练完以后,将待处理彩色图像中逐个像素的特征值作为神经网络的输入,其中n为整个图像像素的个数;ci=[(r,g,b)]i,训练后的神经网络作为一个多值分类器产生每个像素属于着色线条的似然概率。s5:根据神经网络输出的每个像素属于着色线条的似然概率,计算最终的图像重新着色结果;神经网络的softmax层输出了每个样本属于着色线条的似然概率,最终的图像重新着色结果计算如下:其中:i为像素索引值;k为着色线条的种类数量;pik为第i个样本预测为属于分类k的似然概率;sk为第k种着色线条的颜色值;当着色线条为特殊白色着色线条时,sk的值为着色线条覆盖像素下图像原来的颜色值;y为最终的图像重新着色结果。本方法提出了一种基于神经网络的单个图像重新着色方法,该方法利用深度学习神经网络,将图像重新着色作为一个像素级的多值分类问题,采用归一化的rgb颜色值作为特征向量来训练深度学习神经网络。本发明仅需要用户在待重新着色图像上输入少量的着色线条,然后提取着色线条所在区域的像素特征值和相应的着色线条分类为数据集,避免了神经网络在训练阶段需要大规模的训练样本的弊端,从而使得本方法能够达到近实时的交互性能,使用尽可能少的用户交互,同时获得高质量的图像重新着色效果。该方法包括输入待处理彩色图像,然后用户在待处理彩色图像进行线条着色,获得着色图像;提取着色线条所在区域的像素特征值和相应的着色线条分类为数据集,并随机采样数据集中的数据作为训练神经网络的训练数据;构建图像重新着色分类神经网络,并训练该神经网络;训练完神经网络后,将待重新着色图像中逐个像素的特征值作为神经网络的输入,获得每个像素属于着色线条的似然概率;根据神经网络输出的每个像素属于着色线条的似然概率,计算最终的图像重新着色结果。本发明使用python3.7和chainer5.3.0库实现了基于神经网络的单个图像重新着色方法,所有实验都是在nvidiageforcertx2080tigpu和inteli9-7900xcpu的机器上进行的。本发明方法只提取了着色线条所在区域的像素特征值和相应的着色线条分类为数据集,但是训练神经网络仍然需要十几秒,为了减少训练时间,本发明方法提出了一种有效的采样策略。因此有两个参数影响了本发明方法的重新着色效果,一个是训练集的采样率β,另一个是神经网络的迭代次数t。图3比较了采样率β和迭代次数t对图像重新着色效果的影响,如图所示,当采样率β=0.1,迭代次数t=2时,图像重新着色效果几乎收敛。在这里,我们看到较高的采样率β和迭代次数t不会产生明显更好的重新着色效果。在实验中,我们已经确定,通常10%的用户笔画像素β=0.1足以训练我们的神经网络用于图像重新着色。因此,本发明方法采用图像着色的采样率为β=0.1,迭代次数为t=2。图4显示了本发明与目前主流的图像重新着色方法效果对比图,白色笔画表示图像重新着色后该区域颜色应保持不变,而其他颜色笔画表示图像重新着色后的最终颜色。图4比较了本发明方法与主流的重新着色方法deepprop、全局优化方法和局部优化方法效果对比结果。从图中可以看出,局部优化和全局优化方法都有各自的局限性。局部优化方法(参考:anatlevin,danilischinski,andyairweiss.colorizationusingoptimization.inacmtransactionsongraphics(tog),volume23,pages689–694.acm,2004.)只考虑局部窗口(3×3)内的局部空间邻域传播。局部图像方法为用户提供了良好的局部控制,但当对提供的颜色约束进行相对较远的重新着色时,这种方法的性能较差。因此,他们的方法需要加入更多的用户交互来实现高质量的结果。全局优化方法(参考:przemyslawmusialski,mingcui,jiepingye,anshumanrazdan,andpeterwonka.aframeworkforinteractiveimagecolorediting.thevisualcomputer,29(11):1173–1186,2013.)可以实现全局颜色传播,用户只需要输入少量的着色线条就可以产生高质量的图像重新着色效果,但是该方法需要消耗很大的内存,当图像达到一定的尺寸,甚至无法产生正确的结果。deepprop(参考:yukiendo,satoshiiizuka,yoshihirokanamori,andjunmitani.deepprop:extractingdeepfeaturesfromasingleimageforeditpropagation.incomputergraphicsforum,volume35,pages189–201.wileyonlinelibrary,2016.)采用卷积神经神经网络来产生图像重新着色效果,但是由于使用图像补丁作为特征向量,deepprop在重新着色的边缘附近会失去精度,需要采用边缘保持滤波器对图像重新着色的结果进行进一步完善,以提高图像重新着色的质量。而本发明方法只需要输入少量的用户重新着色线条就可以产生高质量的图像重新着色效果,后期无需进行完善步骤;同时由于只提取了着色线条所在区域的像素特征值和相应的着色线条分类为数据集,并提出了一种有效的采样策略,使得神经网络的训练达到了近实时的性能,采用mini-batch批量训练,对内存的消耗也很小。表2本发明方法运行效率(采样率为β=0.1,迭代次数为t=2)为了测试本发明方法的运行效率,表2显示了图4中三组图像的运行时间,第三列显示了着色线条像素点个数,第四列显示了本发明方法运行时间,从表2中可以看出,因为本发明方法仅仅利用涂色线条所在区域的像素特征值和相应的涂色线条分类为训练集,并采用了有效的采样策略;从而大大的减少了神经网络训练的时间和内存要求,只需要1~2秒的时间就能完成图像重新着色。图5是本发明对多组图像重新着色的结果图,从图5中可以看出,本发明方法针对各种图像,仅需要少量的用户输入,就可以获得高质量的图像重新着色效果。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如rom/ram、磁盘、光盘等。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1