基于NeRF的三维重建算法(如NeuS[1],Voxsurf[2])已经在重建精度和稠密度上取得巨大提升,但是这类算法依赖准确的相机位姿作为输入。在实际应用中我们通常使用计算机视觉算法(如COLMAP)来估计相机位姿,然而其精度有限,造成了三维重建算法效果的下滑。我们尝试了现有的NeRF-Pose联合优化算法(如BARF[3],SPARF[4],Nope-NeRF[5])来提升位姿精度,然而效果非常有限。
本文提出位姿残差场 Pose Residual Field(PoRF)作为一种新的位姿表达,在NeRF-Pose联合优化中提升性能。其核心是将所有图像的相机位姿用同一个MLP来建模,而不是像之前算法[3,4,5]一样单独优化每张图像的位姿参数。也就是说,我们将位姿参数优化问题转化成了一个网络参数优化问题。另外,为了增强监督信号,除了使用原本的图像渲染Loss,我们提出基于特征匹配的Loss来提升效果加快算法收敛。
我们的算法在三个公开数据集上取得显著提升:
在DTU数据集上,我们基于COLMAP估计的位姿进行优化,可以达到与使用GT位姿相当的三维重建效果。
在MobileBrick (360度视频)数据集,我们基于ARKit位姿进行优化,重建结果可以超过使用人工辅助生成的GT位姿。
在Nerfstudio(360度拍摄,含多种相机类型)数据集上,我们替换掉Nerfacto算法中默认的位姿优化模块,结果在所有场景中明显提升图像渲染效果。
论文题目: PoRF: Pose Residual Field for Accurate Neural Surface Reconstruction 文章链接: https://arxiv.org/abs/2310.07449 代码地址: https://github.com/ActiveVisionLab/porf 项目主页: https://porf.active.vision/一、背景
基于图像的三维重建一直是计算机视觉中最基础的问题之一,即给定某场景的一组多视角照片或者一段视频,我们的目的是恢复出物体的三维结构。传统做法是第一步通常是使用视觉SLAM或SfM算法(比如现在常用的COLMAP)来估计每张图像的相机位姿。第二步是通过计算稠密的匹配来进行稠密三维重建。然而稠密匹配在图像纹理较弱的区域非常困难,所以重建精度和稠密度一直以来难以提升。
最新基于NeRF隐式神经表达的三维重建算法比如NeuS[1]和 Voxsurf[2]利用神经网络(结合显式空间表达)来直接优化三维模型。这种方法避免了计算稠密匹配,极大的提升了重建效果。然而这些算法仍然需要以精确的相机位姿作为输入,其位姿精度会严重影响重建效果。
以下图为例,我们在DTU数据集上使用Voxurf算法结合不同类型的相机pose进行重建。结果显示相比GT Pose,使用COLMAP Pose进行三维重建会导致明显的重建效果下滑。另外,我们使用现有的NeRF-Pose联合优化算法(BARF[3]和SPARF[4])来提升Pose精度,再用优化好的Pose结合Voxurf进行重建。结果显示这类算法很难有效提升精度。
括号中数值表示重建误差(mm)
我们认为挑战主要来源于两个方面:
现有的NeRF-Pose联合优化算法把每帧图像的相机位姿(6-DoF)直接当作变量来进行优化。这种方法通过三维模型的渲染Loss对每张图像的变量进行分别求导,减弱了图像之间的相互约束关系。
现有算法依赖图像渲染Loss来同时优化三维模型和相机位姿,这种约束不够强。
为了解决这两个问题,我们分别提出了提出位姿残差场 Pose Residual Field(PoRF)和一个基于特征匹配的Loss。
二、算法
我们的算法同现有NeRF-Pose联合优化算法一样将相机位姿与三维模型同时优化,一个区别是在这里我们使用NeuS(SDF表达)作为三维表达。算法的输入是某场景的一组多视角图像或视频并给定初始的相机位姿(可以用COLMAP或者手机传感器比如ARKit得到)。我们的目的是通过3D-Pose联合优化得到精确的相机位姿。算法框架如下图所示:
我们的算法包含 Pose Residual Field (PoRF) 和 Neural Surface Reconstruction(NSR)两个网络。PoRF是一个MLP结构,它以每张图像的Frame ID和初始位姿作为输入,并输出优化后的Pose。我们使用NeuS[1]作为NSR网络,它以图像位姿作为输入进行渲染并以图像颜色作为监督。在每次训练迭代中,我们随机选取一张图像,首先经过PoRF网络进行位姿优化,然后将输出的位姿作为NSR网络的输入,最终以渲染Loss ( )作为联合优化的约束。在图中,我们提出的匹配Loss ( )是单独针对PoRF网络的约束, 是单独对NSR网络的约束。
PoRF:我们使用中间层为2层的浅层MLP作为PoRF网络。相比将每张图像的Pose作为变量单独进行优化,PoRF网络使用所有图像的信息来优化网络参数。这种方式能够建模整段视频的相机位姿分布,利用全局信息提升优化效果。换一种理解方式,我们可以认为网络在学习一种非线性的映射方式,将所有的相机位姿投影到一个更高维的空间进行优化,然后再投影回来进行图像渲染。
:除了渲染Loss,我们利用特征匹配来约束PoRF网络。这里我们默认使用COLMAP估计位姿时所产生的特征匹配。在每次迭代中随机选取几对图像,根据他们之间的特征匹配和相对相机位姿来计算 Sampson Distance作为误差。过滤掉误差较大的匹配(可能是outlier),然后我们以这个误差作为Loss。这里的Sampson Distance是基于Epipolar Geometry (Fundamental Matrix)计算的,与3D信息无关,所以 不会受到NSR网络的影响。
三、实验
我们分别在 DTU ( https://roboimagedata.compute.dtu.dk/?page_id=36 ) and MobileBrick ( https://code.active.vision/MobileBrick/ ) 数据集上进行了三维重建的实验。为了公平对比,在第一阶段,我们用提出的算法和其他现有算法分别进行位姿优化,在第二阶段,我们用Voxurf结合不同算法优化后的位姿分别进行三维重建然后进行对比。在DTU上,我们使用COLMAP得到的相机位姿作为初始化,在MobileBrick上,我们用ARKit得到的相机位姿作为初始值。实验结果如下:
在DTU数据集上,我们将位姿旋转误差从平均0.65度降低到0.14度。在重建精度上,使用我们优化后的位姿可以达到1.0mm以下重建误差,这之前仅在使用GT位姿的算法中可以达到。
MobileBrick数据集所提供的GT位姿来源于人工辅助生成,其精度无法达到像DTU数据集上的多相机标定结果。结果显示使用我们的优化后的位姿在三维重建上超越了使用GT相机位姿。
在DTU(上)和MobileBrick(下)数据集中可视化结果如下:
我们对算法进行了消融实验,展示了不同设定下相机位姿误差随着训练时间的变化。其中
Baseline (B)表示使用传统的相机参数的优化;
B + PoRF 表示使用了所提出的MLP进行位姿优化;
B + L_EG 表示使用了所提出的基于特征匹配的几何Loss;
Ours 表示同时使用了所提出的贡献;
Ours-LoFTR表示将COLMAP的特征匹配替换为LoFTR(深度学习算法)匹配;
Ours-NeRF表示我们将原本的NeuS场景表达替换为NeRF场景表达方式。
结果展示我们所提出的模块均有效提升性能,并且我们的算法可以适用于不同的匹配算法和三维场景表达方式。
最后为了证明算法的广泛应用性,我们将所提出的PoRF MLP加入到Neurfstudio库中并与其中的默认算法Nerfacto进行实验对比。为了公平对比,我们仅替换了Nerfacto中原有的相机位姿优化模块,并没有使用所提出的基于匹配的监督。其结果显示在Nerfstudio数据集中,我们的算法在所有场景中均明显提升了训练效果。
四、总结
在这篇文章中,我们提出位姿残差场 Pose Residual Field(PoRF)来联合优化相机位姿参数和三维重建。它将原本的位姿参数优化问题转换成了网络参数优化问题,有效的提升了训练效果。我们在多个具有真实场景的数据集上进行验证,实验结果显示优化后的相机位姿能在三维重建效果上显著降低重建误差。
参考文献
[1] Wang et al., “NeuS: Learning Neural Implicit Surfaces by Volume Rendering for Multi-view Reconstruction,” NeurIPS 2021
[2] Wu et al., “Voxurf: Voxel-based Efficient and Accurate Neural Surface Reconstruction”, ICLR 2023
[3] Lin et al., “BARF: Bundle-Adjusting Neural Radiance Fields,” ICCV 2021
[4] Bian et al., “Unsupervised scale-consistent depth learning from video,” IJCV 2021
[5] Truong et al., “SPARF: Neural Radiance Fields from Sparse and Noisy Poses,” CVPR 2023
Illustration From IconScout By 22
-The End-
扫码观看!
本周上新!
“AI技术流”原创投稿计划
TechBeat是由将门创投建立的AI学习社区(
www.techbeat.net)。社区上线500+期talk视频,3000+篇技术干货文章,方向覆盖CV/NLP/ML/Robotis等;每月定期举办顶会及其他线上交流活动,不定期举办技术人线下聚会交流活动。我们正在努力成为AI人才喜爱的高质量、知识型交流平台,希望为AI人才打造更专业的服务和体验,加速并陪伴其成长。
投稿内容
// 最新技术解读/系统性知识分享 //
// 前沿资讯解说/心得经历讲述 //
投稿须知
稿件需要为原创文章,并标明作者信息。
我们会选择部分在深度技术解析及科研心得方向,对用户启发更大的文章,做原创性内容奖励
投稿方式
发送邮件到
chenhongyuan@thejiangmen.com
或添加工作人员微信(chemn493)投稿,沟通投稿详情;还可以关注“将门创投”公众号,后台回复“投稿”二字,获得投稿说明。
关于我“门”
将门是一家以专注于数智核心科技领域的新型创投机构,也是北京市标杆型孵化器。 公司致力于通过连接技术与商业,发掘和培育具有全球影响力的科技创新企业,推动企业创新发展与产业升级。
将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。
如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务,欢迎发送或者推荐项目给我“门”:
bp@thejiangmen.com
点击右上角,把文章分享到朋友圈
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.