1.一种基于半监督学习的单视图三维重建系统,其特征在于,包括:编码器E、生成器G、判别器D和渲染器P;
所述的编码器E:将图像作为输入,生成相应的隐向量表示,其网络结构含有6个二维卷积层Conv和3个全连接层FC;6个卷积层的卷积核大小为5×5,步幅stride分别为1、2、1、2、1和2,输出通道数filters分别是128、128、256、256、512和512;在每个卷积层后面设置一个批量归一化层即BN层和一个ReLU激活函数;3个全连接层的输出分别是2048、2048和1024,每个全连接层后面设置一个BN层和一个ReLU激活函数;编码器E最终输出1024维的特征向量;
所述的生成器G:将隐向量表示作为输入,生成三维体素网格,其网络结构含有1个全连接层FC和3个三维转置卷积层ConvT;全连接层的输出是256×4×4×4维,其后设置一个BN层和ReLU激活函数;三维转置卷积层的核大小是5×5×5,步幅为2,输出通道分别是256、
128、64和1,在每个三维转置卷积层之后设置一个BN层和ReLU激活函数;
所述的判别器D:试图区分生成器G输出的三维体素网格的渲染视图和数据集中的图像,进而提升重建质量,其网络结构含有4个二维卷积层和1个全连接层;4个卷积层的卷积核大小是5×5,步幅分别为1,输出通道数分别是256、512、1024和2048;在每个卷积层后面设置一个层归一化层LN层和一个Leaky‑ReLU激活函数;全连接层的输出是1维,其后设置一个Sigmoid函数;判别器D的最终输出是生成图像的概率;
所述的渲染器P将三维体素网格和姿态作为输入,输出相应视角的渲染视图。
2.一种采用权利要求1所述系统的基于半监督学习的单视图三维重建方法,其特征在于,该方法包括:步骤1、利用具有姿态和实例标记的图像数据集训练三维重建网络;
步骤2、利用无标记图像数据集训练三维重建网络,设计四个损失函数:图像重建损失函数Lrec、三维重建损失函数Lgt、隐向量表示的姿态不变损失函数Llv、体素网格上的姿态不变损失函数Lvi;
步骤3、利用无标记图像数据集训练三维重建网络;
所述的步骤1包括:
1a.假设从两个不同姿态p1和p2获取某个三维对象的一对图像x1,x2,将x1和x2作为编码器E的输入;
1b.编码器E将两个图像分别映射到隐向量空间,记作E(x1)和E(x2);
1c.生成器G从隐向量E(x1)和E(x2)中重建三维体素网格,记作G(E(x1))和G(E(x2));
1d.将姿态p1、p2分别和对应的三维体素网格G(E(x1))、G(E(x2)),作为渲染器P的输入,输出相应视角的渲染视图。
3.根据权利要求2所述的一种基于半监督学习的单视图三维重建方法,其特征在于,步骤2中所述的四个损失函数按照以下方式设计:①.图像重建损失函数Lrec:重建的三维体素网格根据某个相机姿态投影时生成的渲染视图应与基准图像保持一致;设:(x1,p1)和(x2,p2)是从三维模型采样的两个图像/姿态对;
E(x1)表示编码器E根据输入图像x1生成的隐向量;G(E(x1))表示根据隐向量E(x1)重建的三维形状;那么,重建的三维形状向摄像机姿态p2投影,生成的渲染视图应该与输入图像x2保持一致,其它视图类似;为了解决这种一致性要求,定义重建损失函数Lrec:Lrec=||P(G(E(x2)),p1)‑x1||1+2+||P(G(E(x1)),p2)‑x2||1+2 (1)其中,||·||1+2=||·||1+||·||2是 和 正则化重建损失之和;
②.三维重建损失函数Lgt:从两个图像重建的三维体素网格G(E(x1))和G(E(x2))应该基准三维模型Vb保持一致性,定义三维重建一致性损失函数Lgt:Lgt=||G(E(x1))‑Vb||1+2+||G(E(x2))‑Vb||1+2 (2)③.隐向量表示的姿态不变损失函数Llv:给定一个对象的两个随机抽样视图,编码器E应该能够忽略图像的姿态,将它们映射到相同的隐向量;定义隐向量相对于图像姿态的不变性损失函数Llv:Llv=||E(x1)‑E(x2)||2 (3)④.体素网格上的姿态不变损失函数Lvi:由生成器G从同一对象的两个不同视图重建的三维体素网格应该保持一致性;定义基于体素网格上的姿态不变损失Lvi:Lvi=||G(E(x1))‑G(E(x2))||1+2 (4)在具有姿态标记的图像数据集上训练,试图最小化以下组合的损失:
Lsemi‑supervised=Lrec+αLgt+βLlv+γLvi (5)其中,α、β和γ分别是Lgt、Llv和Lvi的权重;设α=β=γ=0.1。
4.根据权利要求2所述的一种基于半监督学习的单视图三维重建方法,其特征在于,步骤3中所述的利用无标记图像数据集训练三维重建网络,包括:
2a.生成器G根据给定的隐向量重建三维体素网格;
2b.利用渲染器P从随机视角p投影三维体素网格,并生成投影的渲染视图;
2c.分别更新生成器G和判别器D损失,利用对抗训练的思想让判别器D无法区分渲染视图与基准图像;
设计判别器D和生成器G的损失函数 和