本发明属于信息处理技术和人工智能技术领域,尤其涉及一种基于人工智能的产品三维展示方法及装置。
背景技术
目前,业内常用的三维技术可分为两类:
一类是由产品设计人员利用3dmax等三维cad建模工具建立产品的三维cad模型,然后将产品的三维cad模型导入三维引擎,通过用户接口接收用户请求的视点信息,再调用三维引擎渲染产品的三维cad模型,并通过栅格化的方法展现为一副产品的三维图像,因此产品的cad模型是产品三维展示的基础,而产品的cad模型的建模耗时长,投入大;
另一类是基于直接拍摄的产品图像的“伪三维”展示,是利用产品多角度图像或视频的拼接,然后通过用户接口接收用户当前请求的视点信息,显示产品的特定角度的图像或视频,但由于拍摄产品的图像或视频的角度是离散的,在产品展示时只能提供有限的视点供用户选择,因此为了获取更平滑的视点变化,需要特制的拍摄装置,如专利cn103077552b公开的技术使用了多台相机拍摄场景的多角度视频,并利用多面体盒子方法实现三维展示,此外使用多台相机拍摄产品的多角度图像或视频在原理上和使用一台相机旋转拍摄产品的图像和视频类似,专利cn104269125a或专利cn106981085a公开的利用特制设备拍摄产品图像或视频实现的产品三维展示。
综上所述,现有技术存在的问题是:
(1)基于产品的三维cad模型的在线三维展示所必须的三维cad模型的建模成本等导致大量的中小型或小微型企业的产品无法实现在线三维展示。
(2)基于多角度图像或视频拼接的伪三维展示不但无法在连续变化的视点下展示产品,而且还需要特制的拍摄设备,特制设备便捷性和成本等因素使得其不适用于大量的中小型或小微型企业的产品的三维展示目的;另一方面,如果不利用特制拍摄设备,利用手机或其他便携设备环绕产品拍摄的视频或图像时则会造成展示时用户看到的图像不连续且抖动,无法在用户脑海中形成产品的良好的三维映像。
解决上述技术问题的难度和意义:
广大的中小型或小微型企业的大量产品的三维展示迫切需要提供一种快速、低成本的产品三维展示方法。在立足于使用手机或其他便携拍摄设备拍摄的产品视频或图像的基础上,重新审视引发计算机三维图形学的早期人类视觉研究成果,如rogern.shepard,jacquelinemetzler.mentalrotationofthree-dimensionalobjects[j].science,1971,171(3972):701-703.,三维cad模型是三维引擎根据连续变化的视点信息渲染出产品的不同视点条件下的三维图像的依据,人们观察到了这些三维图像后,就在大脑中形成了产品的三维映像,那么在没有三维cad模型的前提下,为了能在用户脑海中形成产品的三维映像,如何根据连续变化的视点信息生成产品的不同视点条件下的三维图像是使得产品三维展示技术适合广大的中小型或小微型企业的大量产品也能实现三维展示的关键问题。
技术实现要素:
针对现有技术存在的问题,本发明提供了一种基于人工智能的产品三维展示方法及装置。本发明提供一种利用用户使用手机或其他设备环绕目标产品拍摄的视频或图像,构建基于人工智能的产品三维图像渲染模型,提供视点连续变化的产品图像的计算机生成方法,从而在一定程度上解决上述的问题。
本发明是这样实现的,本发明提出一种基于人工智能的产品三维图像生成方法,该方法通过人工神经网络建模三维图像渲染模型,接着根据人工智能的学习训练方法利用数据集对所述三维图像渲染模型进行一次训练,然后再利用用户拍摄的某一产品的视频或图像对三维图像渲染模型进行二次训练,最终获得针对该产品的三维图像渲染模型。利用所述的三维图像渲染模型,用户可以请求该产品在任意视点下的三维产品图像,而并不需要建立产品的三维cad模型,从而实现低成本、高效率、便捷的产品三维展示。
为达成以上的目的,根据本发明的第一方面实施例提出的一种基于人工智能的产品三维图像渲染方法,包括如下步骤:
步骤一、提出一种人工神经网络近似建模的三维图像渲染模型;
步骤二、利用三维模型及其对应图像构成的训练数据集以人工智能的学习训练方法对所述三维图像渲染模型进行训练,获取经过一次训练的三维图像渲染模型;
步骤三、获取用户围绕产品拍摄的视频或图像;
步骤四、利用当前产品的图像数据对所述的一次训练的三维图像渲染模型进行二次训练,获取针对该产品调优的三维图像渲染模型;
步骤五、获取用户请求的任意视点信息,将之输入三维图像渲染模型,从而获取所述产品在当前视点的三维图像。
在步骤一中,使用包含多种隐层的组合架构的人工神经网络来近似建模三维图像渲染模型;
所述的三维图像渲染模型包括第一输入层、第一卷积层组、第二输入层、第一上采样层组、第一残差网络块组、第二上采样层组、第一输出层、第三输入层、第二卷积层组、第二残差网络块组、第三上采样层组、第二输出层;以与请求视点相关的视点图像作为三维图像渲染模型的第一输入层并以请求视点信息作为三维图像渲染模型的第二输入层,所述第一输入层输入数据经过所述第一卷积层组处理后,与所述第二输入层输入数据经第一上采样层处理后的数据共同经所述第一残差网络块组处理,并经所述第二上采样层组处理后在所述第一输出层获得输出结果;以第一输出层的输出结果的融合结果作为第三输入层,所述第三输入层输入数据经所述第二卷积层组、所述第二残差网络块组、所述第三上采样层组处理后,在所述第三输出层获得输出结果,第三输出层的输出结果为三维图像渲染模型的输出数据。
在步骤二中,所述三维模型及其渲染图像的数据集为shapenet,来自changax,funkhousert,guibasl,etal.shapenet:aninformation-rich3dmodelrepository[j].arxivpreprintarxiv:1512.03012,2015。
在步骤二中,利用shapenet构建的数据集
其中,
在步骤二中,通过学习训练获取一次训练的三维图像渲染模型的学习训练过程在将三维图像渲染模型按网络架构分成两个子网络:第一子网络和第二子网络,首先通过人工智能的学习训练方法训练第一子网络,接着训练第二子网络,最后对整个网络进行联合调优;
在步骤二中,通过训练获取三维图像渲染模型的第一子网络的训练过程在于通过人工智能的学习训练使得第一子网络的的输出数据能最小化第一损失函数;
所述第一损失函数定义如下:
其中,第一子网络的输入是
在步骤二中,通过训练获取三维图像渲染模型的第二子网络的训练过程在于通过人工智能的学习训练使得第二子网络的的输出数据能最小化第二损失函数;
所述第二损失函数定义如下:
其中,
所述图像判别模型由卷积神经网络近似建模,所述图像判别模型包括输入层、第一卷积层、第二卷积层、第三卷积层、第四卷积层、全连接层,以训练样本中的产品三维图像或第二子网络的输出数据作为输入,所述输入经过所述输入层、所述第一卷积层、所述第二卷积层、所述第三卷积层、所述第四卷积层、所述全连接层后输出数据;
在步骤三中,用户拍摄产品的视频或图像时,优选地产品应放置在纯色背景下拍摄,并尽量在柔和的光照条件下拍摄;
在步骤三中,用户可以手持手机相机或其他相机围绕产品一周拍摄产品视频或图像,也可以转动产品拍摄产品一周的视频或图像;
在步骤三中,优选地,拍摄产品的视频或图像时产品应布满整个相机视野,并在拍摄过程中维持产品完整地出现在相机视野中;
在步骤三中,如果获取的是用户环绕产品拍摄的视频,则从视频中析出图像,所获得的产品图像定义为:
其中,
在步骤四中,对一次训练三维图像渲染模型的二次训练过程在于包含如下步骤:
1、利用三维重建的方法根据产品的多角度图像重建出各图像拍摄时的视点信息,以及产品在该视点下的深度数据,并以此构建训练数据集;
所述的三维重建的方法可选用基于运动结构重建(structurefrommotion,sfm)方法,如schonbergerjl,frahmjm.structure-from-motionrevisited[c]//proceedingsoftheieeeconferenceoncomputervisionandpatternrecognition.2016:4104-4113.;三维重建后可得数据为:
其中,
2、构建调优用训练数据集;
所述的训练数据集
其中,
3、通过学习训练获取调优的三维图像渲染模型的学习训练过程与步骤二的学习训练过程类似,在此不再赘述。
在步骤五中,获取用户当前请求的视点信息后,计算当前视点信息与所述调优数据集内训练样本的视点信息的相关度,并将相关的图像和用户请求视点作为三维图像渲染器的输入,获取三维图像渲染器的输出数据;
在步骤五中,将所述视点相关度作为权重系数,将相关图像和用户请求视点作为三维图像渲染器的输入后所获得的输出图像融合,将融合后图像作为展示给用户的产品三维图像。
本发明的另一目的在于提供一种基于人工智能的产品三维图像渲染装置,包括:
第一生成模块,用于利用三维模型及其对应图像构成的泛化训练数据集以人工智能的学习训练方法对所述三维图像渲染器进行训练,获取经过一次训练的一次训练三维图像渲染模型;
第一获取模块,用于获取用户围绕产品拍摄的视频或图像;
第一处理模块,用于利用当前产品的视频或图像构建特化训练数据集;
第二生成模块,用于利用特化训练数据集对所述的一次训练三维图像渲染模型再次训练,获取针对特点产品调优的三维图像渲染模型;
第二处理模块,用于获取用户请求的任意视点信息,将之作为三维图像渲染模型的输入数据,获取三维图像渲染模型的输出数据,将多个数据融合后即为所述产品在当前视点的三维图像。
本发明的另一目的在于提供一种实现所述基于人工智能的产品三维展示方法的计算机程序。
本发明的另一目的在于提供一种实现所述基于人工智能的产品三维展示方法的信息数据处理终端。
本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的基于人工智能的产品三维展示方法。
本发明的另一目的在于提供一种搭载有所述基于人工智能的产品三维图像渲染装置的信息数据处理终端。
综上所述,本发明的优点及积极效果为:
本发明方法将产品三维展示问题转化为基于人工智能的产品三维图像的机器生成问题,基于人脑感受目标三维形状的本质,当用户请求连续变化视点的产品图像时,利用三维图像渲染模型生成随用户连续变化的请求视点信息对应的产品三维图像,从而实现产品的三维展示。
本发明方法根据产品三维图像生成的特点设计一种全新的包含多种隐层架构的人工神经网络,并通过人工智能的学习训练方法获取产品三维图像渲染模型,有效解决了无产品的三维cad模型的前提下,如何基于手机或便携设备拍摄的产品视频实现具有真实感的产品三维展示,给用户提供了一种便捷、低成本的产品三维展示系统。
本发明方法以两步细化的过程获取产品三维图像渲染模型,有效解决了三维图像渲染模型的泛化能力和特化能力的平衡,有效解决了产品三维图像渲染模型的训练样本采集、训练效率的问题。
附图说明
图1是本发明实施例提供的基于人工智能的产品三维展示方法的流程图。
图2是本发明实施例提供的基于人工智能的产品三维图像渲染模型示意图。
图3是根据本发明的另一个实施例的一种基于人工智能的产品三维图像渲染模型的结构示意图;
图4是根据本发明的一个实施例的图像判别模型的结构示意图;
图5是根据本发明的一个实施例的产品三维图像渲染模型输出结果示例;
图6是根据本发明的一个实施例的基于人工智能的产品三维图像渲染装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明方法将产品三维展示问题转化为基于人工智能的产品三维图像的机器生产问题,利用三维图像渲染模型生成随用户连续变化的请求视点信息对应的产品的在不同视点条件下的三维图像,有效解决了无产品三维cad模型的前提下,如何基于手机或便携设备拍摄的产品视频实现具有真实感的产品三维展示,给广大中小型或小微型企业提供了一种便捷、低成本的产品三维展示解决方案。
如图1所示,本发明实施例提供的基于人工智能的产品三维展示方法包括如下步骤:
s101,提出一种人工神经网络近似建模的三维图像渲染模型;
在本步骤中,本发明使用包含多种隐层的组合架构的人工神经网络来近似建模三维图像渲染模型,现结合图2详细描述如下:
如图2所示,产品三维图像渲染模型的输入数据是产品在某一视点下的三维图像和用户指定的当前视点的视点信息,将某一视点下的三维图像作为产品三维图像渲染模型的第一输入层203,将用户指定的当前视点的视点信息作为产品三维图像渲染模型的第二输入层204。
具体地,所述第一输入层203是
如图2所示,输入数据经由局部结构201处理。
具体地,局部结构201结合图3详细描述如下:
如图3所示,第一输入层203输入数据经第一卷积层组301处理;
具体地,所述的第一卷积层组301包括
同步地,如图3所示,第二输入层204输入数据经由第一上采样层组303处理;
具体地,所述的第一上采样层组303包括
如图3所示,第一卷积层组的结果数据和第一上采样层组的结果数据共同输入第一残差网络块组305处理;
具体地,所述的第一残差网络块组305包括
如图3所示,数据经由第一残差网络块组305处理后,结果数据输入第二上采样层组307处理;
具体地,所述的第二上采样层组307包括
如图3所示,数据经由第二上采样组307处理后,在第一输出层205获得输出结果数据;
具体地,所述的第一输出层205的输出结果数据是
综上所述,如图2所示,第一输入层203和第二输入层204的输入数据经由局部结构201处理后,在第一输出层205获得中间输出结果数据。
如图2所示,第一输出层205的输出数据中的张量数据206和矩阵数据207按位做乘法运算后,作为第三输入层208;
具体地,第三输入层209是
如图2所示,数据经第三输入层209输入后,经由第二卷积层组210处理;
具体地,所述的第二卷积层组210包括
如图2所示,数据经第二卷积层组210处理后的结果数据和第一卷积层组301的结果数据共同经由第二残差网络块组212处理;
具体地,所述的第二残差网络块组212包括
如图2所示,数据经第二残差网络212处理后,结果输入第三上采样层214处理;
具体地,第三上采样层组214包括
如图2所示,数据经第三上采样层214处理后,在第二输出层216获得输出结果数据;
具体地,所述的第二输出层216的输出数据是
s102,利用三维模型及其对应图像构成的训练数据集以人工智能的学习训练方法对所述三维图像渲染模型进行训练,获取经过一次训练的三维图像渲染模型。
在本步骤中,所述三维模型及其渲染图像的数据集为shapenet,来自changax,funkhousert,guibasl,etal.shapenet:aninformation-rich3dmodelrepository[j].arxivpreprintarxiv:1512.03012,2015。
所述的利用shapenet构建的数据集
其中,
进一步的,为了使本领域人员更加清楚如何通过训练获取一次训练的三维图像渲染模型,在训练时将三维图像渲染模型按网络架构分成两个子网络先独立训练,然后在联合调优。
如图2所示,所述的三维图像渲染模型包含两个相对独立训练的子网络;第一子网络201和第二子网络202;
在本步骤中,通过学习训练获取一次训练的三维图像渲染模型的学习训练过程在于首先通过人工智能的学习训练方法训练第一子网络201,接着训练第二子网络202,最后对整个网络进行联合调优;
在本步骤中,通过训练获取三维图像渲染模型的第一子网络201的训练过程在于通过人工智能的学习训练使得第一子网络201的的输出数据能最小化第一损失函数;
所述第一损失函数定义如下:
其中,第一子网络201的输入是
需要说明的是,在给定所述第一损失函数的前提下,所述第一子网络201的训练过程可以使用公知的人工神经网络的训练过程来实现,此处不再赘述。
进一步地,在所述第一子网络201训练完成后,给定任意输入
在本步骤中,通过训练获取三维图像渲染模型的第二子网络202的训练过程在于当第一子网络201训练完成后,固定住第一子网络201的参数矩阵不变,然后通过人工智能的学习训练使得第二子网络202的的输出数据能最小化第二损失函数;
所述第二损失函数定义如下:
其中,
所述图像判别模型
如图4所示,图像判别模型
需要说明的是,如图4所示的每个卷积层都包含归一化运算和线性整流运算,但不包含池化运算。
第二子网络202的具体训练过程如下:
第一步,初始化阶段,随机初始化第二子网络202的各隐层的参数矩阵,随机初始化图像判别模型的各隐层的参数矩阵;
第二步,第一前向传播阶段,取训练样本
第三步,第二前向传播阶段,将第一输出层205获得的输出数据的
第四步,第三前向传播阶段,将第二卷积层组209的第
第五步,训练图像判别模型
所述第三损失函数是第二损失函数在训练图像判别模型时的分解函数,具体定义为:
其中,
第六步,反向传播阶段,计算第二子网络202在第二输出层215的输出数据与理想输出的误差,按最小化第四损失函数的方法,反向调整第二子网络202的各隐层的参数矩阵;
具体地,所述的最小化误差的第四损失函数是第二损失函数在计算第二子网络202在第二输出层216的输出数据与理想输出的误差时的分解函数,具体定义为:
其中,
需要说明的是,此时不调整第一子网络201的各隐层的参数矩阵。
第七步,重复执行第二步到第六步,直到误差函数的值小于一个给定的阈值或迭代次数达到一个给定的阈值。
s103,获取用户围绕产品拍摄的视频或图像;
在本步骤中,用户拍摄产品的视频或图像时,优选地产品应放置在纯色背景下拍摄,并尽量在柔和的光照条件下拍摄;
在本步骤中,用户可以手持手机相机或其他相机围绕产品一周拍摄产品视频或图像,也可以转动产品拍摄产品一周的视频或图像;
在本步骤中,优选地,拍摄时产品应布满整个相机视野,并在拍摄过程中维持产品完整地出现在实验中;
在本步骤中,优选地,如果获取的是用户环绕产品拍摄的视频,则从视频中析出图像,所获得的产品图像定义为:
其中,
s104,利用当前产品的视频或图像对所述的一次训练的三维图像渲染模型进行二次训练,获取针对该产品调优的三维图像渲染模型;
在本步骤中,对一次训练三维图像渲染模型的调优过程在于包含如下步骤:
1、利用三维重建的方法根据产品的多角度图像重建出各图像拍摄时的视点信息,以及产品在该视点下的深度数据,并以此构建训练数据集;
所述的三维重建的方法可选用基于运动拍摄的结构重建(structurefrommotion,sfm),如schonbergerjl,frahmjm.structure-from-motionrevisited[c]//proceedingsoftheieeeconferenceoncomputervisionandpatternrecognition.2016:4104-4113.;三维重建后可得数据为:
其中,
2、构建调优用训练数据集;
所述的训练数据集
其中,
3、通过学习训练获取调优的三维图像渲染模型的学习训练过程与步骤二的学习训练过程类似。
s105,获取用户请求的任意视点信息,将之输入三维图像渲染模型,从而获取所述产品在当前视点的三维图像。
具体地,获取用户当前请求的视点信息后,计算当前视点信息与所述调优数据集内训练样本的视点信息的相关度,并将相关的图像和用户请求视点作为三维图像渲染器的输入,获取三维图像渲染器的输出数据;
在本步骤中,将所述视点相关度作为权重系数,将相关图像和用户请求视点作为三维图像渲染器的输入后所获得的输出图像融合,将融合后图像作为展示给用户的产品三维图像。
具体地,如图5所示的玩具车,在给定连续变化的视点信息后由三维图像渲染模型以不低于每秒10张的速度生成的图像,并展示在用户端,用户就能感受到产品的三维效果。
为了实现上述实施例,本发明还提出一种基于人工智能的产品三维图像渲染装置。
图6是根据本发明的一个实施例的一种基于人工智能的产品三维图像渲染装置的结构示意图。
如图6所示,本发明的一个实施例的一种基于人工智能的产品三维图像渲染装置包括:第一生成模块610,、第一获取模块620、第一处理模块630、第二生成模块640、第二处理模块650。
其中,第一生成模块610,用于利用三维模型及其对应图像构成的泛化训练数据集以人工智能的学习训练方法对所述三维图像渲染器进行训练,获取经过一次训练的一次训练三维图像渲染模型;
第一获取模块620,用于获取用户围绕产品拍摄的视频或图像;
第一处理模块630,用于利用当前产品的视频或图像构建特化训练数据集;
第二生成模块640,用于利用特化训练数据集对所述的一次训练三维图像渲染模型再次训练,获取针对特点产品调优的三维图像渲染模型;
第二处理模块650,用于获取用户请求的任意视点信息,将之作为三维图像渲染模型的输入数据,获取三维图像渲染模型的输出数据,将多个数据融合后即为所述产品在当前视点的三维图像。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。