本公开涉及计算机,尤其涉及一种图像三维重建方法、装置、电子设备和存储介质。
背景技术:
1、基于单张图像进行三维重建的任务要求模型想象出合理的新视角图像,目前仍然是一个开放问题,特别是实时高逼真的三维重建工作更是困难重重。生成对抗网络是目前流行的深度生成模型之一,能够从隐向量生成人类难以分辨真伪的特定类别的数据,特别是图像数据,如对象、汽车、教堂等图像。随着神经辐射场技术在三维场景建模领域获得了很大的成功,有很多工作尝试将神经辐射场技术集成到生成对抗网络框架中,实现了生成不同视角的图像。但目前使用生成对抗网络进行图像三维重建的方法推理时间长且生成的图像质量低,细节存在明显伪影。
技术实现思路
1、有鉴于此,本公开提出了一种图像三维重建方法、装置、电子设备和存储介质,旨在提高图像三维重建过程的效率,以及重建得到图像的质量。
2、根据本公开的第一方面,提供了一种图像三维重建方法,所述方法包括:
3、确定待处理对象图像,所述待处理对象图像中包括目标对象;
4、将所述待处理对象图像输入训练得到的编码器,得到对应的目标隐向量,所述编码器通过真实图像和生成图像两种类型的训练图像训练得到,所述真实图像和所述生成图像中包括样本对象;
5、将所述目标隐向量输入训练得到的生成器,生成所述目标对象的隐式三维表示,并根据至少一个预设角度渲染得到每个所述预设角度对应的目标反演图像。
6、在一种可能的实现方式中,所述编码器的训练过程包括:
7、确定训练图像序列,所述训练图像序列中包括按照顺序间隔设置的多个真实图像和生成图像;
8、按顺序根据每个所述训练图像序列中的每个图像迭代训练所述编码器,在每次迭代训练后计算所述编码器对应的编码器损失;
9、根据所述编码器损失调整所述编码器参数,直到满足收敛条件。
10、在一种可能的实现方式中,每个所述生成图像的确定过程包括:
11、随机采样样本隐向量;
12、将所述样本隐向量输入训练得到的生成器,得到对应的生成图像。
13、在一种可能的实现方式中,所述按顺序根据每个所述训练图像序列中的每个图像迭代训练所述编码器,在每次迭代训练后计算所述编码器对应的编码器损失,包括:
14、按照在所述训练图像序列中的顺序将每个真实图像和生成图像间隔输入所述编码器,得到对应的训练隐向量;
15、将所述训练隐向量输入所述生成器,得到第一反演图像和至少一张第二反演图像,所述第一反演图像中包括与输入图像中样本对象角度相同的样本对象,所述第二反演图像包括与输入图像中样本对象角度不同的样本对象;
16、根据本次迭代过程所述编码器的输入图像、第一反演图像和至少一张第二反演图像确定本次迭代的编码器损失。
17、在一种可能的实现方式中,响应于本次迭代过程所述编码器的输入图像为生成图像,所述根据本次迭代过程所述编码器的输入图像、第一反演图像和至少一张第二反演图像确定本次迭代的编码器损失,包括:
18、确定用于采样所述输入图像的样本隐向量;
19、根据所述输入图像和所述第一反演图像确定第一图像损失和第二图像损失;
20、根据所述输入图像、所述第一反演图像和所述第二反演图像确定第三图像损失;
21、根据所述输入图像对应的样本隐向量和所述训练隐向量确定第四图像损失;
22、计算所述第一图像损失、所述第二图像损失、所述第三图像损失和所述第四图像损失的加权和,得到所述编码器损失。
23、在一种可能的实现方式中,所述根据所述输入图像对应的样本隐向量和所述训练隐向量确定第四图像损失,包括:
24、计算所述输入图像对应的样本隐向量和训练隐向量的l2范数,得到对应的第四图像损失。
25、在一种可能的实现方式中,所述第四图像损失对应的权重可以根据当前迭代训练的次数确定。
26、在一种可能的实现方式中,所述响应于本次迭代过程所述编码器的输入图像为真实图像,所述根据本次迭代过程所述编码器的输入图像、第一反演图像和至少一张第二反演图像确定本次迭代的编码器损失,包括:
27、根据所述输入图像和所述第一反演图像确定第一图像损失和第二图像损失;
28、根据所述输入图像、所述第一反演图像和所述第二反演图像确定第三图像损失;
29、根据所述第一图像损失、所述第二图像损失和所述第三图像损失确定所述编码器损失。
30、在一种可能的实现方式中,所述根据所述第一图像损失、所述第二图像损失和所述第三图像损失确定所述编码器损失,包括:
31、计算所述第一图像损失、所述第二图像损失和所述第三图像损失的加权和,得到对应的编码器损失。
32、在一种可能的实现方式中,所述根据本次迭代过程所述编码器的输入图像、第一反演图像和至少一张第二反演图像确定本次迭代的编码器损失,还包括:
33、确定前一次迭代过程中对应的第四图像损失为本次迭代过程的第四图像损失;
34、所述根据所述第一图像损失、所述第二图像损失和所述第三图像损失确定所述编码器损失,包括:
35、计算所述第一图像损失、所述第二图像损失、所述第三图像损失和本次迭代过程的所述第四图像损失的加权和,得到对应的编码器损失。
36、在一种可能的实现方式中,所述根据所述输入图像和所述第一反演图像确定第一图像损失和第二图像损失,包括:
37、计算所述输入图像和所述第一反演图像的l2范数,得到对应的第一图像损失;
38、将所述输入图像和所述第一反演图像分别输入预先训练得到的图像特征模型,计算对应输出的l2范数作为第二图像损失。
39、在一种可能的实现方式中,所述根据所述输入图像、所述第一反演图像和所述第二反演图像确定第三图像损失,包括:
40、将所述第一反演图像、每个所述第二反演图像和所述输入图像分别输入训练得到的对象特征模型,并得到对应的特征向量;
41、对于所述第一反演图像和每个所述第二反演图像,分别计算所述输入图像对应的特征向量和所述第一反演图像或所述第二反演图像对应特征向量余弦相似度,确定1与余弦相似度的差为反演图像损失;
42、计算每个所述第二反演图像对应反演图像损失的平均值与所述第一反演图像对应的反演图像损失的加权和,得到第三图像损失。
43、根据本公开的第二方面,提供了一种图像三维重建装置,所述装置包括:
44、图像确定模块,用于确定待处理对象图像,所述待处理对象图像中包括目标对象;
45、图像反演模块,用于将所述待处理对象图像输入训练得到的编码器,得到对应的目标隐向量,所述编码器通过真实图像和生成图像两种类型的训练图像训练得到,所述真实图像和所述生成图像中包括样本对象;
46、图像渲染模块,用于将所述目标隐向量输入训练得到的生成器,生成所述目标对象的隐式三维表示,并根据至少一个预设角度渲染得到每个所述预设角度对应的目标反演图像。
47、在一种可能的实现方式中,所述编码器的训练过程包括:
48、确定训练图像序列,所述训练图像序列中包括按照顺序间隔设置的多个真实图像和生成图像;
49、按顺序根据每个所述训练图像序列中的每个图像迭代训练所述编码器,在每次迭代训练后计算所述编码器对应的编码器损失;
50、根据所述编码器损失调整所述编码器参数,直到满足收敛条件。
51、在一种可能的实现方式中,每个所述生成图像的确定过程包括:
52、随机采样样本隐向量;
53、将所述样本隐向量输入训练得到的生成器,得到对应的生成图像。
54、在一种可能的实现方式中,所述按顺序根据每个所述训练图像序列中的每个图像迭代训练所述编码器,在每次迭代训练后计算所述编码器对应的编码器损失,包括:
55、按照在所述训练图像序列中的顺序将每个真实图像和生成图像间隔输入所述编码器,得到对应的训练隐向量;
56、将所述训练隐向量输入所述生成器,得到第一反演图像和至少一张第二反演图像,所述第一反演图像中包括与输入图像中样本对象角度相同的样本对象,所述第二反演图像包括与输入图像中样本对象角度不同的样本对象;
57、根据本次迭代过程所述编码器的输入图像、第一反演图像和至少一张第二反演图像确定本次迭代的编码器损失。
58、在一种可能的实现方式中,响应于本次迭代过程所述编码器的输入图像为生成图像,所述根据本次迭代过程所述编码器的输入图像、第一反演图像和至少一张第二反演图像确定本次迭代的编码器损失,包括:
59、确定用于采样所述输入图像的样本隐向量;
60、根据所述输入图像和所述第一反演图像确定第一图像损失和第二图像损失;
61、根据所述输入图像、所述第一反演图像和所述第二反演图像确定第三图像损失;
62、根据所述输入图像对应的样本隐向量和所述训练隐向量确定第四图像损失;
63、计算所述第一图像损失、所述第二图像损失、所述第三图像损失和所述第四图像损失的加权和,得到所述编码器损失。
64、在一种可能的实现方式中,所述根据所述输入图像对应的样本隐向量和所述训练隐向量确定第四图像损失,包括:
65、计算所述输入图像对应的样本隐向量和训练隐向量的l2范数,得到对应的第四图像损失。
66、在一种可能的实现方式中,所述第四图像损失对应的权重可以根据当前迭代训练的次数确定。
67、在一种可能的实现方式中,所述响应于本次迭代过程所述编码器的输入图像为真实图像,所述根据本次迭代过程所述编码器的输入图像、第一反演图像和至少一张第二反演图像确定本次迭代的编码器损失,包括:
68、根据所述输入图像和所述第一反演图像确定第一图像损失和第二图像损失;
69、根据所述输入图像、所述第一反演图像和所述第二反演图像确定第三图像损失;
70、根据所述第一图像损失、所述第二图像损失和所述第三图像损失确定所述编码器损失。
71、在一种可能的实现方式中,所述根据所述第一图像损失、所述第二图像损失和所述第三图像损失确定所述编码器损失,包括:
72、计算所述第一图像损失、所述第二图像损失和所述第三图像损失的加权和,得到对应的编码器损失。
73、在一种可能的实现方式中,所述根据本次迭代过程所述编码器的输入图像、第一反演图像和至少一张第二反演图像确定本次迭代的编码器损失,还包括:
74、确定前一次迭代过程中对应的第四图像损失为本次迭代过程的第四图像损失;
75、所述根据所述第一图像损失、所述第二图像损失和所述第三图像损失确定所述编码器损失,包括:
76、计算所述第一图像损失、所述第二图像损失、所述第三图像损失和本次迭代过程的所述第四图像损失的加权和,得到对应的编码器损失。
77、在一种可能的实现方式中,所述根据所述输入图像和所述第一反演图像确定第一图像损失和第二图像损失,包括:
78、计算所述输入图像和所述第一反演图像的l2范数,得到对应的第一图像损失;
79、将所述输入图像和所述第一反演图像分别输入预先训练得到的图像特征模型,计算对应输出的l2范数作为第二图像损失。
80、在一种可能的实现方式中,所述根据所述输入图像、所述第一反演图像和所述第二反演图像确定第三图像损失,包括:
81、将所述第一反演图像、每个所述第二反演图像和所述输入图像分别输入训练得到的对象特征模型,并得到对应的特征向量;
82、对于所述第一反演图像和每个所述第二反演图像,分别计算所述输入图像对应的特征向量和所述第一反演图像或所述第二反演图像对应特征向量余弦相似度,确定1与余弦相似度的差为反演图像损失;
83、计算每个所述第二反演图像对应反演图像损失的平均值与所述第一反演图像对应的反演图像损失的加权和,得到第三图像损失。
84、根据本公开的第三方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
85、根据本公开的第四方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
86、根据本公开的第五方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
87、在本公开实施例中,确定包括目标对象的待处理对象图像,将待处理对象图像输入训练得到的编码器得到对应的目标隐向量。其中,编码器通过真实图像和生成图像两种包括样本对象的训练图像训练得到。将目标隐向量输入训练得到的生成器生成目标对象的隐式三维表示,并根据至少一个预设角度渲染得到每个预设角度对应的目标反演图像。本公开通过编码器经过简单的前向推理得到表征图像三维表示的隐向量,提高了图像重建过程的效率,能够实时进行图像三维重建。同时,编码器通过两种类型图像交叉训练得到,提高了多角度下对象的一致性,得到质量更高的三维重建结果。
88、根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。