3D reconstruction of real views combined with image segmentation and multi-scale attention Transformer
-
摘要: 为了解决在真实视图上三维重建效果不佳的问题,提出图像分割与多尺度注意力Transformer结合的真实视图三维重建方法。该方法分为原始图像分割和三维重建 2 部分,首先从多视角真实视图中用改进的DeepLabv3+模型分割出目标图像,然后送入引入多尺度注意力的Transformer模型输出重建结果。图像分割部分将原DeepLabv3+模型的主干网络换成优化的MobileNetv2网络以降低模型参数量。三维重建部分首先把由粗到细的多尺度注意力机制引入Transformer网络来聚合全局到局部的特征;再使用引入多尺度立方体注意力机制的细化器修正体素模型,提高重建精度。在ShapeNet数据集和真实视图数据集上进行验证,实验结果表明此方法可以提高真实视图三维重建的速度和精度,且优于多个重建模型。
-
关键词:
- 真实视图 /
- 三维重建 /
- 体素模型 /
- Transformer模型 /
- 注意力机制 /
- 图像分割 /
- DeepLabv3+模型 /
- ShapeNet数据集
Abstract: In order to solve the problem of poor 3D reconstruction effect in real views, this paper proposes a real view 3D reconstruction solution combining image segmentation and multi-scale attention Transformer. The method is specifically divided into two main components: original image segmentation and 3D reconstruction. The target image is segmented from the multiple real views using the improved DeepLabv3+ model. Subsequently, the segmented image is fed into an enhanced Transformer model trained on composite views to generate 3D voxel reconstruction outputs. In the image segmentation phase, the backbone of the former DeepLabv3+ model is replaced by optimized MobileNetv2 network to reduce complexity of the model parameters. In the 3D reconstruction phase, the coarse to fine multi-scale attention mechanism is introduced into Transformer network to aggregate global to local features. Additionally, the refiner introducing multi-scale cubic attention mechanism is used to correct the voxel model to improve the reconstruction accuracy. The experimental results on ShapeNet dataset and real-view dataset show that this method can improve the speed and accuracy of real-view 3D reconstruction, and is superior to multiple reconstruction models.-
Keywords:
- real view /
- 3D reconstruction /
- voxel /
- Transformer model /
- attention mechanism /
- image segmentation /
- DeepLabv3+ model /
- ShapeNet dataset
-
三维重建是计算机视觉领域的重要研究方向,与人工手动建模和三维设备扫描相比,基于多视图的三维重建具有耗时低,成本低等优势,被广泛用于自动驾驶[1]、文物重建[2]等方面。
运动结构恢复( structure from motion, SFM)和同步定位和映射(simultaneous localization and mapping, SLAM)等方法是解决多视图三维重建的传统方法,这些方法依赖于不同视图的特征提取和匹配,但是图像数量、相机姿态及参数限制其使用。随着深度学习的发展,开始使用卷积神经网络(convolutional neural networks, CNN)和递归神经网络(recurrent neural network, RNN)来进行特征提取融合与重建。文献[3]通过投影完成三维重建,但是投影需要在每个图像上单独完成,因此丢失了不同视图间共享的信息。文献[4]采用了3D卷积扩展的标准长短期记忆人工神经网络,网络中RNN能够将多视角图像的特征充分提取,但是效率比较低,模型处理时间较长。
Transformer在计算机视觉领域获得了巨大的成功,研究者把Transformer用于三维重建。文献[5]提出了一个统一的多视图编码、融合和解码框架,将多特征提取和视图融合集成在单个Transformer网络中。该框架通过转换器聚合块嵌入之间的特征,能够探索多视图图像之间的关系。文献[6]利用原生多头自注意力(multi-head self-attention,MSA)进行特征编码、融合和解码,在多个无序输入之间使用自注意力来探索视图到视图的关系。文献[7]采用具有预范数残差连接的编码器和利用分解因子的非自回归解码器,逐部分地重建三维模型。但是只考虑了单尺度注意力机制,文献[8]引入了一种由全局到局部的注意力机制,可以提取粗略到精细的特征,进行三维重建。
上述方法大多应用于合成视图数据集[9]。为了实现真实视图的三维重建,大多数研究人员在合成视图数据集上训练神经网络,然后进行重建。然而,这些方法的性能表现较差,例如模型参数量过大,导致无法有效恢复三维重建的细节[10]。针对这些问题,本文提出基于DeepLabv3+[11]的图像分割和多尺度注意力Transformer模型结合的真实视图三维重建方法。用MobileNetv2网络替换原DeepLabv3+模型的主干网络,并在Transformer模型中引入由粗到细的多尺度注意力机制,从多尺度提取物体全局特征和局部细节特征,提高特征提取的准确性和编码的有效性,在3D细化器中引入多尺度立方体注意力机制,把Transformer解码器生成的粗糙三维模型用不同维度的立方体注意力模块逐渐细化,修正表面有缺陷的三维模型,从而提升三维模型的重建质量。
1. 研究方法
本文提出的真实视图三维重建算法整体框图如图1所示,整体分为目标分割和三维重建2个模块。首先使用优化的MobileNetv2作为基础骨架网络提取真实视图特征,通过DeepLabv3+的编码器和解码器分割目标物体;然后用ResNet作为主干网络提取图像特征,把Transformer编码器得到的特征向量矩阵和视图解释矩阵输入体素Transformer解码器得到一个粗糙的体素模型;最后使用3D细化器修正体素模型得到最终的结果。
1.1 基于DeepLabv3+的真实视图分割
大多数基于目标分割的三维重建采用的是传统的图割方法进行图像预处理[12],随着深度学习发展,广泛应用于编码解码器的网络结构[13−14]。
目前DeepLabv3+模型在图像分割领域表现优秀,但是模型参数过大,消耗大量算力。本文对其结构进行改进,改进后的网络模型如图2所示。将特征提取网络换成轻量化的MobileNetv2,仅采用MobileNetv2网络的前8层,减少计算资源的消耗。同时用空洞卷积替换MobileNetv2网络的第7层和第8层,第7层的步长减小到1,以此提高骨干网络特征提取的准确性。编码器通过金字塔池化(atrous spatial pyramid pooling, ASPP)模块生成多尺度特征图,随后在通道维度上整合,并经过1×1卷积降维,得到高级语义特征图。解码器把提取的低维特征通过1×1卷积降维后与编码器输出的经过4倍上采样的高维特征融合。之后,经3×3卷积和4倍上采样,输出模型分割后的图像。上采样采用线性插值方法恢复特征图大小。
设置损失函数为逐像素的交叉熵损失函数
${L_{{\text{ce}}}}$ ,损失函数为$$ {L_{{\text{ce}}}} = \frac{1}{N}\sum\limits_i {{L_i}} = \frac{1}{N}\sum\limits_i 1 - \sum\limits_{c = 1}^M {{y_{ic}}\log ({p_{ic}})} $$ 式中:
$M$ 为类别数量,如果类型与样本相同则$ {y_{ic}} $ 为1,否则为0,${p_{ic}}$ 为样本$i$ 属于类别$c$ 的概率。1.2 基于Transformer的三维重建
Transformer靠本身的自注意力机制进行特征编码融合和解码。Dosovitskiy等[15]提出Vision Transformer (ViT),用Transformer对图像进行分类。从此 Transformer逐渐成为计算机视觉方向的研究热点,在各细分任务都取得突破进展[16−17]。
然而,仅通过其自注意力机制来探索多视图图像间的关系,在分析三维模型的全局结构与局部结构的多尺度交互方面是不足的。基于Transformer早期模型的局限性,本文设计了一种多尺度注意力机制,在编码器中引入了由粗到细的多尺度注意力机制以捕捉多视图图像间的多尺度特征,在细化器中加入了多尺度立方体注意力机制以逐步细化三维模型。多尺度注意力机制引入了一个逐步细化的过程,使得注意力可以根据先前的关注点来动态调整。其包含多个阶段,在每个阶段中都会进行注意力计算和特征选择。初始阶段的注意力计算关注于全局和整体特征,然后根据先前的注意力权重或关注区域,进一步细化到局部和更具体的特征。
改进后的多尺度注意力Transformer模型由主干网络(Backbone)、Transformer编码器(Transformer Encoder)、体素Transformer解码器(Voxel Transformer Decoder)和3D细化器(3D Refiner)组成,如图3所示。模块操作包括MSA,残差连接与归一化(Add & Norm)和多层感知机(multi-layer perceptron,MLP)。
分割后的多视图图像经过主干网络提取特征后,通过由粗到细的多尺度注意力机制编码器,提取的聚合特征来进行三维体素的重建。最后,使用多尺度立方体注意力机制的细化器修正重建的体素中的缺陷。
1.2.1 主干网络
输入的二维图像为高空间维度(224×224×3),直接输入要求低维向量特征的Transformer网络是不可行的,所以使用ResNet101作为主干网络提取特征。输入来自三维对象的
$n$ 个不同角度的二维图像$X = \{ {X_1},{X_2},{X_3}, \cdot \cdot \cdot ,{X_n}\} $ 。每个图像划分为不重叠的小块,送入和ViT相同的主干网络来获得图像特征向量${{\boldsymbol{P}}^n} \in {{\boldsymbol{R}}^{1 \times d}}$ 。嵌入维度$d$ 设置为和ViT相同的768,图像中的每个局部区域为一个有位置编码的固定向量,以便后续的处理和分析。这样可以减少计算量,并使得模型能够更好地处理大尺寸的图像。1.2.2 Transformer编码器
编码器把主干网络输出的
$n$ 组不同角度的图像特征向量$ \boldsymbol{P}^n $ 及其位置信息送入2个相同的Transformer注意力模块。为了关注更局部的注意力依赖关系和细节信息,第2个注意力模块维度缩小为d/2。每个注意力模块由$H$ 层MSA和MLP组成,在这2个子层之间进行特征的残差连接(+)和归一化(Norm)。$H$ 设置为4,则第$i$ 个注意力模块$h$ 层的输出的特征$ \boldsymbol{D}_{h,i}^n $ 为$$ {\boldsymbol{D}}{_{h,i}^{n'}} = {\text{MSA}}({\text{Norm}}({\boldsymbol{D}}_{h - 1,i}^n)) + {\boldsymbol{D}}_{h - 1,i}^n $$ $$ {\boldsymbol{D}}_{h,i}^n = {\text{MLP}}({\text{Norm}}({\boldsymbol{D}}{_{h,i}^{n'}})) $$ 式中:
$ {\boldsymbol{D}}_{0,1}^n = {{\boldsymbol{P}}^n},{\boldsymbol{D}}_{0,2}^n = {\boldsymbol{D}}_{4,1}^n $ ,$h = 1,2,3,4$ ,$i = 1,2$ 。把2个注意力模块输出的特征向量
${\boldsymbol{D}}_{h,i}^n$ 串联在一起得到Transformer编码器的特征向量${{\boldsymbol{E}}^n} \in {{\boldsymbol{R}}^{1 \times (d + d/2)}}$ 定义为$$ \boldsymbol{E}^n=\text{Norm}([\boldsymbol{D}_{h,1}^n+\boldsymbol{D}_{h,2}^n]) $$ 式中“+”为串联运算。
1.2.3 体素Transformer解码器
为了将多个特征向量矩阵整合到一个三维体素
$ \boldsymbol{V} $ 中,需要视图解释矩阵${\boldsymbol{F}} \in {{\boldsymbol{R}}^{g \times (d + d/2)}}$ 解释和寻址$ \boldsymbol{E}^n $ 。视图解释矩阵是一个随机初始化的可学习权重矩阵,表示不同特征矩阵之间的相互关系和信息传递,可以将不同视图的特征投影到体素$ \boldsymbol{V} $ 中。其中$g$ 为组装体素大小为4×4×4的立方体块的数量,$ g = 8 \times 8 \times 8 = 512 $ ,即可得到体素大小为32×32×32的模型。体素解码器的注意力模块包括MSA层、MLP层和Sigmoid激活函数层。其输出体素大小为32×32×32的三维模型
$ \boldsymbol{V} $ :$${\boldsymbol{ V}} = \sigma ({\text{MLP}}({\text{MSA}}({{\boldsymbol{E}}^n},{\boldsymbol{F}}))) $$ 式中:
$ \boldsymbol{V}\in\boldsymbol{R}^{32\times32\times32} $ ,$\sigma $ 为Sigmoid激活函数。解码器还需要细化器进一步进行细化或修正,以获得更准确和精细的三维重建结果。
1.2.4 3D细化器
初步的三维重建结果可能存在一些粗糙或不准确的地方,使用立方体注意力机制来细化体素
$ \boldsymbol{V} $ ,细化器由$ J $ 个立方体注意力模块组成。每个立方体注意力模块由$K$ 层类似ViT的注意力模块构成,其中$K = 6$ 、$J = 2$ 。首先把
$ \boldsymbol{V} $ 分割成8×8×8大小的立方体区域${{\boldsymbol{M}}_{k,1}}^{'}$ ,表示这些区域的特征信息。通过第1个立方体注意力模块得到${{\boldsymbol{M}}_{K,1}}$ ,然后立方体区域的大小减小为4×4×4得到${{\boldsymbol{M}}_{k,2}}^{'}$ ,最后通过第2个立方体注意力模块得到${{\boldsymbol{M}}_{K,2}}$ ,表示为$$ {{\boldsymbol{M}}_{k,j}}^{'} = {\text{MSA}}({\text{Norm}}({{\boldsymbol{M}}_{k - 1,j}}^{'})) + {{\boldsymbol{M}}_{k - 1,j}}^{'} $$ $$ \boldsymbol{M}_{K,j}=\text{MLP}(\text{Norm}(\boldsymbol{M}_{k,j}^{'}))+\boldsymbol{M}_{k,j}^{'},k=1,2,\cdots,K $$ 通过逐渐减小立方体的大小,立方体注意力模块可以逐渐聚焦于局部区域,从而更加关注细节部分。这有助于逐步优化重建的细节,使重建的结果更加精确。
最后
${{\boldsymbol{M}}_{K,2}}$ 通过Sigmoid激活函数得到最终的重建结果$ \boldsymbol{N} $ :$$ {\boldsymbol{N}} = \sigma ({{\boldsymbol{M}}_{K,2}}) $$ 式中:
$ \boldsymbol{N}\in\boldsymbol{R}^{32\times32\times32} $ ,$\sigma $ 为Sigmoid激活函数。1.2.5 损失函数
采用均方误差 (mean square error,MSE)损失作为损失函数来训练网络,用于评估体素损失。损失函数
${L_{{\text{MSE}}}}$ 定义为$$ {L_{{\text{MSE}}}} = \frac{1}{{{{{m}}^3}}}\sum\limits_{x = 0}^m {\sum\limits_{y = 0}^m {\sum\limits_{z = 0}^m {{{\left( {{{\boldsymbol{G}}_{x,y,x}} - {{\boldsymbol{R}}_{x,y,x}}} \right)}^2}} } } $$ 式中:
${\boldsymbol{G}}$ 为真实体素,${\boldsymbol{R}}$ 为三维重建的体素,$m$ 为三维体素M的长、宽、高的值,$ x、y、z $ 分别为体素的三维坐标轴。2. 实验结果与分析
2.1 实验环境设置
2.1.1 数据集
VOC数据集通常用来做目标检测,但在PASCAL VOC 2012中,加入了语义分割的任务,其验证集和测试集分别有
1464 张图片,1449 张图片和1456 张图片,包括人、动物、交通工具、家居4个类别。可以采用VOC数据集作为图像分割的数据集,原始像素值大小为513× 513。本文同文献[7]和文献[18]使用ShapeNet数据集中的一个子集,该子集包含13个类别共
43783 个三维模型。每个三维模型都有24个不同角度的二维视图,并对应一个三维的binvox文件。binvox文件包含三维空间中的体素信息,表示物体的形状和结构。每个体素表示一个立方体单元,其状态通常表示物体是否存在于该立方体单元内部,1为存在,0为不存在。在数据划分上,随机选取70%作为训练集,10%作为验证集,剩余20%作为测试集。2.1.2 评价指标
1) 图像分割
采用平均交并比 (mean intersection over union, MIoU) 作为评价指标客观评价改进的DeepLabv3+模型在图像分割方面的性能
$$ {S_{{\text{MIoU}}}} = \frac{1}{{c + 1}}\sum\limits_{k = 0}^c {\frac{{{u_{kk}}}}{{\displaystyle\sum\limits_{l = 0}^c {{u_{kl}}} +\displaystyle \sum\limits_{l = 0}^c {{u_{lk}}} - {u_{kk}}}}} $$ 式中:
$c$ 为像素类别数,${u_{kk}}$ 为分类正确的像素数,${u_{kl}}$ 为属于第$k$ 类但被分类为第$l$ 类的像素数。MIoU为每个像素类别的交并比的平均值,MIoU越大,分割精度越高。2) 三维重建
采用体素交并比(intersection over union,IoU)[18]和F-score[19]来评估所提出模型的重建性能,本文采用F-score@1%评价指标。
①交并比:IoU是重建的三维体素模型和对应的真值(ground truth,GT)的交并比,其计算方法为
$$ {R_{{\text{IoU}}}}{\text{ = }}\frac{{\displaystyle\sum\limits_{i,j,k} {I(P(i,j,k) \gt t)I(G(i,j,k))} }}{{\displaystyle\sum\limits_{i,j,k} {[I(P(i,j,k) \gt t) + I(G(i,j,k))]} }} $$ 式中:
$I$ 为指示函数,当条件成立时为1,条件不成立时为0;$t$ 为三维模型体素化的阈值大小,均设置为0.3。$ P(i,j,k) $ 为重建的三维模型体素网格占用率,$ G(i,j,k) $ 为GT的体素网格占用率。IoU的值越高说明三维重建效果也越佳。②F-score:基于体素的IoU可能不准,高的IoU并不代表着二者曲面相似,故还要衡量F-score。F-score关注表面重建质量,定义为精确率
$P(d)$ 和召回率$R(d)$ 之间的调和平均值,本文F-score计算为$$ {{{F}}_{{\text{score}}}}(d) = \frac{{2P(d)R(d)}}{{P(d) + R(d)}} $$ $$ P(d) = \frac{1}{{{n_R}}}\sum\limits_{r \in R} {\left[ {\mathop {\min \left\| {g - r} \right\| \lt d}\limits_{g \in G} } \right]} $$ $$ R(d) = \frac{1}{{{n_G}}}\sum\limits_{g \in G} {\left[ {\mathop {\min \left\| {g - r} \right\| \lt d}\limits_{r \in R} } \right]} $$ 式中:
$d$ 为距离阈值,$G$ 为真实点云标签,$R$ 为重建的点云结果,${n_R}$ 和${n_G}$ 分别为在对应的点云上采集点的数量。F-score越高,重建效果越好。2.1.3 实验配置
本文算法均在服务器上使用深度学习框架,基于编程语言实现,并在显卡上进行训练和评估。实验环境配置如表1所示。
表 1 实验软硬件环境配置 型号 参数 操作系统 Ubuntu 20.04 处理器 Intel(R) Xeon(R) Gold 5222 3.80GHz 显卡 NVIDIA GeForce RTX 3090 24 GB 内存 SAMSUNG 64 GB 语言 Python 3.8 框架 PyTorch 1.13.1 平台 CUDA 12.0 图像分割训练输入图像像素值大小为513× 513,使用随机梯度下降法(stochastic gradient descent,SGD)优化器,最大训练轮次为100,批训练量设置为8,初始学习率设置为0.01,每训练10个轮次后学习率衰减
0.0001 。三维重建训练视图输入图像像素值大小为 224×224,体素大小为32×32×32。输入视图的数量同LegoFormer模型一样设为 8。在训练过程中,每次迭代时都会从 24 个视图中随机采样8个视图进行训练。网络模型使用Adam优化器,最大训练轮次为300,初始学习率
$\alpha $ 设置成0.001,权重衰减为0.01,一阶矩估计的指数衰减率${\beta _1} = 0.9$ ,二阶矩估计的指数衰减率${\beta _2} = 0.999$ ,批训练量设置为8。2.2 实验结果
本节实验包括在VOC数据集上的图像分割结果、在合成视图上的三维重建结果,以及在真实视图上的三维重建结果3个方面。
2.2.1 图像分割结果
为进一步评价改进DeepLabv3+模型的图像分割性能,在PASCAL VOC 2012数据集上使用SegNet模型[20]、UNet模型[21]以及原始的DeepLabv3+模型分别进行训练和测试,并与本文提出的改进DeepLabv3+模型对比,比较不同分割模型的精度、分割时间和参数量。表2为在PASCAL VOC 2012数据集上不同模型的定量实验结果。对比结果可知,本文算法分割结果的MIoU为0.789,与DeepLabv3+相比降低2.71%,但本文模型参数量只有5.15×106,与DeepLabv3+相比模型参数量降低91.32%,且分割时间降低59.91%。同时对比SegNet模型和UNet模型MIoU分别提高了13.29%和10.04%。在分割精度、分割时间和算法参数量上本文算法的均衡表现更好。
表 2 PASCAL VOC 2012数据集上不同模型定量比较结果对比模型 MIoU 分割时间/ms 参数量/×106 SegNet 0.697 187 15.73 UNet 0.717 192 16.82 DeepLabv3+ 0.811 222 59.34 本文方法 0.789 89 5.15 本文从VOC数据集中随机抽取了 4 组图片进行可视化分割,图4为实验结果。从左到右依次为输入图像、标签图像、DeepLabv3+的分割结果以及本节模型分割的结果。从图中可以看出所提算法的分割效果类似接近标签图像,边缘轮廓也较为平整。
2.2.2 合成视图重建结果
为了评价多尺度注意力Transformer模型对三维重建的性能影响,在ShapeNet数据集13个类别上分别使用3D-R2N2模型[4]、Pix2Vox++/A模型[18]、LegoFormer-m模型[7]和本文算法进行对比(输入视图数量均为8),比较不同模型在三维重建方面的精度。
表3为本文算法和其余模型使用IoU值和F-score作为评估指标的重建结果比较,加粗数据为各个类别的最优结果。由表3可知,本文算法的F-score精度均高于其余模型。其中IoU精度能够达到0.715,比LegoFormer提高了0.28%,且均高于3D-R2N2模型和Pix2Vox++/A模型。在ShapeNet数据集上,类别为cabinet、car、chair、monitor、speaker、couch、table的IoU精度分别为0.857、0.908、0.633、0.601、0.777、0.776、0.674,重建精度均高于其余模型。F-score精度为0.467,对比LegoFormer提高0.65%,且均高于3D-R2N2模型和Pix2Vox++/A模型。cabinet、car、firearm、table、cellphone的F-score精度分别为0.443、0.603、0.663、0.465、0.668,均高于别的算法。这是因为本文算法的多尺度注意力机制明显优于LegoFormer的单尺度MSA,多尺度注意力机制可以在粗粒度级别,捕获输入数据全局信息的整体特征;在细粒度级别,模型可以更专注地处理局部区域和细节。
表 3 ShapeNet数据集上不同模型性能表现类别 IoU F-score@1% 3D-R2N2 Pix2Vox++ LegoFormer 本文模型 3D-R2N2 Pix2Vox++ LegoFormer 本文模型 airplane 0.588 0.713 0.874 0.722 0.451 0.617 0.536 0.573 bench 0.496 0.647 0.769 0.660 0.384 0.512 0.416 0.479 cabinet 0.791 0.838 0.699 0.857 0.366 0.442 0.441 0.443 car 0.873 0.897 0.855 0.908 0.520 0.598 0.551 0.603 chair 0.541 0.620 0.600 0.633 0.277 0.343 0.380 0.342 monitor 0.543 0.587 0.587 0.601 0.266 0.330 0.374 0.333 lamp 0.456 0.496 0.606 0.518 0.306 0.349 0.476 0.367 sperker 0.737 0.76 0.509 0.777 0.270 0.186 0.405 0.336 firearm 0.619 0.656 0.865 0.679 0.561 0.608 0.604 0.633 couch 0.703 0.764 0.668 0.776 0.313 0.411 0.379 0.400 table 0.588 0.659 0.631 0.674 0.379 0.442 0.463 0.465 cellphone 0.736 0.848 0.924 0.835 0.543 0.667 0.542 0.668 watercraft 0.588 0.642 0.681 0.661 0.344 0.424 0.461 0.426 总体结果 0.635 0.702 0.713 0.715 0.383 0.456 0.464 0.467 由于本文使用体素化的三维模型进行训练和验证,对测试结果进行体素可视化表示。随机选取各类别ShapeNet数据集的二维视图,并用不同模型进行三维重建,部分可视化结果如图5所示。通过可视化结果得知,本文算法在保证重建出三维模型完整形状的同时,在飞机机翼、衣柜表面、椅子表面、游艇结构等细节上,重建效果对比其他模型更好,更有效关注到三维模型的细节信息。通过上述分析,本文提出的算法在IoU值和F-score方面表现出色,同时可视化重建结果与GT接近,表面光滑结构完整,重建效果更好。
2.2.3 真实视图重建结果
由于没有配对的多视角物体真实视图及其体素模型的数据集,为了比较真实视图三维重建的结果,本文在网络上选取有真实背景的多视图图片进行评价,每个类别输入图像均为8张。图6展示呈现出飞机、汽车、沙发的三维重建过程,从左到右分别是真实视图、分割后的物体图像、分割后的三维重建结果和未分割直接重建的结果。从图中可以发现,经过分割后的图像在三维重建时剔除了大量的背景信息,可以有效地避免背景信息对重建结果的影响,三维重建的完整度较高,细节上重建效果也更好。
2.3 消融实验
2.3.1 使用和不使用图像分割的三维重建结果
为了验证图像分割对复杂背景图像三维重建的有效性,本实验去除图像分割这一流程,把未分割的真实视图图像直接放入多尺度注意力Transformer网络,并在相同实验环境中进行三维重建。实验结果如图6最后一列所示。明显可见,先分割再进行重建的效果显著优于直接通过网络重建的效果。此外这种直接网络重建的方式,往往容易受到背景因素的干扰,导致在真实视图重建任务中表现不佳。从图像域角度证明了真实视图和合成视图在数据域上有明显的差异。
为了进一步评价本文算法,将上述直接重建和分割后重建的消耗时间进行对比,对比结果如表4所示。对于 3 组图像,本文算法重建总和时间只需要1.89 s,对比直接重建速度提高了44.89%。直接重建时间更长是由于其背景复杂,保留了更多的特征点。
表 4 真实视图重建时间对比s 对比方法 图像分割 三维重建 总和 不分割 0 3.43 3.43 本文算法 0.54 1.35 1.89 以上实验验证了采用分割后重建的方法的有效性。图像分割可以消除背景信息对三维重建的效果影响,大大提高重建的精度和速度。
2.3.2 使用和不使用细化器的三维重建结果
为验证3D细化器模块对三维重建性能的影响,在ShapeNet基准数据集上分别训练和测试了去除与保留3D细化器模块的网络。表5展示了是否使用3D细化器模块对重建精度的影响,由表5可知,网络加入引入多尺度立方体注意力机制的3D细化器时,IoU和F-score均值分别能够达到0.715和0.467,对比不使用细化器的重建结果分别提升4.53%和7.36%。
表 5 3D细化器模块对重建精度的影响对比方法 IoU F-score 使用细化器 0.715 0.467 不使用细化器 0.684 0.435 本文随机展示了几个重建结果,如图7所示。由图7可知,使用细化器的重建结果优于不使用细化器的重建结果;不使用细化器的重建结果表面有部分突起的缺陷和部分凹陷,但使用细化器的重建表明较为平整。综上,引入多尺度立方体注意力机制的细化器模块可以修正三维重建结果,使重建表面更光滑,其对最终的三维重建结果起到了重要的作用。
3. 结束语
本文聚焦于真实视图的三维物体重建任务,提出图像分割和多尺度注意力结合的三维重建方法。由粗到细的多尺度注意力能够在不同尺度上提取特征,从全局逐渐细化到局部细节;多尺度立方体注意力机制的细化器能够在保持全局结构的同时,逐渐关注细节部分,并逐步优化重建效果。与多个体素三维重建算法相比,本文算法在ShapeNet数据集上IoU为0.715,F-score为0.467,均高于其余模型。最后通过实验验证了采用先分割后重建方法的有效性。
-
表 1 实验软硬件环境
配置 型号 参数 操作系统 Ubuntu 20.04 处理器 Intel(R) Xeon(R) Gold 5222 3.80GHz 显卡 NVIDIA GeForce RTX 3090 24 GB 内存 SAMSUNG 64 GB 语言 Python 3.8 框架 PyTorch 1.13.1 平台 CUDA 12.0 表 2 PASCAL VOC 2012数据集上不同模型定量比较结果
对比模型 MIoU 分割时间/ms 参数量/×106 SegNet 0.697 187 15.73 UNet 0.717 192 16.82 DeepLabv3+ 0.811 222 59.34 本文方法 0.789 89 5.15 表 3 ShapeNet数据集上不同模型性能表现
类别 IoU F-score@1% 3D-R2N2 Pix2Vox++ LegoFormer 本文模型 3D-R2N2 Pix2Vox++ LegoFormer 本文模型 airplane 0.588 0.713 0.874 0.722 0.451 0.617 0.536 0.573 bench 0.496 0.647 0.769 0.660 0.384 0.512 0.416 0.479 cabinet 0.791 0.838 0.699 0.857 0.366 0.442 0.441 0.443 car 0.873 0.897 0.855 0.908 0.520 0.598 0.551 0.603 chair 0.541 0.620 0.600 0.633 0.277 0.343 0.380 0.342 monitor 0.543 0.587 0.587 0.601 0.266 0.330 0.374 0.333 lamp 0.456 0.496 0.606 0.518 0.306 0.349 0.476 0.367 sperker 0.737 0.76 0.509 0.777 0.270 0.186 0.405 0.336 firearm 0.619 0.656 0.865 0.679 0.561 0.608 0.604 0.633 couch 0.703 0.764 0.668 0.776 0.313 0.411 0.379 0.400 table 0.588 0.659 0.631 0.674 0.379 0.442 0.463 0.465 cellphone 0.736 0.848 0.924 0.835 0.543 0.667 0.542 0.668 watercraft 0.588 0.642 0.681 0.661 0.344 0.424 0.461 0.426 总体结果 0.635 0.702 0.713 0.715 0.383 0.456 0.464 0.467 表 4 真实视图重建时间对比
s 对比方法 图像分割 三维重建 总和 不分割 0 3.43 3.43 本文算法 0.54 1.35 1.89 表 5 3D细化器模块对重建精度的影响
对比方法 IoU F-score 使用细化器 0.715 0.467 不使用细化器 0.684 0.435 -
[1] 罗锦锋, 袁冬莉, 张蓝, 等. 基于多视图传播的无监督三维重建方法[J]. 西北工业大学学报, 2024, 42(1): 129−137. [2] 李兆歆, 蒋浩, 刘衍青, 等. 丝路文化虚拟体验中的多视角立体重建技术研究[J]. 计算机学报, 2022, 45(3): 500−512. doi: 10.11897/SP.J.1016.2022.00500 [3] KAR A, HANE C, MALIK J. Learning a multi-view stereo machine[EB/OL]. (2017−08−17)[2023−10−01]. https://arxiv.org/abs/1708.05375. [4] CHOY C B, XU D, GWAK J Y, et al. 3d-r2n2: A unified approach for single and multi-view 3d object reconstruction[C]// Proceedings of the European Conference on Computer Vision. Amsterdam: Springer, 2016: 628−644. [5] SHI Z, MENG Z, XING Y, et al. 3D-RETR: end-to-end single and multi-view 3D reconstruction with transformers [EB/OL]. (2021−10−17)[2023−12−1]. https://arxiv.org/abs/2110.08861. [6] WANG D, CUI X, CHEN X, et al. Multi-view 3d reconstruction with transformers[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. Virtual: IEEE, 2021: 5722−5731. [7] YAGUBBAYLI F, WANG Y, TONIONI A, et al. LegoFormer: Transformers for block-by-block multi-view 3d reconstruction[EB/OL]. (2021−06−23)[2023−12−1]. http://arxiv.org/abs/2106.12102. [8] TIONG L C O, SIGMUND D, TEOH A B J. 3D-C2FT: Coarse-to-fine Transformer for Multi-view 3D Reconstruction[C]//Proceedings of the Asian Conference on Computer Vision. Macau SAR: Asian Federation of Computer Vision, 2022: 1438−1454. [9] YANG L, ZHU Z, LIN X, et al. Long-Range Grouping Transformer for Multi-View 3D Reconstruction[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. Paris: IEEE, 2023: 18257−18267. [10] 周婧怡, 张栖桐, 冯结青. 基于混合结构的多视图三维场景重建[J]. 图学学报, 2024, 45(1): 199−208. [11] HEN L C, ZHU Y, PAPANDREOU G, et al. Encoder-decoder with atrous separable convolution for semantic image segmentation[C]//Proceedings of the European Conference on Computer Vision. Munich: Springer, 2018: 801−818. [12] 朱正伟, 张静, 饶鹏, 等. 一种用于三维重建的多视图前景目标自动分割算法[J]. 计算机应用与软件, 2019, 36(6): 209−213. doi: 10.3969/j.issn.1000-386x.2019.06.039 [13] 宁小娟, 巩亮, 韩怡, 等. 结合语义分割与模型匹配的室内场景重建方法[J]. 中国图象图形学报, 2023, 28(10): 3149−3162. doi: 10.11834/jig.220518 [14] 刘昊鑫, 赵源萌, 张存林, 等. 基于改进U-net的牙齿锥形束CT图像重建研究[J]. 中国激光, 2022, 49(24): 139−147. [15] DOSPVITSKIY A, BEYER L, KOLESNIKOV A, et al. An image is worth 16x16 words: Transformers for image recognition at scale[EB/OL]. (2020−10−22) [2023−12−1]. https://arxiv.org/abs/2010.11929. [16] XU Y, WEI H, LIN M, et al. Transformers in computational visual media: A survey[J]. Computational Visual Media, 2022, 8: 33−62. doi: 10.1007/s41095-021-0247-3 [17] 刘心溥, 马燕新, 许可, 等. 嵌入Transformer结构的多尺度点云补全[J]. 中国图象图形学报, 2022, 27(2): 538−549. doi: 10.11834/j.issn.1006-8961.2022.2.zgtxtxxb-a202202017 [18] XIE H, YAO H, ZHANG S, et al. Pix2Vox++: Multi-scale context-aware 3D object reconstruction from single and multiple images[J]. International Journal of Computer Vision, 2020, 128(12): 2919−2935. doi: 10.1007/s11263-020-01347-6 [19] TATARCHENKO M, RICHTER S R, RANFTL R, et al. What do single-view 3d reconstruction networks learn?[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Long Beach: IEEE, 2019: 3405−3414. [20] BADRINARAYANAN V, KENDALL A, CIPOLLA R. Segnet: A deep convolutional encoder-decoder architecture for image segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(12): 2481−2495. doi: 10.1109/TPAMI.2016.2644615 [21] RONNEBERGER, FISCHER P, BROX T. U-net: Convolutional networks for biomedical image segmentation[C]//Medical Image Computing and Computer-Assisted Intervention. Munich: Springer, 2015: 234−241.
下载:


















































































