点击上方“计算机视觉life”,选择“星标”
快速获得最新干货
本文转载自:机器之心(ID: almosthuman2014)
本文介绍了一种基于点云的 MVS 神经网络框架 PointMVSNet。通过对场景的点云进行处理,融合三维深度和二维纹理信息,提高了点云重建的精度。论文作者来自清华、港科大、加州大学圣地亚哥分校等,已被 ICCV 2019 大会接收。
多视角三维重建(MVS)是计算机领域的一项基础任务,目标是通过相机拍摄的图像和相机参数推导出现实环境中物体的三维信息。
不同角度拍摄的图像会存在一些公共部分,合理分析并利用不同图像的关联是三维重建的基础。
近年来,基于深度学习的一系列研究在该任务上取得了卓越的成绩,受到广泛关注。
然而,现有的方法需要在相机参考空间或物体空间构建一个三维卷积网络。
这个三维卷积网络会随着场景精细度的增加而显著增加。
现有方法的主要瓶颈在于空间复杂度和时间复杂度。
为了解决这一瓶颈,本文介绍了一种全新的基于点云的 MVS 神经网络框架 PointMVSNet。
区别于之前的深度学习方法,该网络直接将目标场景作为点云进行处理,而不是整个三维空间,从而降低了网络复杂度。
该方法首先生成粗粒度的深度图,通过相机参数转化成初始点云。
在这组初始点云上估计当前深度图与真实深度图之间的残差,从而对点云迭代优化。
该方法将二维纹理信息与三维几何信息进行融合,生成特征增强的点云,并迭代更新点云位置。
实验证明,该基于点云的网络结构可以达到更高的精度,计算效率与灵活性。
项目链接:http://hansf.me/projects/PMVSNet/
论文链接:https://arxiv.org/pdf/1908.04422.pdf
开源代码链接:https://github.com/callmeray/PointMVSNet
本文中,我们创新性地提出了基于三维点云的多视角三维重建神经网络结构 PointMVSNet。
首先,我们用现有的方法生成一个初始粗粒度点云。
之后,利用我们所提出的 PointFlow 模块作用于点云以及点云附近的局部区域优化。
点云特征包含从图像多尺度二维神经网络中提取的纹理特征和从点云中提取的几何特征。
PointFlow 模块会通过这些特征优化点云位置。
这个优化过程会经过几次迭代,每次迭代都会更新点云特征,以获得更准确的位置预测。
高质量的纹理特征对于 MVS 具有重要意义。
因此我们选择采用图像金字塔网络,并融合不同尺度的纹理特征。
之后,我们利用动态特征提取从图像金字塔网络中提取三维点云中每个点在各视角图像中的纹理特征,构建特征增强点云。
值得注意的是,这一步骤与基于 cost volume 的网络结构存在显著区别,其中基于 cost volume 的方法中每个体素所对应的图像特征由其空间划分所确定并无法改变,而这里我们方法会根据更新后的点云位置动态从图像中提取纹理特征,因此可以集中于图像中感兴趣的区域。
为了使网络更好地更新点云位置,我们提出使用猜想点辅助网络预测。
如上图所示,对于点云中的每一个点,我们沿着相机方向采样等步长的若干猜想点。
为预测每个点的三维位移,我们利用 EdgeConv 处理由猜想点所构成的特征增强三维点云,学习猜想点的概率分布,将猜想点的期望位移作为每个点的预测位移。
相比于简单的点云神经网络,EdgeConv 利用图神经网络将邻域的三维结构信息用于点云中各点间的特征传播,可以更有效的传播有效信息。
PointFlow 可以迭代地作用于更新的三维点云,从而逐步优化点云位置,以达到更好的预测效果。
首先是 PointMVSNet 在 DTU 数据集上重建结果,这里对比了现有的传统算法和深度学习算法。
可以看出,PointMVSNet 取得了更好的重建完整度和整体效果。
下图展示了 MVSNet, PointMVSNet 的重建效果。
第一行是点云图,第二行展示了局部区域法向量图。
可以看出 PointMVSNet 重建效果更加锐利,细节更好。
接下是 PointMVSNet 和 MVSNet 的计算效率比较,见下表。
通过改变 PointFlow 迭代次数,PointMVSNet 可以在高效与高精度之间灵活选择。
此外,PointMVSNet 的显存使用效率高于 MVSNet, 能在同样的显存使用下生成更高分辨率的深度图像。
最后我们展示了基于点云的三维重建网络的灵活性。
如下图所示,我们可以选择进行仅优化我们所感兴趣区域的点云,从而节约不必要的计算。
从零开始学习三维视觉核心技术SLAM,扫描查看介绍,3天内无条件退款
早就是优势,学习切忌单打独斗,这里有教程资料、练习作业、答疑解惑等,优质学习圈帮你少走弯路,快速入门!
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、算法竞赛、图像检测分割、人脸人体、医学影像、自动驾驶、综合等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
推荐阅读
CVPR2019 | R-MVSNet: 一个高精度高效率的三维重建网络
从零开始一起学习SLAM | 为什么要学SLAM?
从零开始一起学习SLAM | 学习SLAM到底需要学什么?
从零开始一起学习SLAM | SLAM有什么用?
从零开始一起学习SLAM | C++新特性要不要学?
从零开始一起学习SLAM | 为什么要用齐次坐标?
从零开始一起学习SLAM | 三维空间刚体的旋转
从零开始一起学习SLAM | 为啥需要李群与李代数?
从零开始一起学习SLAM | 相机成像模型
从零开始一起学习SLAM | 不推公式,如何真正理解对极约束?
从零开始一起学习SLAM | 神奇的单应矩阵
从零开始一起学习SLAM | 你好,点云
从零开始一起学习SLAM | 给点云加个滤网
从零开始一起学习SLAM | 点云平滑法线估计
从零开始一起学习SLAM | 点云到网格的进化
从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码
从零开始一起学习SLAM | 掌握g2o顶点编程套路
从零开始一起学习SLAM | 掌握g2o边的代码套路
从零开始一起学习SLAM | ICP原理及应用
从零开始一起学习SLAM | 用四元数插值来对齐IMU和图像帧
可视化理解四元数,愿你不再掉头发
视觉SLAM技术综述
研究SLAM,对编程的要求有多高?
深度学习遇到SLAM | 如何评价基于深度学习的DeepVO,VINet,VidLoc?
现在开源的RGB-D SLAM有哪些?
详解 | SLAM回环检测问题
汇总 | SLAM、重建、语义相关数据集大全
吐血整理 | SLAM方向国内有哪些优秀的公司?
最强战队 | 三维视觉、SLAM方向全球顶尖实验室汇总
SLAM方向公众号、知乎、博客上有哪些大V可以关注?
汇总 | 最全 SLAM 开源数据集
综述 | SLAM回环检测方法
2018年SLAM、三维视觉方向求职经验分享
经验分享 | SLAM、3D vision笔试面试问题
最新AI干货,我在看