本发明涉及计算机技术领域,尤其涉及一种素描序约束下的素描生成的方法、装置、设备及存储介质。
背景技术:
人脸素描具有丰富的阴影纹理和很强的立体质感,能生动逼真地表现人物的个性特征,因此被广泛应用于法律实施和生活领域。比如,最近发生在美国的福建籍学生被杀案的侦破,就是通过目击证人的描述然后画人脸素描,最后用画出的人脸素描,最终锁定犯罪的,目前,基于深度学习的素描生成受到越来越多学者的关注,现有技术中通过深度学习的人脸素描生成方法包括:
1、通过端到端完全卷积网络的照片草图合成方法,即使用一个分支的全卷积神经网络生成一个结构保留的素描和一个纹理保留的素描,然后将它们融合在一起。2、通过将卷积变分自动编码器和cgan结合起来进行属性感知的人像素描生成。3、通过人脸特征和线积分卷机的肖像素描生成方法,首先进行人脸分割,然后根据分割结果使用线积分卷积算法绘制肖像素描。
上述方法都是关注如何能更好的学习到人脸到人像素描的映射,没有利用素描的中间结果来有效约束网络的特征学习过程,使得合成的人像素描非常模糊以及面部部位有很大的变形,从而到导致生成的素描质量差。
技术实现要素:
鉴于上述现有技术的不足,本发明的目的在于提供一种素描序约束下的素描生成的方法、装置及存储介质,能够让生成的的素描图像具有高分辨率和高细节保持度。
本发明实施例提供了一种素描序约束下的素描生成的方法,包括如下步骤:
重复以下步骤直至当前的素描图趋近于真值素描图;
获取生成器生成的当前素描图;
将当前素描图以及对应的真值素描图输入至cgan网络的判别器中进行判别,将当前素描图与原始图像输入至cgan网络的生成器中,以生成下一素描图;
将当前素描图更新为下一素描图。
优选地,在获取经过判别器判别后的上一素描图之前,还包括:
将原始图像与空白图像输入至cgan网络的生成器中,以生成当前素描图。
优选地,将原始图像与空白图像输入至cgan网络的生成器中,以生成当前素描图,具体为:
将原始图像与空白图像进行组合,以得到组合图像;
将所述组合图像输入至解码器中,以得到第一特征图;
将所述特征图输入至循环神经网络中,以生成加强素描次序特征信息后的第二特征图;
将所述第二特征图输入至编码器中,以得到当前素描图。
优选地,还包括:
基于对抗损失函数,以计算当前素描和真值素描之间的对抗损失;
基于l1范数,以计算当前素描和真值素描之间的重构损失;
基于梯度损失函数,以计算当前素描图的边缘损失;
获取对抗损失函数的第一权重以及梯度损失函数的第二权重;
根据对抗损失、重构损失、边缘损失、第一权重以及第二权重,以获得总损失值;
当总损失值趋近于零时,当前素描图趋近于真值素描。
优选地,对抗损失函数的表达式为:
本发明实施例还提供了一种素描序约束下的素描生成方法,包括:
获取单元,用于获取生成器生成的当前素描图;
输入单元,用于将当前素描图以及对应的真值素描图输入至cgan网络的判别器中进行判别,将当前素描图与原始图像输入至cgan网络的生成器中,以生成下一素描图。
更新单元,用于将当前素描图更新为下一素描图;
优选地,获取单元之前,还包括:
生成单元,用于将原始图像与空白图像输入至cgan网络的生成器中,以生成当前素描图。
优选地,生成单元,具体包括:
组合图像获得模块,用于将原始图像与空白图像进行组合,以得到组合图像;
第一特征图获取模块,用于将所述组合图像输入至解码器中,以得到第一特征图;
第二特征图获取模块,用于将所述特征图输入至循环神经网络中,以生成加强素描次序特征信息后的第二特征图;
当前素描图获取模块,用于将所述第二特征图输入至编码器中,以得到当前素描图。
优选地,还包括:
对抗损失获取单元,用于基于对抗损失函数,以计算当前素描和真值素描之间的对抗损失;
重构损失获取单元,用于基于l1范数,以计算当前素描和真值素描之间的重构损失;
边缘损失获取单元,用于基于梯度损失函数,以计算当前素描图的边缘损失;
权重获取单元,用于获取对抗损失函数的第一权重以及梯度损失函数的第二权重;
总损失值获取单元,用于根据对抗损失、重构损失、边缘损失、第一权重以及第二权重,以获得总损失值;
判断单元,用于当判断总损失值趋近于零时,当前素描图趋近于真值素。
优选地,对抗损失函数的表达式为:
本发明实施例还提供了一种素描序约束下的素描生成的设备,包括处理器及与所述处理器连接的运动传感器以及存储器,所述存储器内存储有计算机程序,所述计算机程序能够被所述处理器执行,以实现如上述的素描序约束下的素描生成的方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述的素描序约束下的素描生成的方法。
上述一个实施例中,重复以下步骤直至当前的素描图趋近于真值素描图;
通过获取生成器生成的当前素描图,并将当前素描图以及对应的真值素描图输入至cgan网络的判别器中进行判别,当判断当前素描描图不趋近于真值素描时,将当前素描图与原始图像输入至cgan网络的生成器中,以生成下一素描图,重复以上步骤直至当前的素描图趋近于真值素描图,根据人脸素描中的次序约束,将人脸素描生成过程分为多个阶段,然后利用每个阶段生成的素描的中间结果有效约束网络的特征学习过程,最后通过判别器进行判别,以使得生成具有高分辨率高和高细节保持度的人脸素描,从而提高生成的素描质量。
附图说明
图1为本发明实施例一提供的素描序约束下的素描生成的方法的流程图。
图2为本发明实施例一提供的素描序约束下的素描生成的结构示意图。
图3为本发明实施例一提供的生成器网络模型的结构示意图。
图4为本发明实施例一提供的判别器网络模型的结构示意图。
图5为本发明实施例二素描序约束下的素描生成的装置的结构图。
具体实施方式
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
实施例中提及的“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序。应该理解“第一\第二”区分的对象在适当情况下可以互换,以使这里描述的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
实施例一:
请参阅图1至图6,本发明第一实施例提供了一种素描序约束下的素描生成方法,按照画家作画的思路,将作画的次序约束分步输入到生成式对抗网络模型中(cgan网络),以分析人脸素描合成的质量,其可由素描生成设备来执行,特别的,由素描生成设备内的一个或多个处理器来执行,并至少包括如下步骤:
s101,获取生成器生成的当前素描图。
s102,将当前素描图以及对应的真值素描图输入至cgan网络的判别器中进行判别,并将当前素描图与原始图像输入至cgan网络的生成器中,以生成下一素描图。
在本实施例中,cgan网络包括生成器与判别器,其中,根据素描中的次序约束,将素描生成过程分为n阶段,每一个阶段的判别器和生成器是对抗关系,生成器的目的是使生成的素描和真值素描一样,判别器是对生成器生成的素描与真值素描进行比对判别。其中,每个阶段均含有相同结构的cnn编码器、解码器以及循环神经网络(convlstm),判别器采用了patchgan,但不限于此,patchgan的输出是一个n*n矩阵,每个元素如a[i,j]只有两个选择true或false,结果通常通过卷积层来实现,patchgan输出的矩阵大小为32*25。
参见图2至图4,需要说明的是,由于当前素描图是在上一素描图的基础上形成的,因此,首先需要计算第一素描图才能开始后续计算,即若上一层素描图为第一素描图,则当前素描图为第二素描图,依次类推。具体地,第一素描图是通过将原始图像与空白图像输入至cgan网络的生成器中生成的:首先将原始图像与空白图像进行组合,以得到组合图像;将所述组合图像输入至解码器中,以得到第一特征图;将所述特征图输入至循环神经网络中,以生成加强素描次序特征信息后的第二特征图;将所述第二特征图输入至编码器中,以得到第一素描图。每个阶段的解码器的输出的特征图,首先通过convlstm来强化“素描次序”特征信息,最后通过编码器生成素描图,这种设计模拟了人类素描过程,即先学习轮廓,之后逐步描写细节的过程,可以让网络逐步学习到更丰富的特征。其中,convlstm的核心公式的表达式如下:
it=σ(wxi*xt+whi*ht-1+bi)(1)
ft=σ(wxf*xt+whf*ht-1+bf)(2)
ot=σ(wxo*xt+who*ht-1+bo)(3)
s103,将当前素描图更新为下一素描图
在本实施例中,当判断更新后的当前素描图不趋近于真值素描图时,则重复以上步骤直至当前层素描图趋近于真值素描图。
综上,通过获取生成器生成的当前素描图,并将当前素描图以及对应的真值素描图输入至cgan网络的判别器中进行判别,当判断当前素描描图不趋近于真值素描时,将当前素描图与原始图像输入至cgan网络的生成器中,以生成下一素描图,重复以上步骤直至当前的素描图趋近于真值素描图,根据人脸素描中的次序约束,将人脸素描生成过程分为多个阶段,然后利用每个阶段生成的素描的中间结果有效约束网络的特征学习过程,最后通过判别器进行判别,以使得生成具有高分辨率高和高细节保持度的人脸素描,从而提高生成的素描质量。
在上述实施例的中,本发明一优选实施例中,还包括:
基于对抗损失函数,以计算当前素描和真值素描之间的对抗损失;基于l1范数,以计算当前素描和真值素描之间的重构损失;基于梯度损失函数,以计算当前素描图的边缘损失;获取对抗损失函数的第一权重以及梯度损失函数的第二权重;根据对抗损失、重构损失、边缘损失、第一权重以及第二权重,以获得总损失值;当总损失值趋近于零时,当前素描图趋近于真值素描。其中,对抗损失函数的表达式为:
本发明第二实施例:
参见图5,本发明第二实施例还提供了一种素描序约束下的素描生成装置,包括:
获取单元100,用于获取生成器生成的当前素描图;
输入单元200,用于将当前素描图以及对应的真值素描图输入至cgan网络的判别器中进行判别,当判断当前素描描图不趋近于真值素描时,将当前素描图与原始图像输入至cgan网络的生成器中,以生成下一素描图;
更新单元300,用于将当前素描图更新为下一素描图
在上述实施例的基础上,本发明一优选实施例中,获取单元100之前,还包括:
生成单元,用于将原始图像与空白图像输入至cgan网络的生成器中,以生成当前素描图。
在上述实施例的基础上,本发明一优选实施例中,生成单元,具体包括:
组合图像获得模块,用于将原始图像与空白图像进行组合,以得到组合图像;
第一特征图获取模块,用于将所述组合图像输入至解码器中,以得到第一特征图;
第二特征图获取模块,用于将所述特征图输入至循环神经网络中,以生成加强素描次序特征信息后的第二特征图;
当前素描图获取模块,用于将所述第二特征图输入至编码器中,以得到当前素描图。
在上述实施例的基础上,本发明一优选实施例中,还包括:
对抗损失获取单元,用于基于对抗损失函数,以计算当前素描和真值素描之间的对抗损失;
重构损失获取单元,用于基于l1范数,以计算当前素描和真值素描之间的重构损失;
边缘损失获取单元,用于基于梯度损失函数,以计算当前素描图的边缘损失;
权重获取单元,用于获取对抗损失函数的第一权重以及梯度损失函数的第二权重;
总损失值获取单元,用于根据对抗损失、重构损失、边缘损失、第一权重以及第二权重,以获得总损失值;
判断单元,用于当判断总损失值趋近于零时,当前素描图趋近于真值素。
在上述实施例的基础上,本发明一优选实施例中,对抗损失函数的表达式为:
本发明第三实施例还提供了一种素描序约束下的素描生成的设备,包括处理器及与所述处理器连接的运动传感器以及存储器,所述存储器内存储有计算机程序,所述计算机程序能够被所述处理器执行,以实现如上述实施例及其优选实施例的素描序约束下的素描生成的方法。
本发明第四实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述实施例及其优选实施例的素描序约束下的素描生成的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。