APP下载

基于层叠结构的单幅图三维重建网络

2023-05-10张景异侯昌邑刘韵婷葛忠文

沈阳理工大学学报 2023年3期
关键词:解码器三维重建编码器

张景异,侯昌邑,刘韵婷,葛忠文

(沈阳理工大学自动化与电气工程学院,沈阳 110159)

图像的三维重建是计算机视觉的主要研究内容之一[1],通过单幅或多幅图像重建出物体或场景的三维结构,可用于医学图像处理以及虚拟现实等领域[2]。 由于单幅图像信息量不足,基于单幅图像的物体三维重建颇具挑战性,传统方法是使用真实的三维结构学习从二维到三维的映射,如Choy 等[3]提出的3D-R2N2 网络,在编码器与解码器之间通过长短期记忆神经网络进行连接,将二维图像与其对应的体素模型建立映射关系,可以接收任意角度的单个或多个图像进行三维重建,但由于其二维图像映射成三维体素的计算较复杂,为防止内存占用过多,得到的输出图像分辨率仅为 32 × 32 × 3,三维重建效果并不理想。

不同于体素形式的点云由易于几何变换的离散空间点构成,也常被用来表示三维结构,Fan等[4]提出的PointOutNet 网络结构开创了用点云做单幅图三维重建的先例,其不仅设计了新颖有效的体系结构、损失函数和学习范式,还利用条件形状采样器预测三维点云,通过实验证明了模型预测结果的交并比(IOU)等指标在多个物体类别表现上均超过了3D-R2N2 网络,重建效果显著,但PointOutNet 网络结构以稀疏点云呈现最终结果,无法很好地重现三维形状的表面细节。 Wang等[5]提出了Pixel2Mesh 网络,其可从单张彩色图片直接生成三维网格,从输入图像中逐步提取特征,作为初始三维形状的椭球体根据提取的特征不断形变,生成最终的几何形状。 庄昱峰等[6]在Pixel2Mesh 网络的框架上,使用改进的DenseNet替换原特征提取网络部分,沿用图神经网络生成网格的方式,但效果欠佳。 Wen 等[7]提出了Pixel2Mesh ++网络,受多视图重建方法启发,模型在每个网格顶点周围搜索最佳位置进行顶点位置变形,可生成更准确的表面细节,但相比于易于学习和生成的点云形式[8],直接作用于三维结构使得网络训练周期更长。

针对以上问题,多数研究者均直接改善重建网络的生成部分,包括对三维卷积进行改进、利用2.5D 草图对三维结构预测等,而针对特征提取网络进行改善的研究不多,且效果不显著[6]。 本文以特征提取部分为重点,提出一种高效的三维重建网络。 利用残差思想设计残差单元以提高网络的特征提取能力,在残差单元中加入通道注意力层,使网络可以学习到不同通道特征的相关性,进一步提高网络对有效特征的关注,将残差单元嵌入卷积网络中,构成整个层叠结构;经过层叠结构提取特征,采用多解码器并行的方式处理特征,使用二维卷积运算预测二维投影,通过三维几何推理组合成密集点云,并引入伪渲染器近似渲染预测点云的新投影,新投影联合真实二维投影进行监督学习,逐步优化点云的预测效果;经过逐层的预训练后,再进行端到端的微调,同时加入梯度优化模块,对网络反向传播的梯度加上阈值限定,使网络更加稳定。

1 三维重建网络

本文提出的网络总结构如图1 所示。 单幅彩色三通道(RGB)图像输入特征提取网络,通过设计的层叠结构提高特征提取能力,将丰富的特征映射到潜在空间中;特征从潜在空间进入解码器中,N个解码器并行工作,通过二维卷积生成N个预测的重建物体二维投影,分别对应N个不同视点,通过三维坐标转换后融合成密集点云;对于预测的密集点云,利用伪渲染器渲染新的二维投影,通过与真实投影进行监督学习,逐步提高三维点云的重建效果。

图1 网络总结构

1.1 特征提取网络的层叠结构设计

单幅图进行三维重建的难点之一是如何提取足够的特征信息用来重建物体[9],对于重建物体细节部分的把控和处理与特征提取效果密切相关。 因此,本文重点研究特征提取网络,将通道注意力层融合到本文设计的残差单元内,再嵌入卷积网络中,以多个“卷积层+残差单元”的形式构成层叠结构。 本文特征提取网络结构如图2所示。 利用残差单元加深网络深度,提高特征提取能力,使网络关注到更多图像中重建物体的表面细节;利用通道注意力层权衡不同通道特征的重要程度,进一步提高网络对有效特征的关注。

图2 特征提取网络结构

1.1.1 残差单元

深层卷积网络能够捕获更加丰富的特征,但加深网络容易出现梯度消失或网络退化的问题,因此本文利用残差网络(ResNet)[10]的思想设计了残差单元,避免出现上述问题,同时通过加深网络丰富提取到的特征。 Lin 等[11]将残差块用于网络的解码器部分,增加了点云生成网络深度,使三维重建效果略有提高,本文则将设计的残差单元用于编码器网络中,更侧重于提高网络对于图像特征信息的提取能力。

残差单元包含两个卷积层和一个通道注意力层,可简化表示为

式中:am和bm分别表示第m个残差单元的输入和输出;f为通道注意力函数,表示对卷积层的输出进行各通道的权重分配;pm为中间变量;F为两个卷积层简化后的残差函数;Wm为卷积层的权重矩阵。 基于式(1)和式(2),可求得损失反向到达输入am的梯度为

1.1.2 通道注意力层

提取到丰富的特征后,还需对所提取到的特征根据相关性进行区分,对更有用的特征加以关注,对用处较小的特征则适当降低其重要程度,提高特征的利用效率。 为此本文根据压缩和激励网络(SENet)[12]设计了一个通道注意力(SE)层,将其嵌入到特征提取网络的残差单元中,从通道层面对所提取的特征进行处理。

通道注意力层结构如图3 所示。 首先通过全局平均池化对输入的长度为H、宽度为W、通道数为C的特征图进行压缩操作,将同一通道上的所有特征编码为一个1 ×1 ×C的全局特征;然后采用连续的两个全连接层,第一个全连接层降维(降维因子为r),而后经ReLU 函数激活,第二个全连接层恢复维度,拟合通道间复杂的相关性;最后通过Sigmoid 函数获得归一化的权重,将得到的各通道权重与原特征图相乘,得到最终的特征图。

图3 通道注意力层结构

对于正常的卷积操作,默认对输入特征的所有通道直接进行融合,本文设计的残差单元则利用两个卷积层,通过扩大感受野增加特征信息的提取,而使特征维度保持不变。 加入的通道注意力层通过关注通道之间的关系,使网络可以自动学习到不同通道特征的重要程度,使特征提取的效率进一步提高。

1.2 多解码器并行

基于Hafiz 等[13]对单编码器多解码器结构的研究,多个解码器并行在单幅图三维重建中效果更好。 本文通过N个解码器并行的方式处理编码器(特征提取网络)生成的特征,N个解码器分别对应于N个不同视点,在训练时不共享权重,并行方式能够提高网络效率,生成效果更好的点云。

解码器结构如图4 所示,解码器的输入是来自编码器的1 ×1 ×512 特征向量,输出是N个视点的四通道图像。 预测点云的三维坐标可由图像三个通道各像素点处的像素值表示,即Xi=(xi,yi,zi),二元掩膜由单通道图像表示,四通道图像可看作图像坐标与二元掩膜的合成,再通过N个视点的协同作用即可融合为三维密集点云。 给出N个视点的三维变换矩阵(Rn,tn)(n= 1,2,…,N),则每个视点下的图像坐标Xi可通过公式转化为易于点云融合的标准点云坐标Pi,表达式为

图4 解码器结构

式中K为预定义的相机固有矩阵。 式(4)确定了图像坐标系与标准点云坐标系下融合点云之间的关系,因此直接通过二维卷积运算就可以预测三维物体的几何结构。

由编码器传来的特征先逐步通过3 个线性层,而后经过5 个反卷积层(3 ×3 卷积核,步长为1),在解码器的末尾添加一个额外的卷积层(1 ×1卷积核,步长为1)用来促进像素的多样化[14]。 与编码器类似,除最后的卷积层外,每个卷积层后均进行批标准化处理,并使用ReLU 函数进行激活。

1.3 伪渲染

为使用已有的三维CAD 模型监督生成点云,传统方法是利用在三维空间上度量点云和真实CAD 模型之间距离的指标(如倒角距离[4])进行损失计算和优化,但该度量指标通常不易计算,尤其对于密集点云,计算成本很高。 因此,本文引入伪渲染器,即一种近似真实渲染的可微模块,通过式(4)的逆运算将标准点云坐标Pi转换为不同视点对应的图像坐标X′i,再使用伪渲染器得到不同视点下新的深度图像Z′,利用得到的深度图像和生成的二元掩膜进行较好的监督学习。

为获得像素化的深度图像,需要将投影点的坐标进行离散化,从而可能导致多个点在投影时“碰撞”到同一像素上,伪渲染器可通过提高投影分辨率缓解这种碰撞效应。 其具体过程为:将图像坐标对应的各三维点投影到以U因子进行上采样的目标图像上,从而减少二维坐标的量化误差以及碰撞发生的概率;再通过最大池化操作,将图像降回到原始分辨率,同时在每个像素位置保持最小深度值;通过采用近似的渲染操作保持反向传播时的可微性和并行性,以伪渲染器渲染出的新深度图像和二元掩膜计算损失。 总损失L为二元掩膜损失和深度损失的组合,表示为

式中:Lmask为二元掩膜损失;Ldepth为深度损失;λ为加权因子。Ldepth由L1 范数损失函数计算,Lmask由交叉熵损失函数计算,计算式分别为

式中:Mn和Zn分别表示第n个视点的二元掩膜和深度图像的真实值为第n个视点的二元掩膜和深度图像的预测值。

解码器预测的三维点通过几何推理组合生成密集点云[15]送入伪渲染器,从新视点生成深度图像,配合二元掩膜共同与真实值计算损失,通过监督学习逐步提高网络性能。

2 实验与分析

2.1 实验设置

2.1.1 数据集

ShapeNet[16]数据库为大型三维模型存储库,包含多种语义类别的三维模型,共300 多万个已经标注的模型,其中22 万个模型被划分为3 135个类别,均以三维 CAD 形式表示。 对于每个CAD 模型,在随机视角下预渲染100 对128 ×128的深度图像和二元掩膜,作为计算损失函数的真实值。 本文网络的输入图像是固定高度和从24个不同方位角预渲染的对象。

2.1.2 实验环境

硬件环境:显卡NVIDIA GeForce RTX 2080 Ti,CPU 6 × Xeon E5-2678 v3,显存11 G,内存62 G。

软件环境:Ubuntu18. 04,Python3. 5,Tensor-Flow1.13.0,CUDA10.0。

2.1.3 实验过程

网络训练分为两个阶段:首先进行预训练,编码器从单幅图像提取特征,将特征输入到多个解码器中,多个解码器从多个视点预测二维投影,与真实投影对比并计算损失值,通过多次迭代使预测投影逐渐接近真实投影;然后为微调阶段,通过将多视点预测的二维投影进行坐标转换融合成三维点云,对该点云利用伪渲染器生成新投影,联合真实二维投影进行监督学习,通过多次迭代对整个网络作进一步优化。 训练完成后生成最终密集点云,计算与真实点云的平均三维欧几里得距离(平均3D 欧氏距离)并生成评价指标。

实验中批次大小设置为32,降维因子r=4,上采样因子U=5,加权因子λ=1.0。 预训练阶段学习率设置为0.001,迭代次数为20 万次,耗时20 h;微调阶段学习率设置为0.000 01,迭代次数为10 万次,耗时28 h。

2.1.4 评价指标

本文使用预测点云与真实点云之间的平均3D 欧氏距离作为评价指标。 真实点云S由在物体CAD 模型表面均匀生成的10 万个点构成,将预测点云中每个点与真实点云S中各点Pj之间的距离取最小值,以其作为预测点云与真实点云相同位置点的距离,用ξi表示,定义式为

对式(8)计算得到的各点最小距离取平均值,即为预测点云与真实点云的平均3D 欧氏距离。 平均3D 欧氏距离计算是双向的,正向和反向计算结果分别代表三维重建效果的不同质量指标,正向计算以“Pred.→GT”表示,代表所测得的三维形状与真实三维形状的相似性,反向计算以“GT→Pred.”表示,代表所测得三维形状的点云表面覆盖率。

2.2 实验结果分析

使用单编码器和2、4、8 个解码器并行进行平均3D 欧氏距离测量,并与文献[11]的单编码器单解码器网络和文献[13]的单编码器多解码器网络进行对比,结果如表1 所示。

表1 多解码器并行对比

由表1 可见,本文改进后的网络整体效果优于其他网络,且8 个解码器并行的效果明显更好,故后续实验采用单编码器八解码器网络。

利用ShapeNet 数据库的椅子类别进行预训练,其由 6 778 个 CAD 模型组成。 图 5 为文献[13]与本文的单编码器八解码器网络预训练时的损失值对比。

图5 不同网络预训练损失值对比

由图5 可明显看出,本文网络的预训练效率更高。 层叠结构设计使得特征提取效果更好,其中通道注意力层为不同的通道分配适宜的权重,使提取的特征得到高效利用,故在同样的网络迭代次数下,本文网络的预训练不仅收敛速度明显加快,而且损失值也明显降低。

尽管首先通过预训练阶段对网络进行了逐层训练,但在微调阶段仍会出现梯度爆炸,导致网络模型无法正常学习,计算的损失值变为NaN。 本文通过增加梯度优化模块,优化网络训练中梯度反向传播过程,对原Adam 优化器反向传播时更新的梯度设定阈值,将梯度限制在固定的范围内,使得模型能够正常学习。 加入梯度优化模块前后微调阶段的损失值对比如图6 所示。

图6 加入梯度优化模块前后微调阶段的损失值对比

由图6 可见,加入梯度优化模块后,梯度爆炸情况消失,网络恢复正常训练,且微调损失能够正常计算,未出现NaN 值。

网络训练结束后,使用测试集进行测试,并与其他单幅图三维重建方法进行比较,在同样的评价指标下进行评估,分析本文提出网络的重建效果,评估结果如表2 所示。 表2 中文献[17]提出的网络通过混合嵌入学习隐式的三维表示,文献[18]的透视变换网络(PTN)通过最小化投影误差学习预测体积数据,表2 中用于对比的网络还包括文献[18]提出的两种PTN 变体及基线网络3D ConvNet、文献[11]提出的单编码器单解码器网络、文献[13]提出的单编码器八解码器网络。使用文献[18]提供的数据集,按80%训练集和20%测试集的比例进行分割。

表2 评估结果

由表2 可知,与其他方法对比,无论是三维形状的相似性还是点云的表面覆盖率,本文所提出网络的评估指标都更小。 用于比较的几个网络中文献[13]的评估指标最小,与文献[13]相比,本文方法在形状相似性上提高了12.3%,在点云表面覆盖率上提高了6.4%,尤其在形状相似性上更占优势。

为更好地展现点云的重建效果,利用Matlab软件对网络生成的点云进行可视化,将本文网络生成点云通过不同视角与文献[13]及真实值对比重建效果,结果如图7 所示。

图7 点云重建效果对比

由图7 可以看出,相比文献[13]提出的方法,本文提出的网络在各类细节部分处理更好,包括空洞、栏杆及扶手等,也证明了层叠结构设计在特征提取上的良好效果,对整体结构重建的同时更能捕获细小的特征信息,展现了更优异的重建效果。

3 结论

针对单幅图三维重建形状相似性不足、点云表面覆盖率低等问题,提出了一种高效的单幅图生成密集点云的三维重建网络。 网络使用ShapeNet 数据集进行训练和测试,结果表明:多解码器并行能够提升物体重建效果,其中单编码器八解码器网络效果最优;微调损失值对比显示,梯度优化模块可加强网络稳定性;与其他单幅图三维重建网络的对比实验可见,本文网络生成的密集点云在形状相似性与点云表面覆盖率上均更优秀;点云可视化结果证明,设计的层叠结构有效提高了网络对强相关性细小特征的关注,增强了对物体细节部分重建的能力。

猜你喜欢

解码器三维重建编码器
科学解码器(一)
科学解码器(二)
科学解码器(三)
基于Mimics的CT三维重建应用分析
线圣AudioQuest 发布第三代Dragonfly Cobalt蓝蜻蜓解码器
基于FPGA的同步机轴角编码器
基于PRBS检测的8B/IOB编码器设计
基于关系图的无人机影像三维重建
三维重建结合3D打印技术在腔镜甲状腺手术中的临床应用
JESD204B接口协议中的8B10B编码器设计