基于先验知识的单张图片重打光方法、系统、终端及存储介质
技术领域
本申请涉及单张图片的重打光
技术领域
,特别是涉及基于先验知识的单张图片重打光方法、系统、终端及存储介质。背景技术
重打光技术(Relighting)通常是指将特定物体的光影修改为受指定的环境光(EnvironmentMap)影响下的结果。目前的重打光技术主要为穹顶光场(Light FieldStage),传统重打光技术需要预先在设备中拍摄所有光线,存在耗时多、数据多、渲染慢等问题,在目前移动端的表现欠佳。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供,用于解决现有技术中传统的重打光技术前置多、渲染慢、数据多等技术问题。
为实现上述目的及其他相关目的,本申请的第一方面提供一种基于先验知识的单张图片重打光方法,包括:给定用于重打光的物体图片及作为环境光的全景图片;将所述物体图片和全景图片输入基于先验知识的卷积神经网络;通过所述卷积神经网络的编码器,提取物体图片中物体的高维度特征和所处环境光;将提取出的所处环境光替换为给定的环境光,并将作为环境光的图片与提取到的高维度特征输入所述卷积神经网络中的解码器,并在所述编码器和解码器中布置跳跃连接,据以获得重打光图片。
于本申请的第一方面的一些实施例中,所述基于先验知识的卷积神经网络的训练过程包括:基于穹顶光场获取拍摄对象在不同光照条件下的多张图像;将所述多张图像作为训练集来训练卷积神经网络。
于本申请的第一方面的一些实施例中,所述方法还包括使用多尺度渐进式训练方式来训练所述卷积神经网络,其包括先使用64×64尺寸的图像输入卷积神经网络进行训练,并在收敛后每次将输出图像的尺寸翻一倍后再输入卷积神经网络中进行训练,直至图像尺寸达到512×512。
于本申请的第一方面的一些实施例中,所述提取物体图片中物体的高维度特征和所处环境光的过程包括:所述编码器通过若干层卷积层、激活层和池化层将512×512大小的输入图像编码为512层16×16大小的特征;其中,512层16×16大小的特征中间的3层被设定为输入图像所处的环境光。
于本申请的第一方面的一些实施例中,所述重打光图片的获取方式包括:预训练的卷积神经网络中的解码器通过数层上采样层、卷积层和激活层将512层16×16大小的特征和对应的跳跃连接解码为512×512的输出图像。
于本申请的第一方面的一些实施例中,所述卷积神经网络还设置损失函数;所述损失函数包括如下任一种或多种组合:从输入图像经过编码器输出的环境光与真实环境光的对数1范数距离;不替换环境光直接经过解码器输出的输出图像与输入图像的1范数距离和多尺度结构相似性;替换环境光之后经过解码器输出的输出图像与真实图像的1范数距离和多尺度结构相似性;替换环境光之后经过解码器输出的输出图像与真实图像的生成式对抗网络损失函数;输出的分割与真实分割的交叉熵损失;具有视频连续性的相邻两帧替换环境光之后经过解码器输出的两帧输出图像经过对应光流变换后的1范数距离和多尺度结构相似性。
为实现上述目的及其他相关目的,本申请的第二方面提供一种基于先验知识的单张图片重打光系统,包括:图片输入模块,用于给定用于重打光的物体图片及作为环境光的全景图片;将所述物体图片和全景图片输入基于先验知识的卷积神经网络;特征提取模块,用于通过所述卷积神经网络的编码器,提取物体图片中物体的高维度特征和所处环境光;重打光模块,用于将提取出的所处环境光替换为给定的环境光,并将作为环境光的图片与提取到的高维度特征输入所述卷积神经网络中的解码器,并在所述编码器和解码器中布置跳跃连接,据以获得重打光图片。
为实现上述目的及其他相关目的,本申请的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述基于先验知识的单张图片重打光方法。
为实现上述目的及其他相关目的,本申请的第四方面提供一种电子终端,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行所述基于先验知识的单张图片重打光方法。
如上所述,本申请的基于先验知识的单张图片重打光方法、系统、终端及存储介质,具有以下有益效果:
1)没有前置需求,步骤简单,仅需一张给定物体的图片即可完成,无需在穹顶光场中预先拍摄所有光纤;
2)渲染速度快,卷积神经网络在现有硬件条件下可达到实时;
3)占用的数据少,相比穹顶光场对于单个物体重打光需要的数个GB,本发明所占用的空间仅为数十MB。
附图说明
图1显示为本申请一实施例中基于先验知识的单张图片重打光方法的流程示意图。
图2显示为本申请一实施例中基于先验知识的单张图片重打光系统的结构示意图。
图3显示为本申请一实施例中电子终端的结构示意图。
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,在下述描述中,参考附图,附图描述了本申请的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本申请的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本申请的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本申请。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、“下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。
在本申请中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”、“固持”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。应当进一步理解,此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
本发明利用穹顶光场完成对于卷积神经网络的预训练,给予卷积神经网络对于某一类物体的光影的先验知识。之后本发明可以快速地对同类其他物体进行重打光,有效解决了传统重打光技术需要预先在设备中拍摄所有光线,存在耗时多、数据多、渲染慢等问题。为了使本发明的目的、技术方案及优点更加清楚明白,通过下述实施例并结合附图,对本发明实施例中的技术方案的进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定发明。
如图1所示,展示了本发明一实施例中基于先验知识的单张图片重打光方法的流程示意图。需说明的是,本发明中的单张图片重打光方法可应用于计算机设备,如台式电脑、笔记本电脑、平板电脑、智能手机、智能手环、智能手表、智能头盔等;也可应用于服务器,所述服务器可以根据功能、负载等多种因素布置在一个或多个实体服务器上,也可以由分布的或集中的服务器集群构成。
在本实施例中,基于先验知识的单张图片重打光方法主要包括步骤S11~S14,下文将对各个步骤做进一步的解释说明。
步骤S11:给定用于重打光的物体图片及作为环境光的全景图片。需说明的是,所述环境光是指日常生活中用于照明的各类光线,例如生活中所出现的人工光线或戏剧创作的内景,可利用环境光线营造各类光线,如阴、晴、日、夜、黄昏、黎明等;常见的环境光如太阳光、灯之类的光源产生的光,还有如大厦玻璃幕墙反射的光也是环境光的一种。
步骤S12:将所述物体图片和全景图片输入基于先验知识的卷积神经网络。
所述卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,其仿造生物的视知觉机制构建,可以进行监督学习和非监督学习。通常而言,卷积神经网络的结构包括输入层、隐含层和输出层。
输入层可以处理多维数据,较为常见的有,一维卷积神经网络的输入层接收一维或二维数组(一维数组通常是时间或频谱采样,二维数组可能包含多个通道),二维卷积神经网络的输入层接收二维或三维数据,三维卷积神经网络的输入层接收四维数组。
隐含层包括卷积层、池化层和全连接层3类常见构筑:卷积层的功能是对输入数据进行特征提取,其内部包含多个卷积核,组成卷积核的每个元素都对应一个权重系数和一个偏差量,类似于一个前馈神经网络的神经元;卷积层中包含激励函数(如ReLU函数)以协助表达复杂特征。池化层的功能是在卷积层进行特征提取后其输出的特征图会被传递至池化层进行特征选择和信息过滤;池化层包含预设定的池化函数,其功能是将特征图中单个点的结果替换为其相邻区域的特征图统计量。全连接层位于卷积神经网络隐含层的最后部分,并只向其它全连接层传递信号,其作用是对提取的特征进行非线性组合以得到输出,以利用现有的高阶特征完成学习目标。
输出层的上游通常是隐含层末尾的全连接层,其使用逻辑函数或归一化指数函数(softmax function)输出分类标签;在物体识别问题中,输出层可设计为输出物体的中心坐标、大小和分类;在图像语义分割中,输出层直接输出每个像素的分类结果。
卷积神经网络的训练主要是如下2个阶段:第一阶段是数据由低层次向高层次传播的阶段,即前向传播阶段;第二阶段是当前向传播得出的结果与预期不相符时,将误差从高层次向低层次进行传播训练的阶段,即反向传播阶段。具体的训练步骤包括:1.网络进行权值的初始化;2.输入数据经过卷积层、下采样层、全连接层的向前传播得到输出值;3.求出网络的输出值与目标值之间的误差;4.当误差大于我们的期望值时,将误差传回网络中,依次求得全连接层,下采样层,卷积层的误差;各层的误差可以理解为对于网络的总误差;5.若误差大于期望值,则回到上述的步骤2继续训练;6.若总误差等于或小于期望值,则结束训练。
在本实施例中,所述基于先验知识的卷积神经网络的训练过程包括:基于穹顶光场获取拍摄对象的多张图像,将所述多张图像作为训练集来训练卷积神经网络。所述穹顶光场可以是一个包含约150个256级可控LED光源的球形灯光拍摄系统,每个LED光源带有6个高亮度LED灯珠,这些灯珠分为两组独立控制,每组分别安装有不同的偏振片;光源均匀分布于一个直径约3米的铝合金框架球体上,所有灯光以最高1000Hz的频率变化亮度,并与一台高速相机,三十台工业相机实现毫秒级同步,所有的灯光每变化一次亮度的同时,高速相机进行一次拍摄,以这种方式,可以采集到被拍摄物体在不同光照条件下的表现,这些表现数据可作为训练卷积神经网络的训练数据。
优选的,在所述基于先验知识的卷积神经网络的训练过程中,预先使用穹顶光场对某一类物体拍摄的数据对卷积神经网络进行训练,使卷积神经网络获取对于某一类物体的光影先验知识。
优选的,在所述基于先验知识的卷积神经网络的训练过程中,使用多尺度渐进式训练方式,例如先对网络输入输出64×64大小的图像进行训练,在收敛后每次将输出图像大小翻一倍进行训练,直至到达512×512大小。
步骤S13:通过所述卷积神经网络的编码器,提取所述物体图片中物体的高维度特征和所处环境光。
举例来说,预训练的卷积神经网络包括一个编码器和一个解码器,编码器通过数层卷积层、激活层和池化层将512×512大小的输入图像编码为512层16×16大小的特征。其中512层16×16大小的特征中间的3层人为定义为输入图像所处的环境光,即16×16大小的环境光展开图,以此完成后续对于环境光的替换。
需说明的是,跳跃连接(skip connection)通常用于残差网络中,它的作用是在比较深的网络中,解决在训练过程中梯度爆炸和梯度消失的问题;在一般的神经网络中,需要经过I+1层才能到达I+2层,而在残差块中直接将a[I]穿出到I+2层,使得a[l+2]=g(z[l+2]+a[l]),即在a[l+2]个激活单元除了与第I+2层的z相关,还与第I层的a相关,这就是跳跃连接。
步骤S14:将提取出的所处环境光替换为给定的环境光,并将作为环境光的图片与提取到的高维度特征输入所述卷积神经网络中的解码器,并在所述编码器和解码器中布置跳跃连接,据以获得重打光图片。
预训练的卷积神经网络中的解码器通过数层上采样层、卷积层和激活层将512层16×16大小的特征和对应的跳跃连接解码为512×512的输出图像。其中512层16×16大小的特征中间的3层人为定义为输入图像所处的环境光,即16×16大小的环境光展开图,以此完成后续对于环境光的替换。在人脸重打光任务中,输出图像除3层512×512表示色彩外,还要求网络输出2层分别对人脸皮肤、头发的分隔,加强网络对于两者区别的认识并且防止抖动。
在一些示例中,所述卷积神经网络还设置损失函数,损失函数用于评价模型的预测值和真实值不一样的程度,损失函数越好通常模型的性能越好。在本实施例中的卷积神经网络,可构建的损失函数包括但不限于如下:从输入图像经过编码器输出的环境光与真实环境光的对数1范数距离;不替换环境光直接经过解码器输出的输出图像与输入图像的1范数距离和多尺度结构相似性;替换环境光之后经过解码器输出的输出图像与真实图像的1范数距离和多尺度结构相似性;替换环境光之后经过解码器输出的输出图像与真实图像的生成式对抗网络损失函数;输出的分割与真实分割的交叉熵损失;具有视频连续性的相邻两帧替换环境光之后经过解码器输出的两帧输出图像经过对应光流变换后的1范数距离和多尺度结构相似性。
如图2所示,展示了本发明一实施例中基于先验知识的单张图片重打光系统的结构示意图。本实施例的单张图片重打光系统200包括图片输入模块201、特征提取模块202和重打光模块203。
所述图片输入模块201用于给定用于重打光的物体图片及作为环境光的全景图片;将所述物体图片和全景图片输入基于先验知识的卷积神经网络。
需说明的是,所述卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,其仿造生物的视知觉机制构建,可以进行监督学习和非监督学习。通常而言,卷积神经网络的结构包括输入层、隐含层和输出层,卷积神经网络的结构于前文中有过详细记载,此处不再赘述。
所述特征提取模块202用于通过所述卷积神经网络的编码器,提取物体图片中物体的高维度特征和所处环境光。
举例来说,预训练的卷积神经网络包括一个编码器和一个解码器,编码器通过数层卷积层、激活层和池化层将512×512大小的输入图像编码为512层16×16大小的特征。其中512层16×16大小的特征中间的3层人为定义为输入图像所处的环境光,即16×16大小的环境光展开图,以此完成后续对于环境光的替换。
需说明的是,跳跃连接(skip connection)通常用于残差网络中,它的作用是在比较深的网络中,解决在训练过程中梯度爆炸和梯度消失的问题;在一般的神经网络中,需要经过I+1层才能到达I+2层,而在残差块中直接将a[I]穿出到I+2层,使得a[l+2]=g(z[l+2]+a[l]),即在a[l+2]个激活单元除了与第I+2层的z相关,还与第I层的a相关,这就是跳跃连接。
所述重打光模块203用于将提取出的所处环境光替换为给定的环境光,并将作为环境光的图片与提取到的高维度特征输入所述卷积神经网络中的解码器,并在所述编码器和解码器中布置跳跃连接,据以获得重打光图片。
训练的卷积神经网络中的解码器通过数层上采样层、卷积层和激活层将512层16×16大小的特征和对应的跳跃连接解码为512×512的输出图像。其中512层16×16大小的特征中间的3层人为定义为输入图像所处的环境光,即16×16大小的环境光展开图,以此完成后续对于环境光的替换。在人脸重打光任务中,输出图像除3层512×512表示色彩外,还要求网络输出2层分别对人脸皮肤、头发的分隔,加强网络对于两者区别的认识并且防止抖动。
在一些示例中,所述系统200还包括损失函数模块204,损失函数模块204用于评价模型的预测值和真实值不一样的程度,损失函数越好通常模型的性能越好。在本实施例中的卷积神经网络,可构建的损失函数包括但不限于如下:从输入图像经过编码器输出的环境光与真实环境光的对数1范数距离;不替换环境光直接经过解码器输出的输出图像与输入图像的1范数距离和多尺度结构相似性;替换环境光之后经过解码器输出的输出图像与真实图像的1范数距离和多尺度结构相似性;替换环境光之后经过解码器输出的输出图像与真实图像的生成式对抗网络损失函数;输出的分割与真实分割的交叉熵损失;具有视频连续性的相邻两帧替换环境光之后经过解码器输出的两帧输出图像经过对应光流变换后的1范数距离和多尺度结构相似性。
应理解,以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital signal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
如图3所示,展示了本发明一实施例中电子终端的结构示意图。本实例提供的电子终端,包括:处理器31、存储器32、通信器33;存储器32通过系统总线与处理器31和通信器33连接并完成相互间的通信,存储器32用于存储计算机程序,通信器33用于和其他设备进行通信,处理器31用于运行计算机程序,使电子终端执行如上基于先验知识的单张图片重打光方法的各个步骤。
上述提到的系统总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述基于先验知识的单张图片重打光方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
于本申请提供的实施例中,所述计算机可读写存储介质可以包括只读存储器、随机存取存储器、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存、U盘、移动硬盘、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。另外,任何连接都可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无线技术,从网站、服务器或其它远程源发送的,则所述同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线电和微波之类的无线技术包括在所述介质的定义中。然而,应当理解的是,计算机可读写存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性介质,而是旨在针对于非暂时性、有形的存储介质。如申请中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。
综上所述,本申请提供基于先验知识的单张图片重打光方法、系统、终端及存储介质,1)没有前置需求,步骤简单,仅需一张给定物体的图片即可完成,无需在穹顶光场中预先拍摄所有光纤;2)渲染速度快,卷积神经网络在现有硬件条件下可达到实时;3)占用的数据少,相比穹顶光场对于单个物体重打光需要的数个GB,本发明所占用的空间仅为数十MB。所以,本申请有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。