基本信息
作者:Mohamed Sayed
论文:SimpleRecon 3D Reconstruction Without 3D Convolutions
代码:https://github.com/nianticlabs/simplerecon
概述
传统的室内三维场景重建方法分为两个阶段:单图像深度估计、深度融合与表面重建。现有的基于学习的重建方法依赖于3D卷积,使得模型的计算复杂度较高。为此,本文提出一种多视图深度估计模型,主要包含两个部分:(1) 精心设计的2D CNN模块,该模块充分利用了图像先验以及平面扫描特征量和几何损失。(2)使用多层感知器(MLP)将关键帧和几何元数据集成到代价体中。
模型架构
记参考视图为
I
0
I^0
I0,其余的源视图记为
I
N
∈
1
,
.
.
.
,
N
−
1
I^{N ∈ { 1 , . . . , N − 1 }}
IN∈1,...,N−1,相机内参与对应的相机姿态也使用类似的标记方式。模型的整体架构如上图所示,使用图像编码器从参考图像和源图像中提取特征图用于构建代价体。代价体的输出使用 2D CNN 编码-解码器模块进行处理,并在代价聚合阶段使用参考视图的提取到的多层级特征图进行融合。
基于元数据与特征图构建的代价体
核心点为将元数据与深度特征图一起构建代价体,使得模型能从几何和相对相机姿势信息中挖掘更多的潜在有用信息,如下图所示:
代价体的维度为 C × D × H × W,代价体的索引值 ( k , i , j ) 代表在像素坐标 ( i , j ) 位置,第 k 个深度平面的特征向量的维度为 C。
损失函数
多尺度深度回归损失:
对参考视图深度图,在不同尺度上计算损失。使用了log尺度下的深度图来计算MSE误差。对于不同尺度下的深度图,先对预测的深度图进行最近邻上采样到与标签一样的尺寸后再计算损失,并在每个像素,每个尺度,每个 batch 里对损失求平均。
多尺度梯度归一化损失:
使用分辨率最高的预测深度图与标签深度图进行4次下采样,得到4个尺度的深度图,然后计算两者之间的MSE误差。
归一化深度图损失:
使用深度图与内参计算归一化图像后,计算归一化深度图损失
多视角深度回归损失:
将预测的深度图经过 depth 与相机参数投影到源视图中,在源视图中计算MSE损失
总损失:
实验结果