学习笔记之——视觉三维重建
Posted gwpscut
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记之——视觉三维重建相关的知识,希望对你有一定的参考价值。
本博文为本人学习三维重建的学习笔记,本博文的大部分内容来源于网络各类教程博客,本博文仅供本人学习记录用
理论学习
视觉三维重建=定位定姿+稠密重建+surface reconstruction/mesh+纹理贴图
SLAM与三维重建的区别(SLAM和三维重建有什么区别? - 知乎):
- sfm对应是无序的图像,而SLAM一般是有序的
- sfm不需要标定,而SLAM一般要
- sfm是offline,SLAM是online的
三维重建的应用场景
colmap是目前state-of-the-art的sfm与mvs框架。本博文介绍的三维重建主要是colmap框架
前端
shift特征检测与描述
后端
sfm实战
MVS算法
三维重建实战colmap结合opoenmvs
TSDF (truncated signed distance function)
假如获得以下信息:
- 原始图片 (多视角)
- 对应的深度信息
- 相机的位姿
- camera内参
TSDF的更新与组合的过程,一步一步计算各个体素(voxel)的TSDF值,再把他们拼接起来。
而所谓的体素(voxel)就是一个一个的小方块,最终可以拼成3D重建的结果。如下图所示。三维重建的结果会放到一个立方体当中,而这个立方体就是由voxel组成的。步骤如下:
- 创建一个大的空白区域(volume)
- 这个区域由很多个小区域组成,每个叫voxel
- 需要计算每个voxel的TSDF值及其权重
如下图所示。T就是截断的意思,太远或者太近都设置为定值。而一个体素的SDF值就是它到最近的表面的距离。设某个点X,为其中一个体素,而绿色线是离它的最近的一个平面,而P点则是平面上离X最近的一个点,他们之间的距离就是SDF。
而对于截断T,越接近0就是越近,越接近正负1就是越远。正负为面的前后
深度可以通过深度图或者深度相机获取。
参考资料
GitHub - cdcseacave/openMVS: open Multi-View Stereo reconstruction library
GitHub - colmap/colmap: COLMAP - Structure-from-Motion and Multi-View Stereo
COLMAP — COLMAP 3.8 documentation
【三维重建基础与算法】2022最新首发!唐宇迪大佬全面讲解三维重建基础与算法,草履虫都能学会!可做毕设,能写简历-人工智能、机器学习、深度学习、项目实战_哔哩哔哩_bilibili
不错的一些开源工作
开源工作的总结:
https://github.com/wuxiaolang/Visual_SLAM_Related_Research
https://github.com/tum-vision/lsd_slam
https://link.springer.com/content/pdf/10.1007/978-3-319-10605-2_54.pdf
https://github.com/alejocb/dpptam
https://arxiv.org/pdf/1909.04250.pdf
https://github.com/HKUST-Aerial-Robotics/DenseSurfelMapping
https://wang-kx.github.io/pdf/quadtree_mapping.pdf
https://github.com/HKUST-Aerial-Robotics/open_quadtree_mapping
以上是关于学习笔记之——视觉三维重建的主要内容,如果未能解决你的问题,请参考以下文章