本文主要是介绍[论文翻译]A Novel Recurrent Encoder-Decoder Structure for Large-Scale Mulit-view Stereo Reconstruction,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
A Novel Recurrent Encoder-Decoder Structure for Large-Scale Multi-view Stereo Reconstruction from An Open Aerial Dataset
- 摘要
- 1.Introduction
- 2.相关工作
- 2.1数据集
- 2.2网络
- 3.WHU 数据集
- 3.1 数据源
- 3.2合成航空数据集
- 3.3用于深度学习的子数据集
- 4.RED-Net
- 5.实验
- 5.1实验设置和结果
- 5.2 GPU内存占用和运行时间
- 5.3 泛化性
- 6.讨论
- 6.1 循环编解码结构的优势
- 6.2 DTU上的评估
- 6.3 大规模重建
- 7.结论
这篇文章是武汉大学季顺平老师团队发表在CVPR2020上的一篇文章,主要贡献是开源了一个用于三维重建的大型空中模拟数据集,并在此基础上提出了一个基于循环编解码结构的多视角深度估计网络。
摘要
最近许多研究证明了多视角立体匹配问题可以用深度学习方法来解决。然而,大多数成果都针对近距离的目标,只有很少基于深度学习的方法是为大肠经3D城市重建而设计的,主要原因是缺少多视角航空影像数据,在本文中,我们提出了一个合成的航空数据集,称作WHU dataset,该数据集可用于MVS任务,在我们的认知中,该数据集是第一个大规模多视角航空数据集。它是由具有精确相机参数的数千个真正的空中图像产生的高度精确的3D数字表面模型。它是由具有精确相机参数的数千个真正的空中图像产生的高度精确的3D数字表面模型生成的。我们还在本文中介绍了一种新颖的网络,称为RedNet,用于广泛深度推断,在该网络使用2D全卷积作为框架,使用循环编解码结构正则化代价图。Red-Net的低内存要求和高性能使其适用于大规模和高精度的3D地球表面重建。我们的实验证实,RedNet与最先进的MVS方法相比,不仅具有更好的精度,而且具有更高的计算效率。与最好的基于传统方法的商业软件相比,RedNet可以减少16倍的计算时间。该网络使用WHU 数据集训练处的模型可以很容易的迁移到其他数据,并且不用任何的微调。数据集和代码地址:http://gpcv.whu.edu.cn/data。
1.Introduction
地球表面的大规模和高度准确的3D重建,包括城市,主要来自多视图空中图像的密集匹配实现,由商业软件如PIX4D [24],SMART3D [8],和SURF[27],所有这些都是由常规方法开发的[33,3,13]。在文献[14,16,36,37,15]中发现了与深层学习方法的多视图立体(MVS)匹配的最新尝试。虽然这些深度学习方法可以在近距离对象重建方面产生令人满意的结果,但是当应用于从多视图空中图像的地球表面重建时,它们具有两个关键限制。第一个限制是缺乏空中数据集基准,这使得难以通过方法比较来训练,发现和改进适当的网络。此外,大多数现有的MVS数据集是实验室的图像,并且在其上训练的模型不能令人满意地转移到鸟瞰图的陆地场景中。这些方法的第二个限制是它们在最近的MVS网络[36,15,25,34]中的高GPU存储器需求,这使得它们不太适合大规模和高分辨率场景重建。最先进的R-MVSNET方法[37]已经实现了无限的深度分辨率的深度推断,然而,随着输出深度图下采样四次,其结果的分辨率质量不高。
在本文中,我们介绍了我们为大规模MVS匹配和地球表面重建创建的合成空中数据集。数据集中的每个图像来自具有软件和仔细手动编辑的真实多视图空中图像集合生产的完整和准确的3D城市场景。该数据集包括覆盖面积6.7×2.2km2的数千个模拟图像,以及用于多视图图像的地面真实深度和相机参数,以及核线校正过的视差图。由于空中图像的大尺寸(5376×5376像素),所以有由裁剪的子块组成的子集,其可以直接用于训练单个GPU上的CNN模型。请注意,模拟相机参数是无bias的,即使在遮挡区域中也绝对完整,这确保了数据集的准确性和可靠性,用于详细的3D重建。
我们还在本文中介绍了一个MVS网络,称为Red-Net,我们为大规模的MVS匹配创建。一种循环编解码结构被用于顺序的正则化有一系列卷积获得的多视角代价图。与最先进的方法相比[37]相比,我们使用较少的GPU内存实现了更高的效率和准确性,同时保持无限的深度分辨率,这有利于城市规模重建。我们的实验证实,Red-Net优于在WHU空中数据集上评估的所有可比方法。
我们的工作旨在解决现有方法的两个局限性。目标是证明我们的MVS网络可以广泛地用于交叉数据集迁移学习。我们证明了RedNet预训练模型可以直接应用于其他航空数据集,精度比最好的商业软件有略微的优势并且计算速度提高16倍。
2.相关工作
2.1数据集
双视角数据集。Middrbury [28]和Kitti [9]是两个流行的数据集,用于视差估计。然而,这些数据集对于当前应用来说太小,特别是在训练深度学习模型时,缺乏足够的样品通常会导致过度拟合和低泛化性能。考虑到这种情况,[21]创建了一个由三个子集组成的大型合成数据集:Flyinghings3D,Monkaa和Driving,这提供了成千上万的立体声图像,具有密集和完整的真实视差。然而,由于异构数据源,不能将合成数据集上训练的模型应用于真实场景。
多视角数据集。Middrbury多视图数据集[31]是为评估了MVS匹配算法,并且是从实验室环境中只有两个小型场景的校准图像集的集合。DTU数据集[1]是一个大规模的近距离MVS基准测试,其中包含124个场景,在不同的照明条件下具有各种物体和材料,这使其适用于评估先进方法。坦克和寺庙基准[18]提供了高分辨率数据,其中包括在复杂的户外环境中获得的图像。最近称为ETH3D [30]的基准是为高分辨率立体声和多视图重建而创建的,该重建包括人工场景和室外和室内场景,代表了各种现实世界的重建挑战。
重建地球表面和城市主要由匹配的多视图空中图像来实现。ISPRS协会和EuroSDR中心联合提供了两个名为München和Vaihingen [11]的小型空中数据集,其中包括数十种空中图像。但是,这些数据集目前无法公开访问。在我们的工作中,我们创建了一个大型合成空中数据集,具有精确的相机参数和用于MVS方法评估和城市场景重建的完整真值信息。
2.2网络
灵感来自基于深度学习的立体声方法的成功[23,17,38,4],一些研究人员试图将CNNS应用于MVS任务。Hartmann等人[12]提出了一种N-WADE SIAMESE网络,用于学习一组多个patch的相似度分数。第一个端到端的MVS网络是SyrfaceNet,通过在网络外构建彩色的体素立方体通过透视投影来对摄像机参数进行编码,将多视图图像组合到单个代价立方体。学习的立体机(LSM)[16]通过可微分的投影和投影操作确保端到端MVS重建。该特征是用已知相机参数的3D特征网格中的,然后使用3D CNN来检测体素中的3D对象的表面。SurfaceNet和LSM都利用了体积表示,然而,他们只重建低分辨率3D体素对象并消耗大量GPU内存,它们以32×32×32的分辨率创建了世界网格。
3D代价立方体可以把相机参数编码进图像特征。DeepMVS [14]为每个参考图像产生平面扫描体积,并且使用跳过连接的编码器 - 解码器结构用于聚合成本,然后使用完全连接的条件随机场(DENSE-CRF)[19]来估计深度。[36]通过可微分的单应性warping建立了3D代价立方体。内存占用非常大,对于大规模场景无法应用。最先进的方法R-MVSNet [37],通过卷积门控复发单元(GRU)[5]而不是3D CNNS顺序地跨越深度,而不是3D CNNS,这减少了存储器消耗并使高分辨率重建成为可能。然而,R-MVSNET在GRUS中使用小的3×3感受野正规化代价图,并四次向上采样输出深度,导致上下文信息丢失和粗略重建。
我们的RedNet方法遵循沿着深度方向顺序处理2D特征的思想来进行大范围深度推理。但是,我们提出了一种循环编码器解码器架构,用于正则化2D代价图,而不是简单地将GRU堆叠。RedNet提供多尺度接收领域,在精细分辨率场景中有效地利用邻域信息,这使我们能够以更高的精度和效率实现大规模和全分辨率的重建,并降低内存要求。
3.WHU 数据集
本节介绍了我们为大规模和高分辨率的地球表面重建创建的合成空中数据集-WHU数据集。数据集中的空中图像是从软件生产的3D表面模型模拟的,3D表面模型经过精心的手工编辑。数据集包括完整的空中图像集和裁剪子图像集,用于促进深度学习。
3.1 数据源
使用Smart3D软件[8]重建具有OSGB格式的3D数字表面模型(DSM),数据从安装在无人驾驶飞行器(UAV)上的一组多视图空中图像中重建[8]。一台相机直接指向下,另一个四个围绕相机的光轴处于40英寸的角度,保证了大部分场景可以很好地捕获,包括建筑物侧面。我们在表面模型中手动编辑了一些错误,以改善其与真实场景的相似之处。该模型涵盖了贵州省梅丹县约6.7×2.2公里的地区,地面分辨率约为0.1米。该县包含密集,高层建筑,稀疏的工厂,山脉覆盖着森林,以及一些裸露的地面和河流。
3.2合成航空数据集
首先,通过插入OSGB网格,生成设置在0.06×0.06×0.06m3网格的离散3D点,覆盖整个场景。每个点包括对象位置(x,y,z)和纹理(r,g,b)。
然后,我们模拟了单镜头相机的成像过程。给定相机的内在参数(焦距F,主点X0,Y0,图像尺寸W,H和传感器尺寸)和外部方向(摄像机中心(xs,ys,zs)和三个旋转角度(φ,ω,κ )。我们将3D离散点投影到相机上以获得虚拟图像,并且从3D点同时获得深度图。请注意,由于三维模型具有完整的场景网格,因此即使在建筑立面上,深度贴图也是完整的。虚拟图像在地面550米以上,地面分辨率为10厘米。在11条带中捕获了总共1,776张图像(大小5376×5376),具有90%的上面覆盖和80%的侧面覆盖,相应的1,776个深度图作为真值。我们在(0,0,0)处设置旋转角度,因此可以将两个相邻的图像视为一对核线影像。还提供了沿着飞行方向的总共1,760个视差图来评估所选择的立体匹配方法。我们提供了8位RGB图像和16位深度图,其无损PNG格式和文本文件记录了包括相机中心(XS,YS,ZS)和旋转矩阵R的方向参数。
3.3用于深度学习的子数据集
除了提供完整的数据集外,我们还选择了六个代表性的子区域,涵盖不同的场景类型,作为深度学习方法的训练和测试集,如图1所示。“区域 1”是一个带有大型和低工厂建筑的郊区。“区域2”包含树木,道路,建筑物和开放空间。“区域3”是一个居民区,具有低楼和高层的混合。 “区域4”和“区域5”是覆盖着具有复杂屋顶结构的密集建筑物的城镇中心。“区域6”是农业用地和森林覆盖的山区。总共261个虚拟图像的区域1/4/5/6被用作训练集,来自区域2和区域3的93个图像作为测试集。训练与测试集的比率大约为3:1。为了直接应用基于深度学习的MVS方法,我们还提供了通过将虚拟航空图像裁剪成子块作为5376×5376像素的图像来提供多视图和立体子集,
多视角数据集。多视图单元由五个图像组成,如图2所示。
ID为1的中心图像被视为参考图像,并且在标题方向上的图像和侧面条中的图像具有ID为3和4的图像是搜索图像。我们以768×384像素的尺寸裁剪重叠像素到子块中。一个五视图单元产生80对(400个子图像)(图3(a))。
深度图同时裁剪。数据集最终组织为图3(b)。虚拟图像,深度图和摄像机参数位于第一级文件夹中。五个子文件夹被命名为0/1/2/3/4以分别存储从五视图虚拟图像生成的子图像。此外,还有一个三视图数据集,由ID 0,1和2组成。
立体数据集。条带中的每个相邻的图像对也是核线影像。类似于多视图集,我们裁剪每个图像和视差地图到768×384像素中,并在双视图单元中获得了154个子图像对。
4.RED-Net
我们开发了一个网络,我们命名为Red-net,组合了一系列权重共享的卷积层,该层从单独的多视图图像中提取特征,循环编码器 - 解码器(RED)结构,其在大规模和高次化多视图重建的深度和空间方向上顺序地学习正则化深度图。该框架受到了[37]的启发。但是,我们不使用三个GRU块的堆栈,我们利用了一个2D循环编码器 - 解码器结构来顺序地规范成本映射,而不仅显着降低了内存消耗并大大提高了计算效率,而且还捕获了更精细的结构用于深度推断。Red-net的输出具有与输入参考图像相同的分辨率,而不是在[37]中为四分之一,这保证了用于大场景的高分辨率重建。结构如图4所示。
2D特征提取。Red-net 推理具有来自N视图图像的深度样本D的深度图,其中n通常不少于三个。首先是2D卷积层分别用于提取具有共享权重的N个输入图像的特征。每个分支由具有8,8,16,16,16个通道的五个卷积层组成,以及3×3内核尺寸和1的步幅(第三层除外,具有5×5核尺寸和步幅为2)。除了最后一层之外,所有层之后都是整流的线性单元(Relu)。2D网络为输入图像的宽度和高度的一半产生16通道特征表示。
代价图。将一组2D图像特征返回到3D空间中的连续虚拟平面上,以构建代价图。平面扫描方法如文献7。采用方差操作[36]将多个特征图组合到3D空间的某个深度平面上的一个代价图。最后,D个代价在每个深度平面上被建立。
循环编解码正则化。受U-Net [26],GRU [5]和RCNN [2]的启发,在本文中,我们引入了一种反复编码器 - 解码器架构,用于正则化从2D卷积和平面扫描方法获得的D个代价图。在空间维度,一次代价图Ci是一次对循环编码器解码器结构的输入,然后由四级卷积编码器处理。除了步幅1和通道数为8的第一个卷积层,我们在编码器中的每个下采样步骤中的特征通道数增加了一倍。解码器由三个上卷积层组成,每个层展开由前一层生成的特征图并将其通道数减半。在每个尺度下,被编码的特征图被一个卷积GRU正则化,然后加到解码器对应的尺寸的特征图上。解码器之后,上采样层用于正则化代价图并把特征图通道数降为1。
在深度方向上,顺序代价图的上下文信息被记录在先前的调节GRUS中并传送到当前代价图CI。梯形编码器结构中有四个GRU状态转换,表示为状态,以收集和优化不同空间尺度的上下文特征。
通过将空间方向上的成本映射进行正则化,并通过重复的编码器 - 解码器在深度方向上聚合几何和上下文信息,REDNET实现了用于多视图深度推断的全局一致的空间/上下文表示。与一堆Grus [37]相比,我们的多尺度反复间编码器-解码器利用更多细节和更少的参数利用多尺度邻域信息。
损失计算。将所有正则化的代价图堆叠在一起形成代价立方体,沿着深度方向使用softmax运算将代价立方体转换成概率立方体。根据该概率量,可以估计像素的深度值,使用交叉熵损失与真值进行对比,这与[37]相同。
为了保持端到端的方式,我们没有提供后处理过程。根据相机参数,推断的深度图被转换成密集的3D点,所有这些都构成了完整的3D场景。然而,许多经典的后处理方法[22]可用于改进。
5.实验
5.1实验设置和结果
我们在我们的WHU数据集上评估了我们提出的红网,并将其与几个最近的MVS方法和软件进行了比较,包括ColMap [29]和商业软件SURF[27],这两种方法都是基于传统方法,还和MVSNet以及R-MVSNet这两种基于深度神经网络的方法做了对比。我们将测试集直接应用到COLMAP和SURF上,测试集包含93张图片(53765376),还包括深度图或者稠密的点云。我们使用WHU数据集的训练集对基于深度学习的方法进行训练,训练集包括3600个子块(768384),训练好之后使用测试集进行测试,测试集包括1360个子块,尺寸与训练集相同。输入图片的视角数分别是N=3以及N=5,对应于WHU-3和WHU-5数据集,深度间隔数D=200。深度范围可以在每个图像中变化,因此我们使用Colmap评估了初始深度,并为每个图像设置深度范围。在测试集中,深度数为变量,我们将间隔设置为0.15米。在没有任何后处理的情况下比较不同方法的性能。SURF所生成的密集点云预先转换为深度图。
在RED-Net的训练阶段,选择RMSPROP [20]作为优化器,学习率设置为0.001,每5K迭代衰减为0.9。每个batch的数据在训练时进行三次循环,训练阶段总共有大约150k次迭代。所有的实验在显存为24GB的TITAN RTX显卡上进行,使用的是TensorFlow平台。
我们使用四种指标来评估深度估计的质量:
(1)Mean absolute error (MAE):估计和真实深度之间的L1距离的平均值,只计算100个深度间隔内的距离以排除极端异常。
(2)<0.6m:L1误差小于0.6米阈值的像素的百分比。
(3)<3间隔误差(< 3-interbal):L1误差小于3个间隔阈值的像素的百分比。
(4)完整度:深度图中被估计像素的百分比。
量化结果如表1所示,RED-Net比其他所有方法都要好,相比于MAE第二的R-MVSNet,RED-Net至少提高了百分之50的MAE。3-interval-error以及0.6m,我们的方法超过其他方法至少2%。我们在图5中的定性结果表明,Red-Net的重建深度图是最干净,最相似于真值。
5.2 GPU内存占用和运行时间
RED-Net、MVSNet以及R-MVSNet的GPU内存占用以及运行时间如表2所示。MVSNet的内训占用随着间隔数D的增加而增加,而其他两种内存占用是恒定的。RED-Net的内存占用大约为R-MVSNet的一半,RED-Net可以重建完整分辨率的深度图,为R-MVSNet的16倍。
运行时间与深度间隔采样数、输入图像尺寸、个数有关。在输入图像个数相同的情况下,(R-)MVSNet由于将深度图减小了,所以速度稍快,而ReD-Net是全分辨率。考虑到输出分辨率,我们的方法是更有效率的。
5.3 泛化性
WHU数据集是在受控良好的成像过程中创建的。为了证明空中数据集的WHU数据集的表示以及RED-NET的泛化能力,在真实的空中数据集München[11]上测试了五种方法。München数据集与WHU数据集有些不同,因为它被捕获在大都市而不是一个城镇。它分别包括15个空中图像(大小为7072×7776)和在上方和侧方向上重叠分别为80%和60%。三个基于CNN的模型在DTU或WHU数据集上预先训练,没有任何微调。München数据集的输入视图为n = 3,深度样本分辨率为0.1米。定量结果如表3所示。一些定性结果如图6所示。可以从表3中汲取三个结论3.首先,在WHU-3数据集上训练的REDNET在所有指标中具有最佳表现。在3间隔误差中,RED-Net超过其他方法至少6%。在WHU-5数据集上训练的模型几乎相同。其次,WHU数据集保证了概括性,而室内DTU数据集不能。当在DTU数据集上训练时,所有基于CNN的方法都比两个传统方法更差。在3间隔误差中,(R-)MVS-Net比两种传统方法表现糟糕30%,然而,在WHU数据集上进行训练,基于CNN的方法表现与两种传统方法相当。最后,RED-Net的泛化性能更好,在DTU数据集训练时,我们的方法在3间隔误差的指标上相比于(R-)MVSNet好了20%。
6.讨论
6.1 循环编解码结构的优势
在本节中,我们评估了循环编码器解码器在MVS网络中的有效性。在2D提取阶段,我们将特征图进行四次的下采样。通过这样做,Red-Net中的代价图与R-MVSNet的大小相同。最终输出也变为1/16尺寸的输入,以保持与RMVSNet一致。结果在表4中进行了比较。在三个空中数据集上,REDNet对所有指标都表现出明显的优势,这表明RED网络的高性能不仅是由于输出分辨率的提高,而且还针对编码器解码器结构,其学习的空间和上下文表示优于堆叠的GRUs。
6.2 DTU上的评估
虽然RED-NET主要用于大型航空MVS问题,但它超越了近距离DTU数据集的最先进的R-MVSNET。表5显示,具有相同的后处理(光度和几何滤波),REDNet的总成绩优于R-MVSNet的总成绩18%,并且在具有全四种后处理方法时优于[37]中提供的结果。总分数来自DTU数据集[1]建议的两个代表性指标准确性和完整性,并在[37]中使用。
6.3 大规模重建
Red-Net产生具有任意深度采样数的全分辨率深度图,这特别能够利用来自多视图空中图像的地球表面的高分辨率大规模重建,具有宽深度范围。此外,红网可以在24GB GPU上处理大小为7040×7040像素的三视角图像,只需58秒即可使用128个深度采样数来推断深度图。当我们推断覆盖1.8×0.85 km2的场景深度时(图7),带有3个视图输入的红网和200个深度样品数量需要9.3分钟,同时SURF需要150分钟,Colmap花了608分钟。
7.结论
在本文中,我们介绍并展示了一个称为WHU DataSet的合成空中数据集,我们为大规模和高分辨率的MVS重建创建,在我们的知识中,这是最大且可用的多视图空中数据集。我们在本文中确认,WHU数据集将是对当前近距离的多视图数据集有益的补充,并有助于促进地球表面和城市大规模重建的研究
我们还在本文中介绍了我们为多视图重建开发的新方法,称为Red-Net。该新网络被证明实现高效的大规模和全分辨率重建,内存要求相对较低,其性能超过了基于深度学习的方法和商业软件。我们的实验还表明,由于训练正确以及模型请打的泛化能力,在WHU数据集上预训练的RED-Net可以直接适用于有点不同的空中数据集,这已经发送了一种信号,即基于深度学习的方法在实际大规模重建中可能是有效的。
这篇关于[论文翻译]A Novel Recurrent Encoder-Decoder Structure for Large-Scale Mulit-view Stereo Reconstruction的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!