多视图几何轻量级三维重建算法

杨 硕,谢晓尧,刘 嵩

(贵州师范大学 贵州省信息与计算科学重点实验室,贵阳 550000)

多视图几何(multi-view stereo, MVS)利用大量已校准的图片进行物体3D特征重建,是计算机视觉领域一个极其重要的研究方向,广泛应用于三维重建、增强现实 (augmented reality, AR)、自动驾驶、逆向工程等场景[1-10]。传统三维重建方法通常使用差的平方和 (sum of squared differences, SSD)、图像的相关性 (normalized cross correlation, NCC)、自适应加权 (adaptive support weight, ASW)等来计算颜色一致性。

传统的基于图像三维重建算法从几何学角度来解决问题[11-13]。随着深度学习的不断发展,卷积神经网络(convolutional neural networks, CNN)在计算机视觉领域的应用越来越广泛,2D卷积神经网络也使得MVS的表现能力得到进一步提高。

DeepMVS网络[3]把计算几何与深度学习方法相结合生成深度图,在面对纹理信息较少区域和稀疏结构时比其他算法效果更好,但也存在不能正确判断包含树木或草地的植被区域、整体速度易受卷积量和模型深度影响等问题。基于深度学习的多视图几何方法可显著改进传统计算几何在弱纹理、稀疏结构、反射面和透明面存在的局限性。文献[4-5]提出了一种端到端的MVSNet神经网络模型,通过2D CNN特征提取网络得到成本量,然后通过3D CNN对成本量进行正则化平滑调整,能极大地提高三维重建的整体质量,但在计算时会产生大量的冗余计算。文献[6]提出了Point-MVSNet模型,采用“由粗到细”策略,先通过轻量级的3D 成本量来预测一个粗略深度预测图,然后对其进行上采样并且不断地迭代以提高质量。虽然这些网络性能有很大提高,但在实际应用中仍面临着一些问题,如内存消耗满足不了大场景的需要、生成深度图的时间太长以及深度图太小等,这极大地限制了基于深度学习的三维重建在大场景中的应用[4-9,14-17]。

本文针对现有方法存在的问题,提出一种高效的多视图几何三维重建网络模型(high efficiency multi-view stereo network, H-MVSNet),通过搭建轻量级的特征提取模块实现图片的特征提取,利用改进的门控循环单元 (gated recurrent unit, GRU)[18]模块进行正则化,使用列文伯格马夸尔特(levenberg-marquardt, L-M)方法[19]作为深度图细化层,可有效解决现有方法内存消耗严重、网络利用率低下等问题。

基于深度学习的三维重建主要通过单张图片或者多张图片来恢复物体的三维结构。由于单张图片得到物体的几何信息缺失严重,因此,仅输入单张图片对物体进行三维结构重建会导致输出不可预测[1-10,17]。本文通过使用多视图三维重建算法来更好地解决该类问题。

随着3D卷积量增加,内存消耗会呈3次方增长,导致目前基于深度学习的MVS方法应用于大规模场景时效果不理想。模型借鉴循环神经网络,构建一个改进的GRU模块组来对成本量实现正则化,在减少大量内存开销的同时,可以保证正则化的效果[5,18]。

基于深度学习的多视图三维重建主要有基于点云重建、体素重建、网格重建和深度图重建等方法。基于点云重建主要依赖网络进行传播,并行运行困难,耗时量大;
基于体素重建将3D空间划分成有规律的网格,容易造成较大的离散化误差和较高的内存消耗;
基于网格重建可以提高精度和增强泛化能力,但是网格的表示格式不统一,为重建造成了困难;
基于深度图重建更加具有灵活性,生成深度图后方便转化成点云和体素重建,进而也可以进行网格的转换。

为了得到一张细化的深度图,本文利用图片和深度图融合的方法,结合L-M算法,构建了L-M层来实现细化操作,相对于Gauss-Newton (G-N)算法可大大减少中间值的存储。

本文构建的H-MVSNet网络,可实现从二维特征到三维特征的转换,利用改进的GRU模块构建正则化模块实现信息收集、更新,最后使用L-M层实现细化。H-MVSNet网络结构如图1所示。

图1 H-MVSNet网络结构Fig.1 H-MVSNet network structure

2.1 图像的特征提取

表1 特征提取模块网络结构Tab.1 Network structure of feature extraction module

与传统卷积块相比,本文将BN (batch normalization)层后面的激活层模块转化成Inplace-ABN (in-place activated batch normalization)层,该结构通过减少中间结果的存储、前馈网络存储的信息映射出反馈网络中需要的信息,在仅增加0.8%~2%计算量的情况下可在卷积层节省50%的内存消耗[20]。传统卷积块和转换后的卷积块如图2所示。

图2 传统卷积块和转换后的卷积块Fig.2 Conventional convolution blocks versus converted convolution blocks

2.2 改进的GRU模块

图3 改进的GRU结构图Fig.3 Improved GRU structure diagram

为了进一步提高正则化能力,将3个改进的GRU模块组成一个模块组,以上层的输出作为下层的输入[5]。改进的GRU模块组成正则化模块组,其输入为每一个通道的成本量,在纵向上提取上下文信息,在横向上可更新、重置信息,正则化效果同3D CNN,但特征信息可更好保留,计算量可大大减少。正则化GRU模块组如图4所示。

图4 正则化GRU模块组Fig.4 Regularize the GRU module group

2.3 L-M层细化

PointFlow结构[6]通过迭代可有效提高深度图的质量,虽然相对于MVSNet在内存消耗方面有显著改善,但计算量过大;
文献[10]提出的G-N结构,将不同视角的图像特征、相机参数和最初的深度图作为输入,迭代实现深度图质量的提高。

使用G-N结构是简单有效的,然而在中间过程中会存储大量计算值,因此,使用文献[19]提出的L-M改进算法,将L-M层作为深度图细化的结构,通过最速下降法和牛顿法来驱动更新规则,表示为

Δω=(Q+μI)-1g

(1)

(1)式中:ω为权重变量;
Q为海森矩阵的近似矩阵;
μ为阻尼因子;
I为单位向量;
g为梯度向量。Q的计算表达式为

Q=JTJ

(2)

(2)式中:J为雅可比矩阵。g的计算表达式为

g=JTe

(3)

利用改进的L-M算法,求源图像Ii和参考图像I0用深度表示的差值ei(p)的极值,得

(4)

(5)

(6)

然后得到增量值为

(7)

(7)式中,μ对增量大小和方向有影响,其计算公式为

(8)

(8)式中,ξ通过真实深度图和预测深度图的差值得到,计算公式为

(9)

(10)

2.4 损失函数

使用原始图片和预测深度图融合的办法进行端到端的训练,利用估计深度图和真实深度图的均值绝对差作为损失函数,表示为

(11)

3.1 DTU数据集

H-MVSNet模型使用DTU数据集,包括124个不同的场景,每个场景捕获了49个或者64个不同位置的相机图片,每个位置的图片由7种不同光照亮度组成。DTU数据集提供了由精确的结构光扫描仪扫描的物体模型、大小为1 600×1 200的高分辨率RGB图像,包括了由Matlab标定工具得到高精度的相机内参和外参[1]。设置与基于深度学习的方法相同的训练集、验证集和测试集。验证集为场景{3,5,17,21,28,35,37,38,40,43,56,59,66,67,82,86,106,117};
测试集为场景{1,4,9,10,11,12,13,15,23,24,29,32,33,34,48,49,62,75,77,110,114,118};
训练集为其余78个场景。

3.2 实验环境

硬件环境:AMD 2700X处理器,64 GB内存,两块GTX 1080显卡。

软件环境:Ubuntu18.04,python3.6,pytorch1.4,CUDA 10.0,cuDNN 7.6.5。

实验设置:训练输入图片的分辨率为640×512;
视点个数为3;
从425 mm到921 mm进行均匀采样来构建48个虚拟深度平面;
RMSProp优化器初始学习率为0.0005;
每两个epoch降低0.9;
Batch_Size设置为6。

3.3 实验结论

为验证所改进的网络在性能方面的变化,对H-MVSNet模型与MVSNet、R-MVSNet、Point-MVSNet和Fast-MVSNet在精度误差、完整性、全面性、GPU内存消耗和运行时间等方面进行比较,结果如表2所示。

由表2可知,相对于MVSNet、R-MVSNet、Point-MVSNet和Fast-MVSNet,H-MVSNet模型精度误差分别降低了39.45%、17.73%、10.40%和2.75%;
GPU内存消耗分别减少了77.22%、63.34%、71.82%和53.58%;
运行时间分别减少58.09%、95.16%、86.86%和26.67%,网络性能明显改善。

表2 DTU数据集实验结果比较Tab.2 Parameter comparison table of experimental results of DTU dataset

同时,本文对三维重建精度误差和内存消耗以及运行时间的相关关系做了比较,如图5所示。由图5可知,本文模型相对于其他模型有一定的优势。

图5 三维重建精度分别与内存消耗和运行时间的相关关系Fig.5 Correlation between 3D reconstruction accuracy and memory consumption and running time respectively Visualized comparison diagram of correlation

在生成点云的质量方面,H-MVSNet和R-MVSNet、Fast-MVSNet效果对比如图6所示。图6左列是整体效果图,右列是模型细节放大图。

图6 点云效果对比图Fig.6 Comparison diagram of point cloud effect

通过CloudCompare开源代码计算重建之后的点云和真实点云的平均距离、标准差,并与R-MVSNet和Fast-MVSNet所生成的点云距离进行对比,结果如表3所示。

表3 平均距离与标准差比较Tab.3 Comparison of mean distance and standard deviation

由表3可知,H-MVSNet在平均距离和标准差方面较R-MVSNet和Fast-MVSNet都有较明显改善。

为了证明H-MVSNet网络训练模型的有效性,对DTU数据集中测试场景生成的点云模型进行展示,总共22个场景,如图7所示。由图7可以看出,通过开源代码fusibile[21]融合深度图生成的点云在细节方面完好,尤其是在特征变化明显的部位,模型中间未出现缺失的部分,点云相对密集,符合重建的要求。

3.4 消融实验

为进一步验证H-MVSNet网络中各模块的优越性,将3D CNN正则化和改进的GRU模块正则化进行可视化对比,结果如图8所示。

由图8可知,改进的GRU模块可以显著地减少内存的使用,精度误差可以大大降低,在网络中性能表现优越。

图8 3D CNN正则化和改进的GRU模块组正则化对比Fig.8 Comparison of 3D CNN regularization and improved GRU module group regularization

使用L-M层细化和未使用L-M层细化可视化对比如图9所示。

图9 未使用和使用L-M层的可视化对比Fig.9 Visual comparison between L-M layer not used and used

由图9可得,使用L-M细化层的精度误差比未使用L-M细化层降低了0.041,同时减少了中间参数冗余,降低了内存消耗。

目前深度学习网络内存消耗严重、网络利用率低,难以应用于大规模场景。针对此问题,本文提出了轻量级H-MVSNet网络框架。研究主要从以下几个方面展开:①为了减少特征提取时产生冗余数据,采用8层卷积网络,使用轻量级特征提取模块;
②为了降低内存的消耗,采用基于改进的GRU模块组对成本量进行正则化;
③为了提高预测深度图的质量,将原始图与预测深度图融合通过L-M层进行细化。本文模型取得的成果如下。

1)在DTU数据集下,H-MVSNet可以达到很好的三维重建效果,其精度误差为0.327 mm,内存消耗仅为2.46 GB,预测一张分辨率大小为640×480的深度图仅需0.44 s。

2)生成的点云细节部分完好,模型中的文字部分以及拐角细节处重建效果明显,符合三维重建的要求。

3)H-MVSNet模型在保障准确率的同时可以降低内存的消耗,并得到很好的三维重建效果,为大场景三维重建应用奠定了良好的基础,在神经网络移植方面可以提供很好的保障。

猜你喜欢 正则三维重建消耗 玉钢烧结降低固体燃料消耗实践昆钢科技(2022年4期)2022-12-30半群的极大正则子半群贵州师范大学学报(自然科学版)(2022年5期)2022-11-18转炉炼钢降低钢铁料消耗的生产实践昆钢科技(2022年1期)2022-04-19三维重建的飞机机动动作库设计与可视化北京航空航天大学学报(2021年6期)2021-07-20π-正则半群的全π-正则子半群格兰州理工大学学报(2021年3期)2021-07-05Virtually正则模兰州理工大学学报(2021年3期)2021-07-05降低钢铁料消耗的生产实践昆钢科技(2021年6期)2021-03-09多层螺旋CT三维重建后处理技术在骨肿瘤影像诊断中的价值中华养生保健(2020年7期)2020-11-16基于Mimics的CT三维重建应用分析软件(2020年3期)2020-04-20任意半环上正则元的广义逆上海师范大学学报·自然科学版(2018年3期)2018-05-14

推荐访问:视图 几何 重建